本文整理汇总了Python中r2.models.Vote.likes方法的典型用法代码示例。如果您正苦于以下问题:Python Vote.likes方法的具体用法?Python Vote.likes怎么用?Python Vote.likes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类r2.models.Vote
的用法示例。
在下文中一共展示了Vote.likes方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_likes
# 需要导入模块: from r2.models import Vote [as 别名]
# 或者: from r2.models.Vote import likes [as 别名]
def get_likes(user, items):
if not user or not items:
return {}
res = {}
# check the prequeued_vote_keys
keys = {}
for item in items:
if (user, item) in res:
continue
key = prequeued_vote_key(user, item)
keys[key] = (user, item)
if keys:
r = g.cache.get_multi(keys.keys())
for key, v in r.iteritems():
res[keys[key]] = (True if v == '1'
else False if v == '-1'
else None)
for item in items:
# already retrieved above
if (user, item) in res:
continue
# we can only vote on links and comments
if not isinstance(item, (Link, Comment)):
res[(user, item)] = None
likes = Vote.likes(user, [i for i in items if (user, i) not in res])
res.update(likes)
return res
示例2: get_likes
# 需要导入模块: from r2.models import Vote [as 别名]
# 或者: from r2.models.Vote import likes [as 别名]
def get_likes(user, items):
if not user or not items:
return {}
keys = {}
res = {}
keys = dict((prequeued_vote_key(user, item), (user,item))
for item in items)
r = g.cache.get_multi(keys.keys())
# populate the result set based on what we fetched from the cache first
for k, v in r.iteritems():
res[keys[k]] = v
# now hit the vote db with the remainder
likes = Vote.likes(user, [i for i in items if (user, i) not in res])
for k, v in likes.iteritems():
res[k] = v._name
# lastly, translate into boolean:
for k in res.keys():
res[k] = (True if res[k] == '1'
else False if res[k] == '-1' else None)
return res
示例3: get_likes
# 需要导入模块: from r2.models import Vote [as 别名]
# 或者: from r2.models.Vote import likes [as 别名]
def get_likes(user, items):
if not user or not items:
return {}
res = {}
# check the prequeued_vote_keys
keys = {}
for item in items:
if (user, item) in res:
continue
key = prequeued_vote_key(user, item)
keys[key] = (user, item)
if keys:
r = g.cache.get_multi(keys.keys())
for key, v in r.iteritems():
res[keys[key]] = (True if v == '1'
else False if v == '-1'
else None)
# avoid requesting items that they can't have voted on (we're
# still using the tdb_sql Thing API for this). TODO: we should do
# this before the prequeued_vote_keys lookup, so that in extreme
# cases we can avoid hitting the cache for them at all, but in the
# current state that precludes brand new comments from appearing
# to have been voted on
for item in items:
if (user, item) in res:
continue
# we can only vote on links and comments
if isinstance(item, (Link, Comment)):
rel = Vote.rel(user.__class__, item.__class__)
if rel._can_skip_lookup(user, item):
res[(user, item)] = None
else:
res[(user, item)] = None
# now hit Cassandra with the remainder
likes = Vote.likes(user, [i for i in items if (user, i) not in res])
res.update(likes)
return res