本文整理汇总了Python中r2.models.Account._fullname_from_id36方法的典型用法代码示例。如果您正苦于以下问题:Python Account._fullname_from_id36方法的具体用法?Python Account._fullname_from_id36怎么用?Python Account._fullname_from_id36使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.Account
的用法示例。
在下文中一共展示了Account._fullname_from_id36方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _restrict_sr
# 需要导入模块: from r2.models import Account [as 别名]
# 或者: from r2.models.Account import _fullname_from_id36 [as 别名]
def _restrict_sr(sr):
'''Return a cloudsearch appropriate query string that restricts
results to only contain results from self.sr
'''
if isinstance(sr, MultiReddit):
if not sr.sr_ids:
raise InvalidQuery
srs = ["sr_id:%s" % sr_id for sr_id in sr.sr_ids]
return "(or %s)" % ' '.join(srs)
elif isinstance(sr, DomainSR):
return "site:'%s'" % sr.domain
elif isinstance(sr, FriendsSR):
if not c.user_is_loggedin or not c.user.friends:
raise InvalidQuery
# The query limit is roughly 8k bytes. Limit to 200 friends to
# avoid getting too close to that limit
friend_ids = c.user.friends[:200]
friends = ["author_fullname:'%s'" %
Account._fullname_from_id36(r2utils.to36(id_))
for id_ in friend_ids]
return "(or %s)" % ' '.join(friends)
elif not isinstance(sr, FakeSubreddit):
return "sr_id:%s" % sr._id
return None
示例2: _get_sr_restriction
# 需要导入模块: from r2.models import Account [as 别名]
# 或者: from r2.models.Account import _fullname_from_id36 [as 别名]
def _get_sr_restriction(sr):
'''Return a solr-appropriate query string that restricts
results to only contain results from self.sr
'''
bq = []
if (not sr) or sr == All or isinstance(sr, DefaultSR):
return None
elif isinstance(sr, MultiReddit):
for sr_id in sr.sr_ids:
bq.append("sr_id:%s" % sr_id)
elif isinstance(sr, DomainSR):
bq = ["site:'%s'" % sr.domain]
elif sr == Friends:
if not c.user_is_loggedin or not c.user.friends:
return None
friend_ids = c.user.friends
friends = ["author_fullname:'%s'" %
Account._fullname_from_id36(r2utils.to36(id_))
for id_ in friend_ids]
bq.extend(friends)
elif isinstance(sr, ModContribSR):
for sr_id in sr.sr_ids:
bq.append("sr_id:%s" % sr_id)
elif not isinstance(sr, FakeSubreddit):
bq = ["sr_id:%s" % sr._id]
return ' OR '.join(bq)
示例3: _get_sr_restriction
# 需要导入模块: from r2.models import Account [as 别名]
# 或者: from r2.models.Account import _fullname_from_id36 [as 别名]
def _get_sr_restriction(sr):
"""Return a cloudsearch appropriate query string that restricts
results to only contain results from self.sr
"""
bq = []
if (not sr) or sr == All or isinstance(sr, DefaultSR):
return None
elif isinstance(sr, MultiReddit):
bq = ["(or"]
for sr_id in sr.sr_ids:
bq.append("sr_id:%s" % sr_id)
bq.append(")")
elif isinstance(sr, DomainSR):
bq = ["site:'%s'" % sr.domain]
elif sr == Friends:
if not c.user_is_loggedin or not c.user.friends:
return None
bq = ["(or"]
# The query limit is roughly 8k bytes. Limit to 200 friends to
# avoid getting too close to that limit
friend_ids = c.user.friends[:200]
friends = ["author_fullname:'%s'" % Account._fullname_from_id36(r2utils.to36(id_)) for id_ in friend_ids]
bq.extend(friends)
bq.append(")")
elif isinstance(sr, ModContribSR):
bq = ["(or"]
for sr_id in sr.sr_ids:
bq.append("sr_id:%s" % sr_id)
bq.append(")")
elif not isinstance(sr, FakeSubreddit):
bq = ["sr_id:%s" % sr._id]
return " ".join(bq)
示例4: bulk_upsert
# 需要导入模块: from r2.models import Account [as 别名]
# 或者: from r2.models.Account import _fullname_from_id36 [as 别名]
def bulk_upsert(links):
updates = filter(lambda user: getattr(user, "dfp_creative_id", False), links)
inserts = filter(lambda user: not getattr(user, "dfp_creative_id", False), links)
dfp_creative_service = DfpService("CreativeService")
creatives = []
if updates:
existing_creatives = {}
statement = dfp.FilterStatement(
"WHERE id IN (%s)" %
", ".join([str(link.dfp_creative_id) for link in updates]))
while True:
response = dfp_creative_service.execute(
"getCreativesByStatement",
statement.ToStatement(),
)
if "results" in response:
for creative in response["results"]:
existing_creatives[creative.id] = creative
statement.offset += dfp.SUGGESTED_PAGE_LIMIT
else:
break
updated = dfp_creative_service.execute("updateCreatives", [
_link_to_creative(
link=link,
existing=existing_creatives[link.dfp_creative_id],
)
for link in updates])
creatives += updated
if inserts:
authors = Account._byID([link.author_id for link in inserts], return_dict=False)
advertisers = advertisers_service.bulk_upsert(authors)
advertisers_by_author = {
advertiser.externalId: advertiser
for advertiser in advertisers}
inserted = dfp_creative_service.execute("createCreatives", [
_link_to_creative(
link=link,
advertiser=advertisers_by_author[
Account._fullname_from_id36(to36(link.author_id))
],
)
for link in inserts])
creatives += inserted
creatives_by_fullname = {
utils.get_template_variable(creative, "link_id"): creative
for creative in creatives}
for link in links:
creative = creatives_by_fullname[link._fullname]
link.dfp_creative_id = creative.id
link._commit()
return creatives