本文整理汇总了Python中r2.models.subreddit.Subreddit._by_domain方法的典型用法代码示例。如果您正苦于以下问题:Python Subreddit._by_domain方法的具体用法?Python Subreddit._by_domain怎么用?Python Subreddit._by_domain使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.subreddit.Subreddit
的用法示例。
在下文中一共展示了Subreddit._by_domain方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
#the r parameter gets added by javascript for POST requests so we
#can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get('r'))
domain = request.environ.get("domain")
can_stale = request.method.upper() in ('GET','HEAD')
c.site = Frontpage
if not sr_name:
#check for cnames
cname = request.environ.get('legacy-cname')
if cname:
sr = Subreddit._by_domain(cname) or Frontpage
domain = g.domain
if g.domain_prefix:
domain = ".".join((g.domain_prefix, domain))
redirect_to('http://%s%s' % (domain, sr.path), _code=301)
elif sr_name == 'r':
#reddits
c.site = Sub
elif '+' in sr_name:
sr_names = sr_name.split('+')
srs = set(Subreddit._by_name(sr_names, stale=can_stale).values())
if All in srs:
c.site = All
elif Friends in srs:
c.site = Friends
else:
srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)]
if len(srs) == 0:
c.site = MultiReddit([], sr_name)
elif len(srs) == 1:
c.site = srs.pop()
else:
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, sr_name)
else:
try:
c.site = Subreddit._by_name(sr_name, stale=can_stale)
except NotFound:
sr_name = chksrname(sr_name)
if sr_name:
redirect_to("/reddits/search?q=%s" % sr_name)
elif not c.error_page and not request.path.startswith("/api/login/") :
abort(404)
#if we didn't find a subreddit, check for a domain listing
if not sr_name and isinstance(c.site, DefaultSR) and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True
示例2: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
#the r parameter gets added by javascript for POST requests so we
#can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get('r'))
domain = request.environ.get("domain")
can_stale = request.method.upper() in ('GET','HEAD')
default_sr = DefaultSR()
c.site = default_sr
if not sr_name:
#check for cnames
sub_domain = request.environ.get('sub_domain')
if sub_domain and not sub_domain.endswith(g.media_domain):
c.site = Subreddit._by_domain(sub_domain) or default_sr
elif sr_name == 'r':
#reddits
c.site = Sub
else:
try:
if '+' in sr_name:
srs = set()
sr_names = sr_name.split('+')
real_path = sr_name
srs = Subreddit._by_name(sr_names, stale=can_stale).values()
if len(srs) != len(sr_names):
abort(404)
elif any(isinstance(sr, FakeSubreddit)
for sr in srs):
if All in srs:
c.site = All
elif Friend in srs:
c.site = Friend
else:
abort(400)
else:
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, real_path)
else:
c.site = Subreddit._by_name(sr_name, stale=can_stale)
except NotFound:
sr_name = chksrname(sr_name)
if sr_name:
redirect_to("/reddits/search?q=%s" % sr_name)
elif not c.error_page and not request.path.startswith("/api/login/") :
abort(404)
#if we didn't find a subreddit, check for a domain listing
if not sr_name and isinstance(c.site, DefaultSR) and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True
示例3: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
# the r parameter gets added by javascript for POST requests so we
# can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get("r"))
domain = request.environ.get("domain")
can_stale = request.method.upper() in ("GET", "HEAD")
default_sr = DefaultSR()
c.site = default_sr
if not sr_name:
# check for cnames
sub_domain = request.environ.get("sub_domain")
if sub_domain and not sub_domain.endswith(g.media_domain):
c.site = Subreddit._by_domain(sub_domain) or default_sr
elif sr_name == "r":
# reddits
c.site = Sub
elif "+" in sr_name:
sr_names = sr_name.split("+")
srs = set(Subreddit._by_name(sr_names, stale=can_stale).values())
if All in srs:
c.site = All
elif Friends in srs:
c.site = Friends
else:
srs = [sr for sr in srs if not isinstance(sr, FakeSubreddit)]
if len(srs) == 0:
c.site = MultiReddit([], sr_name)
elif len(srs) == 1:
c.site = srs.pop()
else:
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, sr_name)
else:
try:
c.site = Subreddit._by_name(sr_name, stale=can_stale)
except NotFound:
sr_name = chksrname(sr_name)
if sr_name:
redirect_to("/reddits/search?q=%s" % sr_name)
elif not c.error_page and not request.path.startswith("/api/login/"):
abort(404)
# if we didn't find a subreddit, check for a domain listing
if not sr_name and isinstance(c.site, DefaultSR) and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True
示例4: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
#the r parameter gets added by javascript for POST requests so we
#can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get('r'))
domain = request.environ.get("domain")
if not sr_name:
#check for cnames
sub_domain = request.environ.get('sub_domain')
sr = Subreddit._by_domain(sub_domain) if sub_domain else None
c.site = sr or Default
elif sr_name == 'r':
#reddits
c.site = Sub
else:
try:
if '+' in sr_name:
srs = set()
sr_names = sr_name.split('+')
real_path = sr_name
for sr_name in sr_names:
srs.add(Subreddit._by_name(sr_name))
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, real_path)
else:
c.site = Subreddit._by_name(sr_name)
except NotFound:
c.site = Default
if chksrname(sr_name):
redirect_to("/categories/create?name=%s" % sr_name)
elif not c.error_page:
abort(404, "not found")
#if we didn't find a subreddit, check for a domain listing
if not sr_name and c.site == Default and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True
try:
c.current_or_default_sr = Subreddit._by_name(g.default_sr)
except NotFound:
c.current_or_default_sr = None
else:
c.current_or_default_sr = c.site
# check that the site is available:
if c.site._spam and not c.user_is_admin and not c.error_page:
abort(404, "not found")
示例5: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
# the r parameter gets added by javascript for POST requests so we
# can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get("r"))
domain = request.environ.get("domain")
c.site = Default
if not sr_name:
# check for cnames
sub_domain = request.environ.get("sub_domain")
if sub_domain and not sub_domain.endswith(g.media_domain):
c.site = Subreddit._by_domain(sub_domain) or Default
elif sr_name == "r":
# reddits
c.site = Sub
else:
try:
if "+" in sr_name:
srs = set()
sr_names = sr_name.split("+")
real_path = sr_name
srs = Subreddit._by_name(sr_names).values()
if len(srs) != len(sr_names):
abort(404)
elif any(isinstance(sr, FakeSubreddit) for sr in srs):
if All in srs:
c.site = All
elif Friend in srs:
c.site = Friend
else:
abort(400)
else:
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, real_path)
else:
c.site = Subreddit._by_name(sr_name)
except NotFound:
sr_name = chksrname(sr_name)
if sr_name:
redirect_to("/reddits/search?q=%s" % sr_name)
elif not c.error_page:
abort(404)
# if we didn't find a subreddit, check for a domain listing
if not sr_name and c.site == Default and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True
示例6: set_subreddit
# 需要导入模块: from r2.models.subreddit import Subreddit [as 别名]
# 或者: from r2.models.subreddit.Subreddit import _by_domain [as 别名]
def set_subreddit():
#the r parameter gets added by javascript for POST requests so we
#can reference c.site in api.py
sr_name = request.environ.get("subreddit", request.POST.get('r'))
domain = request.environ.get("domain")
c.site = Default
if not sr_name:
#check for cnames
sub_domain = request.environ.get('sub_domain')
if sub_domain and not sub_domain.endswith(g.media_domain):
c.site = Subreddit._by_domain(sub_domain) or Default
elif sr_name == 'r':
#reddits
c.site = Sub
else:
try:
if '+' in sr_name:
srs = set()
sr_names = sr_name.split('+')
real_path = sr_name
for sr_name in sr_names:
srs.add(Subreddit._by_name(sr_name))
sr_ids = [sr._id for sr in srs]
c.site = MultiReddit(sr_ids, real_path)
else:
c.site = Subreddit._by_name(sr_name)
except NotFound:
sr_name = chksrname(sr_name)
if sr_name:
redirect_to("/reddits/search?q=%s" % sr_name)
elif not c.error_page:
abort(404, "not found")
#if we didn't find a subreddit, check for a domain listing
if not sr_name and c.site == Default and domain:
c.site = DomainSR(domain)
if isinstance(c.site, FakeSubreddit):
c.default_sr = True