本文整理汇总了Python中r2.lib.utils.is_subdomain函数的典型用法代码示例。如果您正苦于以下问题:Python is_subdomain函数的具体用法?Python is_subdomain怎么用?Python is_subdomain使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_subdomain函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __call__
def __call__(self, environ, start_response):
g = config['pylons.g']
http_host = environ.get('HTTP_HOST', 'localhost').lower()
domain, s, port = http_host.partition(':')
# remember the port
try:
environ['request_port'] = int(port)
except ValueError:
pass
# localhost is exempt so paster run/shell will work
# media_domain doesn't need special processing since it's just ads
if domain == "localhost" or is_subdomain(domain, g.media_domain):
return self.app(environ, start_response)
# tell reddit_base to redirect to the appropriate subreddit for
# a legacy CNAME
if not is_subdomain(domain, g.domain):
environ['legacy-cname'] = domain
return self.app(environ, start_response)
# figure out what subdomain we're on if any
subdomains = domain[:-len(g.domain) - 1].split('.')
extension_subdomains = dict(
m="mobile",
i="compact",
api="api",
rss="rss",
xml="xml",
json="json")
sr_redirect = None
for subdomain in subdomains[:]:
if subdomain in g.reserved_subdomains:
continue
extension = extension_subdomains.get(subdomain)
if extension:
environ['reddit-domain-extension'] = extension
elif self.lang_re.match(subdomain):
environ['reddit-prefer-lang'] = subdomain
environ['reddit-domain-prefix'] = subdomain
else:
sr_redirect = subdomain
subdomains.remove(subdomain)
# if there was a subreddit subdomain, redirect
if sr_redirect and environ.get("FULLPATH"):
if not subdomains and g.domain_prefix:
subdomains.append(g.domain_prefix)
subdomains.append(g.domain)
redir = "%s/r/%s/%s" % ('.'.join(subdomains), sr_redirect,
environ['FULLPATH'])
redir = "http://" + redir.replace('//', '/')
start_response("301 Moved Permanently", [("Location", redir)])
return [""]
return self.app(environ, start_response)
开发者ID:annerajb,项目名称:reddit,代码行数:60,代码来源:middleware.py
示例2: _get_scrape_url
def _get_scrape_url(link):
if not link.is_self:
sr_name = link.subreddit_slow.name
if not feature.is_enabled("imgur_gif_conversion", subreddit=sr_name):
return link.url
p = UrlParser(link.url)
# If it's a gif link on imgur, replacing it with gifv should
# give us the embedly friendly video url
if is_subdomain(p.hostname, "imgur.com"):
if p.path_extension().lower() == "gif":
p.set_extension("gifv")
return p.unparse()
return link.url
urls = extract_urls_from_markdown(link.selftext)
second_choice = None
for url in urls:
p = UrlParser(url)
if p.is_reddit_url():
continue
# If we don't find anything we like better, use the first image.
if not second_choice:
second_choice = url
# This is an optimization for "proof images" in AMAs.
if is_subdomain(p.netloc, 'imgur.com') or p.has_image_extension():
return url
return second_choice
开发者ID:AppleBetas,项目名称:reddit,代码行数:28,代码来源:media.py
示例3: __call__
def __call__(self, environ, start_response):
g = config["pylons.g"]
http_host = environ.get("HTTP_HOST", "localhost").lower()
domain, s, port = http_host.partition(":")
# remember the port
try:
environ["request_port"] = int(port)
except ValueError:
pass
# localhost is exempt so paster run/shell will work
# media_domain doesn't need special processing since it's just ads
if domain == "localhost" or is_subdomain(domain, g.media_domain):
return self.app(environ, start_response)
# tell reddit_base to redirect to the appropriate subreddit for
# a legacy CNAME
if not is_subdomain(domain, g.domain):
environ["legacy-cname"] = domain
return self.app(environ, start_response)
# figure out what subdomain we're on if any
subdomains = domain[: -len(g.domain) - 1].split(".")
extension_subdomains = dict(m="mobile", i="compact", api="api", rss="rss", xml="xml", json="json")
sr_redirect = None
for subdomain in subdomains[:]:
if subdomain in g.reserved_subdomains:
continue
extension = extension_subdomains.get(subdomain)
if extension:
environ["reddit-domain-extension"] = extension
elif self.lang_re.match(subdomain):
environ["reddit-prefer-lang"] = subdomain
environ["reddit-domain-prefix"] = subdomain
else:
sr_redirect = subdomain
subdomains.remove(subdomain)
# if there was a subreddit subdomain, redirect
if sr_redirect and environ.get("FULLPATH"):
r = Response()
if not subdomains and g.domain_prefix:
subdomains.append(g.domain_prefix)
subdomains.append(g.domain)
redir = "%s/r/%s/%s" % (".".join(subdomains), sr_redirect, environ["FULLPATH"])
redir = "http://" + redir.replace("//", "/")
r.status_code = 301
r.headers["location"] = redir
r.content = ""
return r(environ, start_response)
return self.app(environ, start_response)
开发者ID:jorik041,项目名称:reddit,代码行数:55,代码来源:middleware.py
示例4: js_config
def js_config():
config = {
# is the user logged in?
"logged": c.user_is_loggedin and c.user.name,
# the subreddit's name (for posts)
"post_site": c.site.name if not c.default_sr else "",
# are we in an iframe?
"cnameframe": bool(c.cname and not c.authorized_cname),
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# current domain
"cur_domain": get_domain(cname=c.frameless_cname, subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(cname=c.authorized_cname, subreddit=False),
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
# debugging?
"debug": g.debug,
"vl": {},
"sr": {},
"status_msg": {
"fetching": _("fetching title..."),
"submitting": _("submitting..."),
"loading": _("loading...")
},
"is_fake": isinstance(c.site, FakeSubreddit),
"tracking_domain": g.tracking_domain,
"adtracker_url": g.adtracker_url,
"clicktracker_url": g.clicktracker_url,
"uitracker_url": g.uitracker_url,
"static_root": static(''),
}
return config
开发者ID:Asimov4,项目名称:dobands,代码行数:35,代码来源:template_helpers.py
示例5: is_trusted_origin
def is_trusted_origin(origin):
try:
origin = urlparse(origin)
except ValueError:
return False
return any(is_subdomain(origin.hostname, domain) for domain in g.trusted_domains)
开发者ID:blitz80690,项目名称:reddit,代码行数:7,代码来源:reddit_base.py
示例6: allowed_media_preview_url
def allowed_media_preview_url(url):
p = UrlParser(url)
if p.has_static_image_extension():
return True
for allowed_domain in g.media_preview_domain_whitelist:
if is_subdomain(p.hostname, allowed_domain):
return True
return False
开发者ID:AHAMED750,项目名称:reddit,代码行数:8,代码来源:media.py
示例7: js_config
def js_config(extra_config=None):
logged = c.user_is_loggedin and c.user.name
gold = bool(logged and c.user.gold)
config = {
# is the user logged in?
"logged": logged,
# the subreddit's name (for posts)
"post_site": c.site.name if not c.default_sr else "",
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# they're welcome to try to override this in the DOM because we just
# disable the features server-side if applicable
'store_visits': gold and c.user.pref_store_visits,
# current domain
"cur_domain": get_domain(cname=c.frameless_cname, subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(cname=c.authorized_cname, subreddit=False),
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
# does the client only want to communicate over HTTPS?
"https_forced": c.user.https_forced,
# debugging?
"debug": g.debug,
"send_logs": g.live_config["frontend_logging"],
"server_time": math.floor(time.time()),
"status_msg": {
"fetching": _("fetching title..."),
"submitting": _("submitting..."),
"loading": _("loading...")
},
"is_fake": isinstance(c.site, FakeSubreddit),
"fetch_trackers_url": g.fetch_trackers_url,
"adtracker_url": g.adtracker_url,
"clicktracker_url": g.clicktracker_url,
"uitracker_url": g.uitracker_url,
"static_root": static(''),
"over_18": bool(c.over18),
"new_window": bool(c.user.pref_newwindow),
"vote_hash": c.vote_hash,
"gold": gold,
"has_subscribed": logged and c.user.has_subscribed,
}
if g.uncompressedJS:
config["uncompressedJS"] = True
if extra_config:
config.update(extra_config)
hooks.get_hook("js_config").call(config=config)
return config
开发者ID:JingyanZ,项目名称:reddit,代码行数:57,代码来源:template_helpers.py
示例8: OPTIONS_report_cache_poisoning
def OPTIONS_report_cache_poisoning(self):
"""Send CORS headers for cache poisoning reports."""
if "Origin" not in request.headers:
return
origin = request.headers["Origin"]
parsed_origin = UrlParser(origin)
if not is_subdomain(parsed_origin.hostname, g.domain):
return
response.headers["Access-Control-Allow-Origin"] = origin
response.headers["Access-Control-Allow-Methods"] = "POST"
response.headers["Access-Control-Allow-Headers"] = \
"Authorization, X-Loggit, "
response.headers["Access-Control-Allow-Credentials"] = "false"
response.headers['Access-Control-Expose-Headers'] = \
self.COMMON_REDDIT_HEADERS
开发者ID:GodOfConquest,项目名称:reddit,代码行数:15,代码来源:web.py
示例9: on_crawlable_domain
def on_crawlable_domain(self):
# This ensures we don't have the port included.
requested_domain = utils.domain(request.host)
# If someone CNAMEs myspammysite.com to reddit.com or something, we
# don't want search engines to index that.
if not utils.is_subdomain(requested_domain, g.domain):
return False
# Only allow the canonical desktop site and mobile subdomains, since
# we have canonicalization set up appropriately for them.
# Note: in development, DomainMiddleware needs to be temporarily
# modified to not skip assignment of reddit-domain-extension on
# localhost for this to work properly.
return (requested_domain == g.domain or
request.environ.get('reddit-domain-extension') in
('mobile', 'compact'))
开发者ID:APerson241,项目名称:reddit,代码行数:17,代码来源:robots.py
示例10: _get_scrape_url
def _get_scrape_url(link):
if not link.is_self:
return link.url
urls = extract_urls_from_markdown(link.selftext)
second_choice = None
for url in urls:
p = UrlParser(url)
if p.is_reddit_url():
continue
# If we don't find anything we like better, use the first image.
if not second_choice:
second_choice = url
# This is an optimization for "proof images" in AMAs.
if is_subdomain(p.netloc, 'imgur.com') or p.has_image_extension():
return url
return second_choice
开发者ID:RicardoAndreSantos,项目名称:reddit,代码行数:18,代码来源:media.py
示例11: js_config
def js_config(extra_config=None):
config = {
# is the user logged in?
"logged": c.user_is_loggedin and c.user.name,
# the subreddit's name (for posts)
"post_site": c.site.name if not c.default_sr else "",
# are we in an iframe?
"cnameframe": bool(c.cname and not c.authorized_cname),
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# current domain
"cur_domain": get_domain(cname=c.frameless_cname, subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(cname=c.authorized_cname, subreddit=False),
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
# debugging?
"debug": g.debug,
"send_logs": g.live_config["frontend_logging"],
"server_time": math.floor(time.time()),
"status_msg": {
"fetching": _("fetching title..."),
"submitting": _("submitting..."),
"loading": _("loading...")
},
"is_fake": isinstance(c.site, FakeSubreddit),
"fetch_trackers_url": g.fetch_trackers_url,
"adtracker_url": g.adtracker_url,
"clicktracker_url": g.clicktracker_url,
"uitracker_url": g.uitracker_url,
"static_root": static(''),
"over_18": bool(c.over18),
"vote_hash": c.vote_hash,
}
if extra_config:
config.update(extra_config)
hooks.get_hook("js_config").call(config=config)
return config
开发者ID:macanhhuy,项目名称:reddit,代码行数:43,代码来源:template_helpers.py
示例12: js_config
def js_config(extra_config=None):
logged = c.user_is_loggedin and c.user.name
user_id = c.user_is_loggedin and c.user._id
gold = bool(logged and c.user.gold)
controller_name = request.environ['pylons.routes_dict']['controller']
action_name = request.environ['pylons.routes_dict']['action']
route_name = controller_name + '.' + action_name
cache_policy = "loggedout_www"
if c.user_is_loggedin:
cache_policy = "loggedin_www_new"
# Canary for detecting cache poisoning
poisoning_canary = None
poisoning_report_mac = None
if logged:
if "pc" in c.cookies and len(c.cookies["pc"].value) == 2:
poisoning_canary = c.cookies["pc"].value
poisoning_report_mac = make_poisoning_report_mac(
poisoner_canary=poisoning_canary,
poisoner_name=logged,
poisoner_id=user_id,
cache_policy=cache_policy,
source="web",
route_name=route_name,
)
mac = hmac.new(g.secrets["action_name"], route_name, hashlib.sha1)
verification = mac.hexdigest()
cur_subreddit = ""
if isinstance(c.site, Subreddit) and not c.default_sr:
cur_subreddit = c.site.name
config = {
# is the user logged in?
"logged": logged,
# logged in user's id
"user_id": user_id,
# the subreddit's name (for posts)
"post_site": cur_subreddit,
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# they're welcome to try to override this in the DOM because we just
# disable the features server-side if applicable
'store_visits': gold and c.user.pref_store_visits,
# current domain
"cur_domain": get_domain(cname=c.frameless_cname, subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(cname=c.authorized_cname, subreddit=False),
"stats_domain": g.stats_domain or '',
"stats_sample_rate": g.stats_sample_rate or 0,
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
# does the client only want to communicate over HTTPS?
"https_forced": c.user.https_forced,
# debugging?
"debug": g.debug,
"poisoning_canary": poisoning_canary,
"poisoning_report_mac": poisoning_report_mac,
"cache_policy": cache_policy,
"send_logs": g.live_config["frontend_logging"],
"server_time": math.floor(time.time()),
"status_msg": {
"fetching": _("fetching title..."),
"submitting": _("submitting..."),
"loading": _("loading...")
},
"is_fake": isinstance(c.site, FakeSubreddit),
"tracker_url": "", # overridden below if configured
"adtracker_url": g.adtracker_url,
"clicktracker_url": g.clicktracker_url,
"uitracker_url": g.uitracker_url,
"eventtracker_url": g.eventtracker_url,
"anon_eventtracker_url": g.anon_eventtracker_url,
"static_root": static(''),
"over_18": bool(c.over18),
"new_window": bool(c.user.pref_newwindow),
"mweb_blacklist_expressions": g.live_config['mweb_blacklist_expressions'],
"vote_hash": c.vote_hash,
"gold": gold,
"has_subscribed": logged and c.user.has_subscribed,
"is_sponsor": logged and c.user_is_sponsor,
"pageInfo": {
"verification": verification,
"actionName": route_name,
},
"facebook_app_id": g.live_config["facebook_app_id"],
}
if g.tracker_url:
config["tracker_url"] = tracking.get_pageview_pixel_url()
if g.uncompressedJS:
config["uncompressedJS"] = True
if extra_config:
#.........这里部分代码省略.........
开发者ID:DreamRivulet,项目名称:reddit,代码行数:101,代码来源:template_helpers.py
示例13: __call__
def __call__(self, environ, start_response):
g = config['pylons.g']
http_host = environ.get('HTTP_HOST', 'localhost').lower()
domain, s, port = http_host.partition(':')
# remember the port
try:
environ['request_port'] = int(port)
except ValueError:
pass
# localhost is exempt so paster run/shell will work
# media_domain doesn't need special processing since it's just ads
if domain == "localhost" or is_subdomain(domain, g.media_domain):
return self.app(environ, start_response)
# tell reddit_base to redirect to the appropriate subreddit for
# a legacy CNAME
if not is_subdomain(domain, g.domain):
environ['legacy-cname'] = domain
return self.app(environ, start_response)
# How many characters to chop off the end of the hostname before
# we start looking at subdomains
ignored_suffix_len = len(g.domain)
# figure out what subdomain we're on, if any
subdomains = domain[:-ignored_suffix_len - 1].split('.')
sr_redirect = None
prefix_parts = []
for subdomain in subdomains[:]:
extension = g.extension_subdomains.get(subdomain)
# These subdomains are reserved, don't treat them as SR
# or language subdomains.
if subdomain in g.reserved_subdomains:
# Some subdomains are reserved, but also can't be mixed into
# the domain prefix for various reasons (permalinks will be
# broken, etc.)
if subdomain in g.ignored_subdomains:
continue
prefix_parts.append(subdomain)
elif extension:
environ['reddit-domain-extension'] = extension
elif self.lang_re.match(subdomain):
environ['reddit-prefer-lang'] = subdomain
else:
sr_redirect = subdomain
subdomains.remove(subdomain)
if 'reddit-prefer-lang' in environ:
prefix_parts.insert(0, environ['reddit-prefer-lang'])
if prefix_parts:
environ['reddit-domain-prefix'] = '.'.join(prefix_parts)
# if there was a subreddit subdomain, redirect
if sr_redirect and environ.get("FULLPATH"):
if not subdomains and g.domain_prefix:
subdomains.append(g.domain_prefix)
subdomains.append(g.domain)
redir = "%s/r/%s/%s" % ('.'.join(subdomains),
sr_redirect, environ['FULLPATH'])
redir = "http://" + redir.replace('//', '/')
start_response("301 Moved Permanently", [("Location", redir)])
return [""]
return self.app(environ, start_response)
开发者ID:njs0630,项目名称:reddit,代码行数:68,代码来源:middleware.py
示例14: __init__
def __init__(self, space_compress=None, nav_menus=None, loginbox=True,
infotext='', infotext_class=None, content=None,
short_description='', title='',
robots=None, show_sidebar=True, show_chooser=False,
footer=True, srbar=True, page_classes=None, short_title=None,
show_wiki_actions=False, extra_js_config=None,
show_locationbar=False,
**context):
Templated.__init__(self, **context)
self.title = title
self.short_title = short_title
self.short_description = short_description
self.robots = robots
self.infotext = infotext
self.extra_js_config = extra_js_config
self.show_wiki_actions = show_wiki_actions
self.loginbox = loginbox
self.show_sidebar = show_sidebar
self.space_compress = space_compress
# instantiate a footer
self.footer = RedditFooter() if footer else None
self.debug_footer = DebugFooter()
self.supplied_page_classes = page_classes or []
#put the sort menus at the top
self.nav_menu = MenuArea(menus = nav_menus) if nav_menus else None
#add the infobar
self.welcomebar = None
self.newsletterbar = None
self.locationbar = None
self.infobar = None
self.mobilewebredirectbar = None
# generate a canonical link for google
self.canonical_link = request.fullpath
if c.render_style != "html":
u = UrlParser(request.fullpath)
u.set_extension("")
u.hostname = g.domain
if g.domain_prefix:
u.hostname = "%s.%s" % (g.domain_prefix, u.hostname)
self.canonical_link = u.unparse()
# Generate a mobile link for Google.
u = UrlParser(request.fullpath)
u.switch_subdomain_by_extension('mobile')
u.scheme = 'https'
self.mobile_link = u.unparse()
if self.show_infobar:
if not infotext:
if g.heavy_load_mode:
# heavy load mode message overrides read only
infotext = strings.heavy_load_msg
elif g.read_only_mode:
infotext = strings.read_only_msg
elif g.live_config.get("announcement_message"):
infotext = g.live_config["announcement_message"]
if infotext:
self.infobar = InfoBar(
message=infotext, extra_class=infotext_class)
elif (isinstance(c.site, DomainSR) and
is_subdomain(c.site.domain, "imgur.com")):
self.infobar = InfoBar(message=
_("imgur.com domain listings (including this one) are "
"currently disabled to speed up vote processing.")
)
elif isinstance(c.site, AllMinus) and not c.user.gold:
self.infobar = InfoBar(message=strings.all_minus_gold_only,
extra_class="gold")
if not c.user_is_loggedin:
self.welcomebar = WelcomeBar()
if feature.is_enabled('newsletter') and getattr(self, "show_newsletterbar", True):
self.newsletterbar = NewsletterBar()
if c.render_style == "compact":
self.mobilewebredirectbar = MobileWebRedirectBar()
show_locationbar &= not c.user.pref_hide_locationbar
if (show_locationbar and c.used_localized_defaults and
(not c.user_is_loggedin or
not c.user.has_subscribed)):
self.locationbar = LocationBar()
self.srtopbar = None
if srbar and not c.cname and not is_api():
self.srtopbar = SubredditTopBar()
panes = [content]
if c.user_is_loggedin and not is_api() and not self.show_wiki_actions:
# insert some form templates for js to use
# TODO: move these to client side templates
gold_link = GoldPayment("gift",
"monthly",
months=1,
signed=False,
recipient="",
#.........这里部分代码省略.........
开发者ID:devineefitz,项目名称:reddit,代码行数:101,代码来源:pages.py
示例15: require_domain
def require_domain(required_domain):
if not is_subdomain(request.host, required_domain):
abort(ForbiddenError(errors.WRONG_DOMAIN))
开发者ID:HerculesCE,项目名称:reddit,代码行数:3,代码来源:reddit_base.py
示例16: js_config
def js_config(extra_config=None):
logged = c.user_is_loggedin and c.user.name
user_id = c.user_is_loggedin and c.user._id
user_in_timeout = c.user_is_loggedin and c.user.in_timeout
gold = bool(logged and c.user.gold)
controller_name = request.environ['pylons.routes_dict']['controller']
action_name = request.environ['pylons.routes_dict']['action']
route_name = controller_name + '.' + action_name
cache_policy = "loggedout_www"
if c.user_is_loggedin:
cache_policy = "loggedin_www_new"
# Canary for detecting cache poisoning
poisoning_canary = None
poisoning_report_mac = None
if logged:
if "pc" in c.cookies and len(c.cookies["pc"].value) == 2:
poisoning_canary = c.cookies["pc"].value
poisoning_report_mac = make_poisoning_report_mac(
poisoner_canary=poisoning_canary,
poisoner_name=logged,
poisoner_id=user_id,
cache_policy=cache_policy,
source="web",
route_name=route_name,
)
mac = hmac.new(g.secrets["action_name"], route_name, hashlib.sha1)
verification = mac.hexdigest()
cur_subreddit = ""
cur_sr_fullname = ""
cur_listing = ""
listing_over_18 = False
pref_no_profanity = not logged or c.user.pref_no_profanity
pref_media_preview = c.user.pref_media_preview
if not feature.is_enabled("autoexpand_media_previews"):
expando_preference = None
elif pref_media_preview == "subreddit":
expando_preference = "subreddit_default"
elif pref_media_preview == "on":
expando_preference = "auto_expand"
else:
expando_preference = "do_not_expand"
pref_beta = c.user.pref_beta
nsfw_media_acknowledged = logged and c.user.nsfw_media_acknowledged
if isinstance(c.site, Subreddit) and not c.default_sr:
cur_subreddit = c.site.name
cur_sr_fullname = c.site._fullname
cur_listing = cur_subreddit
listing_over_18 = c.site.over_18
elif isinstance(c.site, DefaultSR):
cur_listing = "frontpage"
elif isinstance(c.site, FakeSubreddit):
cur_listing = c.site.name
if g.debug:
events_collector_url = g.events_collector_test_url
events_collector_key = g.secrets['events_collector_test_js_key']
events_collector_secret = g.secrets['events_collector_test_js_secret']
else:
events_collector_url = g.events_collector_url
events_collector_key = g.secrets['events_collector_js_key']
events_collector_secret = g.secrets['events_collector_js_secret']
bp_currencyrates = hooks.get_hook("fetchcurrencyrates").call()[0]
config = {
# is the user logged in?
"logged": logged,
# logged in user's id
"user_id": user_id,
# is user in timeout?
"user_in_timeout": user_in_timeout,
# the subreddit's name (for posts)
"post_site": cur_subreddit,
"cur_site": cur_sr_fullname,
"cur_listing": cur_listing,
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# they're welcome to try to override this in the DOM because we just
# disable the features server-side if applicable
'store_visits': gold and c.user.pref_store_visits,
# current domain
"cur_domain": get_domain(subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(subreddit=False),
"stats_domain": g.stats_domain or '',
"stats_sample_rate": g.stats_sample_rate or 0,
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
"media_domain": g.media_domain,
# does the client only want to communicate over HTTPS?
#.........这里部分代码省略.........
开发者ID:mewald55,项目名称:BlockPath,代码行数:101,代码来源:template_helpers.py
示例17: js_config
#.........这里部分代码省略.........
if feature.is_enabled("live_orangereds") and logged:
user_websocket_url = websockets.make_url("/user/%s" % c.user._id36,
max_age=24 * 60 * 60)
else:
user_websocket_url = None
config = {
# is the user logged in?
"logged": logged,
# logged in user's id
"user_id": user_id,
# is user in timeout?
"user_in_timeout": user_in_timeout,
# the subreddit's name (for posts)
"post_site": cur_subreddit,
"cur_site": cur_sr_fullname,
"cur_listing": cur_listing,
# the user's voting hash
"modhash": c.modhash or False,
# the current rendering style
"renderstyle": c.render_style,
# they're welcome to try to override this in the DOM because we just
# disable the features server-side if applicable
'store_visits': gold and c.user.pref_store_visits,
# current domain
"cur_domain": get_domain(subreddit=False, no_www=True),
# where do ajax requests go?
"ajax_domain": get_domain(subreddit=False),
"stats_domain": g.stats_domain or '',
"stats_sample_rate": g.stats_sample_rate or 0,
"extension": c.extension,
"https_endpoint": is_subdomain(request.host, g.domain) and g.https_endpoint,
"media_domain": g.media_domain,
# does the client only want to communicate over HTTPS?
"https_forced": feature.is_enabled("force_https"),
# debugging?
"debug": g.debug,
"poisoning_canary": poisoning_canary,
"poisoning_report_mac": poisoning_report_mac,
"cache_policy": cache_policy,
"send_logs": g.live_config["frontend_logging"],
"server_time": math.floor(time.time()),
"status_msg": {
"fetching": _("fetching title..."),
"submitting": _("submitting..."),
"loading": _("loading...")
},
"is_fake": isinstance(c.site, FakeSubreddit),
"tracker_url": "", # overridden below if configured
"adtracker_url": g.adtracker_url,
"clicktracker_url": g.clicktracker_url,
"uitracker_url": g.uitracker_url,
"eventtracker_url": g.eventtracker_url,
"anon_eventtracker_url": g.anon_eventtracker_url,
"events_collector_url": events_collector_url,
"events_collector_key": events_collector_key,
"events_collector_secret": events_collector_secret,
"feature_screenview_events": feature.is_enabled('screenview_events'),
"feature_outbound_beacons": feature.is_enabled('outbound_beacons'),
"feature_scroll_events": feature.is_enabled('scroll_events'),
"static_root": static(''),
"over_18": bool(c.over18),
"listing_over_18": listing_over_18,
"expando_preference": expando_preference,
开发者ID:zeantsoi,项目名称:reddit,代码行数:67,代码来源:template_helpers.py
示例18: __call__
def __call__(self, environ, start_response):
g = config['pylons.g']
http_host = environ.get('HTTP_HOST', 'localhost').lower()
domain, s, port = http_host.partition(':')
# remember the port
try:
environ['request_port'] = int(port)
except ValueError:
pass
# localhost is exempt so paster run/shell will work
# media_domain doesn't need special processing since it's just ads
if domain == "localhost" or is_subdomain(domain, g.media_domain):
return self.app(environ, start_response)
# tell reddit_base to redirect to the appropriate subreddit for
# a legacy CNAME
if not is_subdomain(domain, g.domain):
environ['legacy-cname'] = domain
return self.app(environ, start_response)
# How many characters to chop off the end of the hostname before
# we start looking at subdomains
ignored_suffix_len = len(g.domain)
# OAuth is a bit of a special case. `foo.oauth.domain.com` should be
# treated like `foo.domain.com` when generating links
if g.oauth_domain and is_subdomain(domain, g.oauth_domain):
ignored_suffix_len = len(g.oauth_domain)
# figure out what subdomain we're on, if any
subdomains = domain[:-ignored_suffix_len - 1].split('.')
extension_subdomains = dict(m="mobile",
i="compact",
api="api",
rss="rss",
xml="xml",
json="json")
sr_redirect = None
prefix_parts = []
for subdomain in subdomains[:]:
extension = extension_subdomains.get(subdomain)
# These subdomains have special meanings, don't treat them as SR
# or language subdomains.
if subdomain in g.reserved_subdomains:
if subdomain == g.domain_prefix:
continue
prefix_parts.append(subdomain)
elif extension:
environ['reddit-domain-extension'] = extension
elif self.lang_re.match(subdomain):
environ['reddit-prefer-lang'] = subdomain
else:
sr_redirect = subdomain
subdomains.remove(subdomain)
if 'reddit-prefer-lang' in environ:
prefix_parts.insert(0, environ['reddit-prefer-lang'])
if prefix_parts:
environ['reddit-domain-prefix'] = '.'.join(prefix_parts)
# if there was a subreddit subdomain, redirect
if sr_redirect and environ.get("FULLPATH"):
if not subdomains and g.domain_prefix:
subdomains.append(g.domain_prefix)
subdomains.append(g.domain)
redir = "%s/r/%s/%s" % ('.'.join(subdomains),
sr_redirect, environ['FULLPATH'])
redir = "http://" + redir.replace('//', '/')
start_response("301 Moved Permanently", [("Location", redir)])
return [""]
return self.app(environ, start_response)
开发者ID:Robert77168,项目名称:reddit,代码行数:76,代码来源:middleware.py
示例19: _edit_promo
#.........这里部分代码省略.........
if not promote.is_promoted(l) or c.user_is_sponsor:
if title and title != l.title:
l.title = title
changed = not c.user_is_sponsor
if kind == 'link' and url and url != l.url:
l.url = url
changed = not c.user_is_sponsor
# only trips if t
|
请发表评论