本文整理汇总了Python中r2.models.subreddit.Subreddit类的典型用法代码示例。如果您正苦于以下问题:Python Subreddit类的具体用法?Python Subreddit怎么用?Python Subreddit使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Subreddit类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: setUp
def setUp(self):
a = Account()
a._commit()
sr = Subreddit(name = 'subreddit_name_%s' % (self.seconds_since_epoc(),),
title = 'subreddit_title_%s' % (self.seconds_since_epoc(),),)
sr._commit()
self.rel = SRMember(sr, a, 'test')
开发者ID:caseypatrickdriscoll,项目名称:reddit,代码行数:7,代码来源:subreddit_test.py
示例2: testExcludeNegativeLookups
def testExcludeNegativeLookups(self):
self.cache.get_multi.return_value = {"doesnotexist": Subreddit.SRNAME_NOTFOUND}
with self.assertRaises(NotFound):
Subreddit._by_name("doesnotexist")
self.assertEqual(self.subreddit_query.call_count, 0)
self.assertEqual(self.subreddit_byID.call_count, 0)
self.assertEqual(self.cache.set_multi.call_count, 0)
开发者ID:AppleBetas,项目名称:reddit,代码行数:8,代码来源:subreddit_test.py
示例3: testCacheNegativeResults
def testCacheNegativeResults(self):
self.cache.get_multi.return_value = {}
self.subreddit_query.return_value = []
self.subreddit_byID.return_value = []
with self.assertRaises(NotFound):
Subreddit._by_name("doesnotexist")
self.cache.set_multi.assert_called_once_with(
{"doesnotexist": Subreddit.SRNAME_NOTFOUND}, prefix="srid:")
开发者ID:AppleBetas,项目名称:reddit,代码行数:10,代码来源:subreddit_test.py
示例4: get_promote_srid
def get_promote_srid(name = 'promos'):
try:
sr = Subreddit._by_name(name, stale=True)
except NotFound:
sr = Subreddit._new(name = name,
title = "promoted links",
# negative author_ids make this unlisable
author_id = -1,
type = "public",
ip = '0.0.0.0')
return sr._id
开发者ID:dinxx,项目名称:reddit,代码行数:11,代码来源:promo.py
示例5: set_subreddit
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
开发者ID:chrish42,项目名称:reddit,代码行数:53,代码来源:reddit_base.py
示例6: set_subreddit
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
开发者ID:rmurt,项目名称:reddit,代码行数:52,代码来源:reddit_base.py
示例7: set_subreddit
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
开发者ID:sylversphere,项目名称:reddit,代码行数:50,代码来源:reddit_base.py
示例8: set_subreddit
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")
开发者ID:Craigus,项目名称:lesswrong,代码行数:49,代码来源:reddit_base.py
示例9: set_subreddit
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
开发者ID:jrabbit,项目名称:reddit,代码行数:48,代码来源:reddit_base.py
示例10: GET_document
def GET_document(self):
try:
#no cookies on errors
c.cookies.clear()
code = request.GET.get('code', '')
srname = request.GET.get('srname', '')
if srname:
c.site = Subreddit._by_name(srname)
if c.render_style not in self.allowed_render_styles:
return str(code)
elif code == '403':
return self.send403()
elif code == '500':
return redditbroke % rand_strings.sadmessages
elif code == '503':
c.response.status_code = 503
c.response.headers['Retry-After'] = 1
c.response.content = toofast
return c.response
elif code == '304':
if request.GET.has_key('x-sup-id'):
c.response.headers['x-sup-id'] = request.GET.get('x-sup-id')
return c.response
elif c.site:
return self.send404()
else:
return "page not found"
except:
return handle_awful_failure("something really bad just happened.")
开发者ID:rajbot,项目名称:tikical,代码行数:30,代码来源:error.py
示例11: set_recent_reddits
def set_recent_reddits():
names = read_user_cookie('recent_reddits')
c.recent_reddits = []
if names:
names = filter(None, names.split(','))
c.recent_reddits = Subreddit._by_fullname(names, data = True,
return_dict = False)
开发者ID:vin,项目名称:reddit,代码行数:7,代码来源:reddit_base.py
示例12: _add_multi_srs
def _add_multi_srs(self, multi, sr_datas):
srs = Subreddit._by_name(sr_data['name'] for sr_data in sr_datas)
for sr in srs.itervalues():
if isinstance(sr, FakeSubreddit):
raise RedditError('MULTI_SPECIAL_SUBREDDIT',
msg_params={'path': sr.path},
code=400)
sr_props = {}
for sr_data in sr_datas:
try:
sr = srs[sr_data['name']]
except KeyError:
raise RedditError('SUBREDDIT_NOEXIST', code=400)
else:
# name is passed in via the API data format, but should not be
# stored on the model.
del sr_data['name']
sr_props[sr] = sr_data
try:
multi.add_srs(sr_props)
except TooManySubredditsError as e:
raise RedditError('MULTI_TOO_MANY_SUBREDDITS', code=409)
return sr_props
开发者ID:ani625,项目名称:reddit,代码行数:27,代码来源:multi.py
示例13: GET_document
def GET_document(self):
try:
c.errors = c.errors or ErrorSet()
# clear cookies the old fashioned way
c.cookies = Cookies()
code = request.GET.get('code', '')
try:
code = int(code)
except ValueError:
code = 404
srname = request.GET.get('srname', '')
takedown = request.GET.get('takedown', "")
# StatusBasedRedirect will override this anyway, but we need this
# here for pagecache to see.
response.status_int = code
if srname:
c.site = Subreddit._by_name(srname)
if request.GET.has_key('allow_framing'):
c.allow_framing = bool(request.GET['allow_framing'] == '1')
if code in (204, 304):
# NEVER return a content body on 204/304 or downstream
# caches may become very confused.
if request.GET.has_key('x-sup-id'):
x_sup_id = request.GET.get('x-sup-id')
if '\r\n' not in x_sup_id:
response.headers['x-sup-id'] = x_sup_id
return ""
elif c.render_style not in self.allowed_render_styles:
return str(code)
elif c.render_style in extensions.API_TYPES:
data = request.environ.get('extra_error_data', {'error': code})
if request.environ.get("WANT_RAW_JSON"):
return scriptsafe_dumps(data)
return websafe_json(json.dumps(data))
elif takedown and code == 404:
link = Link._by_fullname(takedown)
return pages.TakedownPage(link).render()
elif code == 403:
return self.send403()
elif code == 429:
return self.send429()
elif code == 500:
randmin = {'admin': random.choice(self.admins)}
failien_url = make_failien_url()
sad_message = safemarkdown(rand_strings.sadmessages % randmin)
return redditbroke % (failien_url, sad_message)
elif code == 503:
return self.send503()
elif c.site:
return self.send404()
else:
return "page not found"
except Exception as e:
return handle_awful_failure("ErrorController.GET_document: %r" % e)
开发者ID:ActivateServices,项目名称:reddit,代码行数:59,代码来源:error.py
示例14: subreddits_slow
def subreddits_slow(self):
if self._subreddits is not None:
return self._subreddits
sr_names = self.subreddit_names
srs = Subreddit._by_name(sr_names).values()
self._subreddits = srs
return srs
开发者ID:rgandsam,项目名称:reddit,代码行数:8,代码来源:promo.py
示例15: set_recent_reddits
def set_recent_reddits():
names = read_user_cookie("recent_reddits")
c.recent_reddits = []
if names:
names = filter(None, names.strip("[]").split(","))
try:
c.recent_reddits = Subreddit._by_fullname(names, data=True, return_dict=False)
except NotFound:
pass
开发者ID:jrabbit,项目名称:reddit,代码行数:9,代码来源:reddit_base.py
示例16: testSingleCached
def testSingleCached(self):
subreddit = Subreddit(id=1, name="exists")
self.cache.get_multi.return_value = {"exists": subreddit._id}
self.subreddit_byID.return_value = [subreddit]
ret = Subreddit._by_name("exists")
self.assertEqual(ret, subreddit)
self.assertEqual(self.subreddit_query.call_count, 0)
开发者ID:AppleBetas,项目名称:reddit,代码行数:9,代码来源:subreddit_test.py
示例17: embeddable_sr
def embeddable_sr(thing):
if isinstance(thing, Subreddit):
sr = thing
else:
try:
sr = Subreddit._byID(thing.sr_id) if thing.sr_id else None
except NotFound:
sr = None
return sr if (sr is not None and sr.type not in Subreddit.private_types) else False
开发者ID:SovietMan,项目名称:reddit,代码行数:10,代码来源:embeds.py
示例18: testSingleFromDB
def testSingleFromDB(self):
subreddit = Subreddit(id=1, name="exists")
self.cache.get_multi.return_value = {}
self.subreddit_query.return_value = [subreddit]
self.subreddit_byID.return_value = [subreddit]
ret = Subreddit._by_name("exists")
self.assertEqual(ret, subreddit)
self.assertEqual(self.cache.set_multi.call_count, 1)
开发者ID:AppleBetas,项目名称:reddit,代码行数:10,代码来源:subreddit_test.py
示例19: get_roadblocks
def get_roadblocks(cls):
ret = []
q = cls._cf.get_range()
rows = list(q)
srs = Subreddit._byID36([id36 for id36, columns in rows], data=True)
for id36, columns in rows:
sr = srs[id36]
for key in columns.iterkeys():
start, end = cls._dates_from_key(key)
ret.append((sr.name, start, end))
return ret
开发者ID:dinxx,项目名称:reddit,代码行数:11,代码来源:promo.py
示例20: testForceUpdate
def testForceUpdate(self):
sr = Subreddit(id=1, name="exists")
self.cache.get_multi.return_value = {sr.name: sr._id}
self.subreddit_query.return_value = [sr]
self.subreddit_byID.return_value = [sr]
ret = Subreddit._by_name("exists", _update=True)
self.assertEqual(ret, sr)
self.cache.set_multi.assert_called_once_with(
{sr.name: sr._id}, prefix="srid:")
开发者ID:AppleBetas,项目名称:reddit,代码行数:11,代码来源:subreddit_test.py
注:本文中的r2.models.subreddit.Subreddit类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论