本文整理汇总了Python中r2.lib.count.incr_counts函数的典型用法代码示例。如果您正苦于以下问题:Python incr_counts函数的具体用法?Python incr_counts怎么用?Python incr_counts使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了incr_counts函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: add_props
def add_props(cls, user, wrapped):
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
saved = Link._saved(user, wrapped) if user else {}
hidden = Link._hidden(user, wrapped) if user else {}
#clicked = Link._clicked(user, wrapped) if user else {}
clicked = {}
for item in wrapped:
show_media = (c.user.pref_media == 'on' or
(item.promoted and item.has_thumbnail
and c.user.pref_media != 'off') or
(c.user.pref_media == 'subreddit' and
item.subreddit.show_media))
if not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
else:
item.thumbnail = g.default_thumb
item.score = max(0, item.score)
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
if not hasattr(item,'top_link'):
item.top_link = False
item.urlprefix = ''
item.saved = bool(saved.get((user, item, 'save')))
item.hidden = bool(hidden.get((user, item, 'hide')))
item.clicked = bool(clicked.get((user, item, 'click')))
item.num = None
item.score_fmt = Score.number_only
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit, force_domain = True)
if c.user_is_admin:
item.hide_score = False
elif item.promoted:
item.hide_score = True
elif c.user == item.author:
item.hide_score = False
elif item._date > timeago("2 hours"):
item.hide_score = True
else:
item.hide_score = False
if c.user_is_loggedin and item.author._id == c.user._id:
item.nofollow = False
elif item.score <= 1 or item._spam or item.author._spam:
item.nofollow = True
else:
item.nofollow = False
if c.user_is_loggedin:
incr_counts(wrapped)
开发者ID:vin,项目名称:reddit,代码行数:59,代码来源:link.py
示例2: vote
def vote(cls, sub, obj, dir, ip, spam=False, organic=False):
from admintools import valid_user, valid_thing, update_score
from r2.lib.count import incr_counts
sr = obj.subreddit_slow
kind = obj.__class__.__name__.lower()
karma = sub.karma(kind, sr)
is_self_link = kind == "link" and hasattr(obj, "is_self") and obj.is_self
# check for old vote
rel = cls.rel(sub, obj)
oldvote = list(rel._query(rel.c._thing1_id == sub._id, rel.c._thing2_id == obj._id, data=True))
amount = 1 if dir is True else 0 if dir is None else -1
is_new = False
# old vote
if len(oldvote):
v = oldvote[0]
oldamount = int(v._name)
v._name = str(amount)
# these still need to be recalculated
old_valid_thing = v.valid_thing
v.valid_thing = valid_thing(v, karma) and v.valid_thing and not spam
v.valid_user = v.valid_user and v.valid_thing and valid_user(v, sr, karma)
# new vote
else:
is_new = True
oldamount = 0
v = rel(sub, obj, str(amount))
v.author_id = obj.author_id
v.ip = ip
old_valid_thing = v.valid_thing = valid_thing(v, karma) and not spam
v.valid_user = v.valid_thing and valid_user(v, sr, karma) and not is_self_link
if organic:
v.organic = organic
v._commit()
up_change, down_change = score_changes(amount, oldamount)
update_score(obj, up_change, down_change, v.valid_thing, old_valid_thing)
if v.valid_user:
author = Account._byID(obj.author_id, data=True)
author.incr_karma(kind, sr, up_change - down_change)
# update the sr's valid vote count
if is_new and v.valid_thing and kind == "link":
if sub._id != obj.author_id:
incr_counts([sr])
return v
开发者ID:vin,项目名称:reddit,代码行数:55,代码来源:vote.py
示例3: add_props
def add_props(cls, user, wrapped):
from r2.lib.count import incr_counts
saved = Link._saved(user, wrapped) if user else {}
hidden = Link._hidden(user, wrapped) if user else {}
#clicked = Link._clicked(user, wrapped) if user else {}
clicked = {}
for item in wrapped:
item.score = max(0, item.score)
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
item.top_link = False
item.urlprefix = ''
item.saved = bool(saved.get((user, item, 'save')))
item.hidden = bool(hidden.get((user, item, 'hide')))
item.clicked = bool(clicked.get((user, item, 'click')))
item.num = None
item.score_fmt = Score.number_only
if c.user_is_loggedin:
incr_counts(wrapped)
开发者ID:cmak,项目名称:reddit,代码行数:23,代码来源:link.py
示例4: vote
def vote(cls, sub, obj, dir, ip, spam = False, organic = False):
from admintools import valid_user, valid_thing, update_score
from r2.lib.count import incr_counts
# An account can only perform 1 voting operation at a time.
with g.make_lock('account_%s_voting' % sub._id):
# If downvoting ensure that the user has enough karma, it
# will raise an exception if not.
if dir == False:
sub.check_downvote()
# Do the voting.
sr = obj.subreddit_slow
kind = obj.__class__.__name__.lower()
karma = sub.karma(kind, sr)
#check for old vote
rel = cls.rel(sub, obj)
oldvote = list(rel._query(rel.c._thing1_id == sub._id,
rel.c._thing2_id == obj._id,
data = True))
amount = 1 if dir is True else 0 if dir is None else -1
is_new = False
#old vote
if len(oldvote):
v = oldvote[0]
oldamount = int(v._name)
v._name = str(amount)
#these still need to be recalculated
old_valid_thing = getattr(v, 'valid_thing', True)
v.valid_thing = (valid_thing(v, karma)
and v.valid_thing
and not spam)
v.valid_user = (v.valid_user
and v.valid_thing
and valid_user(v, sr, karma))
#new vote
else:
is_new = True
oldamount = 0
v = rel(sub, obj, str(amount))
v.author_id = obj.author_id
v.ip = ip
old_valid_thing = v.valid_thing = (valid_thing(v, karma) and
not spam)
v.valid_user = v.valid_thing and valid_user(v, sr, karma)
if organic:
v.organic = organic
v._commit()
# Record that this account has made a downvote and
# immediately release the lock since both the downvote
# count and the vote have been updated.
up_change, down_change = score_changes(amount, oldamount)
if down_change:
sub.incr_downvote(down_change)
# Continue by updating karmas.
update_score(obj, up_change, down_change,
v.valid_thing, old_valid_thing)
if v.valid_user:
author = Account._byID(obj.author_id, data=True)
author.incr_karma(kind, sr, up_change - down_change)
#update the sr's valid vote count
if is_new and v.valid_thing and kind == 'link':
if sub._id != obj.author_id:
incr_counts([sr])
return v
开发者ID:AndrewHay,项目名称:lesswrong,代码行数:75,代码来源:vote.py
示例5: add_props
def add_props(cls, user, wrapped):
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
saved = Link._saved(user, wrapped) if user else {}
hidden = Link._hidden(user, wrapped) if user else {}
clicked = Link._clicked(user, wrapped) if user else {}
#clicked = {}
for item in wrapped:
show_media = False
if c.user.pref_compress:
pass
elif c.user.pref_media == 'on':
show_media = True
elif c.user.pref_media == 'subreddit' and item.subreddit.show_media:
show_media = True
elif (item.promoted
and item.has_thumbnail
and c.user.pref_media != 'off'):
show_media = True
if not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
else:
item.thumbnail = g.default_thumb
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
if not hasattr(item,'top_link'):
item.top_link = False
item.urlprefix = ''
item.saved = bool(saved.get((user, item, 'save')))
item.hidden = bool(hidden.get((user, item, 'hide')))
item.clicked = clicked.get((user, item, 'click'))
item.num = None
item.score_fmt = Score.signed_number
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit, force_domain = True)
if c.user_is_admin:
item.hide_score = False
elif item.promoted:
item.hide_score = True
elif c.user == item.author:
item.hide_score = False
elif item._date > timeago("2 hours"):
item.hide_score = True
else:
item.hide_score = False
# Don't allow users to vote on their own posts and don't
# allow users to vote on collapsed posts shown when
# viewing comment permalinks.
item.votable = bool(c.user != item.author and
not getattr(item, 'for_comment_permalink', False))
if c.user_is_loggedin and item.author._id == c.user._id:
item.nofollow = False
elif item.score <= 1 or item._spam or item.author._spam:
item.nofollow = True
else:
item.nofollow = False
if c.user_is_loggedin and item.subreddit.name == c.user.draft_sr_name:
item.draft = True
else:
item.draft = False
if c.user_is_loggedin:
incr_counts(wrapped)
开发者ID:Craigus,项目名称:lesswrong,代码行数:75,代码来源:link.py
示例6: add_props
def add_props(cls, user, wrapped):
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
from r2.lib.template_helpers import get_domain
from r2.models.subreddit import FakeSubreddit
from r2.lib.wrapped import CachedVariable
# referencing c's getattr is cheap, but not as cheap when it
# is in a loop that calls it 30 times on 25-200 things.
user_is_admin = c.user_is_admin
user_is_loggedin = c.user_is_loggedin
pref_media = user.pref_media
pref_frame = user.pref_frame
pref_newwindow = user.pref_newwindow
cname = c.cname
site = c.site
saved = Link._saved(user, wrapped) if user_is_loggedin else {}
hidden = Link._hidden(user, wrapped) if user_is_loggedin else {}
#clicked = Link._clicked(user, wrapped) if user else {}
clicked = {}
for item in wrapped:
show_media = False
if not hasattr(item, "score_fmt"):
item.score_fmt = Score.number_only
item.pref_compress = user.pref_compress
if user.pref_compress and item.promoted is None:
item.render_css_class = "compressed link"
item.score_fmt = Score.points
elif pref_media == 'on' and not user.pref_compress:
show_media = True
elif pref_media == 'subreddit' and item.subreddit.show_media:
show_media = True
elif item.promoted and item.has_thumbnail:
if user_is_loggedin and item.author_id == user._id:
show_media = True
elif pref_media != 'off' and not user.pref_compress:
show_media = True
if not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
else:
item.thumbnail = g.default_thumb
item.score = max(0, item.score)
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
if not hasattr(item,'top_link'):
item.top_link = False
item.urlprefix = ''
item.saved = bool(saved.get((user, item, 'save')))
item.hidden = bool(hidden.get((user, item, 'hide')))
item.clicked = bool(clicked.get((user, item, 'click')))
item.num = None
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit, force_domain = True)
# do we hide the score?
if user_is_admin:
item.hide_score = False
elif item.promoted:
item.hide_score = True
elif user == item.author:
item.hide_score = False
elif item._date > timeago("2 hours"):
item.hide_score = True
else:
item.hide_score = False
# store user preferences locally for caching
item.pref_frame = pref_frame
item.newwindow = pref_newwindow
# is this link a member of a different (non-c.site) subreddit?
item.different_sr = (isinstance(site, FakeSubreddit) or
site.name != item.subreddit.name)
if user_is_loggedin and item.author._id == user._id:
item.nofollow = False
elif item.score <= 1 or item._spam or item.author._spam:
item.nofollow = True
else:
item.nofollow = False
item.subreddit_path = item.subreddit.path
if cname:
item.subreddit_path = ("http://" +
get_domain(cname = (site == item.subreddit),
subreddit = False))
if site != item.subreddit:
item.subreddit_path += item.subreddit.path
item.domain_path = "/domain/%s" % item.domain
if item.is_self:
item.domain_path = item.subreddit_path
#.........这里部分代码省略.........
开发者ID:DFectuoso,项目名称:culter,代码行数:101,代码来源:link.py
示例7: add_props
def add_props(cls, user, wrapped):
from r2.lib.pages import make_link_child
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
from r2.lib.template_helpers import get_domain
from r2.models.subreddit import FakeSubreddit
from r2.lib.wrapped import CachedVariable
# referencing c's getattr is cheap, but not as cheap when it
# is in a loop that calls it 30 times on 25-200 things.
user_is_admin = c.user_is_admin
user_is_loggedin = c.user_is_loggedin
pref_media = user.pref_media
pref_frame = user.pref_frame
pref_newwindow = user.pref_newwindow
cname = c.cname
site = c.site
if user_is_loggedin:
saved_lu = []
for item in wrapped:
if not SaveHide._can_skip_lookup(user, item):
saved_lu.append(item._id36)
saved = CassandraSave._fast_query(user._id36, saved_lu)
hidden = CassandraHide._fast_query(user._id36, saved_lu)
clicked = {}
else:
saved = hidden = clicked = {}
trials = trial_info(wrapped)
for item in wrapped:
show_media = False
if not hasattr(item, "score_fmt"):
item.score_fmt = Score.number_only
if c.render_style == 'compact':
item.score_fmt = Score.points
item.pref_compress = user.pref_compress
if user.pref_compress and item.promoted is None:
item.render_css_class = "compressed link"
item.score_fmt = Score.points
elif pref_media == 'on' and not user.pref_compress:
show_media = True
elif pref_media == 'subreddit' and item.subreddit.show_media:
show_media = True
elif item.promoted and item.has_thumbnail:
if user_is_loggedin and item.author_id == user._id:
show_media = True
elif pref_media != 'off' and not user.pref_compress:
show_media = True
item.over_18 = bool(
item.over_18 or item.subreddit.over_18
or item._nsfw.findall(item.title))
item.nsfw = item.over_18 and user.pref_label_nsfw
item.is_author = (user == item.author)
# always show a promo author their own thumbnail
if item.promoted and (user_is_admin
or item.is_author) and item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
elif user.pref_no_profanity and item.over_18 and not c.site.over_18:
if show_media:
item.thumbnail = "/static/nsfw2.png"
else:
item.thumbnail = ""
elif not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
elif item.is_self:
item.thumbnail = g.self_thumb
else:
item.thumbnail = g.default_thumb
item.score = max(0, item.score)
if getattr(item, "domain_override", None):
item.domain = item.domain_override
else:
item.domain = (domain(item.url) if not item.is_self else
'self.' + item.subreddit.name)
item.urlprefix = ''
if user_is_loggedin:
item.saved = (user._id36, item._id36) in saved
item.hidden = (user._id36, item._id36) in hidden
item.clicked = bool(clicked.get((user, item, 'click')))
else:
item.saved = item.hidden = item.clicked = False
item.num = None
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(
#.........这里部分代码省略.........
开发者ID:ketralnis,项目名称:reddit,代码行数:101,代码来源:link.py
示例8: add_props
def add_props(cls, user, wrapped):
from r2.lib.pages import make_link_child
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
from r2.lib.template_helpers import get_domain
from r2.models.subreddit import FakeSubreddit
from r2.lib.wrapped import CachedVariable
# referencing c's getattr is cheap, but not as cheap when it
# is in a loop that calls it 30 times on 25-200 things.
user_is_admin = c.user_is_admin
user_is_loggedin = c.user_is_loggedin
pref_media = user.pref_media
pref_frame = user.pref_frame
pref_newwindow = user.pref_newwindow
cname = c.cname
site = c.site
saved = Link._saved(user, wrapped) if user_is_loggedin else {}
hidden = Link._hidden(user, wrapped) if user_is_loggedin else {}
trials = trial_info(wrapped)
# clicked = Link._clicked(user, wrapped) if user else {}
clicked = {}
for item in wrapped:
show_media = False
if not hasattr(item, "score_fmt"):
item.score_fmt = Score.number_only
item.pref_compress = user.pref_compress
if user.pref_compress and item.promoted is None:
item.render_css_class = "compressed link"
item.score_fmt = Score.points
elif pref_media == "on" and not user.pref_compress:
show_media = True
elif pref_media == "subreddit" and item.subreddit.show_media:
show_media = True
elif item.promoted and item.has_thumbnail:
if user_is_loggedin and item.author_id == user._id:
show_media = True
elif pref_media != "off" and not user.pref_compress:
show_media = True
item.over_18 = bool(item.over_18 or item.subreddit.over_18 or item._nsfw.findall(item.title))
item.nsfw = item.over_18 and user.pref_label_nsfw
# if user.pref_no_profanity and item.over_18 and not c.site.over_18:
# item.thumbnail = ""
# elif not show_media:
# item.thumbnail = ""
# elif item.has_thumbnail:
# item.thumbnail = thumbnail_url(item)
# elif item.is_self:
# item.thumbnail = g.self_thumb
# else:
# item.thumbnail = g.default_thumb
if item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
else:
item.thumbnail = ""
item.score = max(0, item.score)
item.domain = domain(item.url) if not item.is_self else "self." + item.subreddit.name
item.urlprefix = ""
item.saved = bool(saved.get((user, item, "save")))
item.hidden = bool(hidden.get((user, item, "hide")))
item.clicked = bool(clicked.get((user, item, "click")))
item.num = None
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit, force_domain=True)
# do we hide the score?
if user_is_admin:
item.hide_score = False
elif item.promoted and item.score <= 0:
item.hide_score = True
elif user == item.author:
item.hide_score = False
elif item._date > timeago("2 hours"):
item.hide_score = True
else:
item.hide_score = False
# store user preferences locally for caching
item.pref_frame = pref_frame
item.newwindow = pref_newwindow
# is this link a member of a different (non-c.site) subreddit?
item.different_sr = isinstance(site, FakeSubreddit) or site.name != item.subreddit.name
if user_is_loggedin and item.author_id == user._id:
item.nofollow = False
elif item.score <= 1 or item._spam or item.author._spam:
item.nofollow = True
else:
item.nofollow = False
#.........这里部分代码省略.........
开发者ID:szimpatikus,项目名称:szimpatikus.hu,代码行数:101,代码来源:link.py
示例9: vote
def vote(cls, sub, obj, dir, ip, organic = False, cheater = False):
from admintools import valid_user, valid_thing, update_score
from r2.lib.count import incr_counts
from r2.lib.db import queries
sr = obj.subreddit_slow
kind = obj.__class__.__name__.lower()
karma = sub.karma(kind, sr)
is_self_link = (kind == 'link'
and hasattr(obj,'is_self')
and obj.is_self)
#check for old vote
rel = cls.rel(sub, obj)
oldvote = rel._fast_query(sub, obj, ['-1', '0', '1']).values()
oldvote = filter(None, oldvote)
amount = 1 if dir is True else 0 if dir is None else -1
is_new = False
#old vote
if len(oldvote):
v = oldvote[0]
oldamount = int(v._name)
v._name = str(amount)
#these still need to be recalculated
old_valid_thing = v.valid_thing
v.valid_thing = (valid_thing(v, karma, cheater = cheater)
and v.valid_thing)
v.valid_user = (v.valid_user
and v.valid_thing
and valid_user(v, sr, karma))
#new vote
else:
is_new = True
oldamount = 0
v = rel(sub, obj, str(amount))
v.author_id = obj.author_id
v.sr_id = sr._id
v.ip = ip
old_valid_thing = v.valid_thing = \
valid_thing(v, karma, cheater = cheater)
v.valid_user = (v.valid_thing and valid_user(v, sr, karma)
and not is_self_link)
if organic:
v.organic = organic
v._commit()
v._fast_query_timestamp_touch(sub)
up_change, down_change = score_changes(amount, oldamount)
if not (is_new and obj.author_id == sub._id and amount == 1):
# we don't do this if it's the author's initial automatic
# vote, because we checked it in with _ups == 1
update_score(obj, up_change, down_change,
v.valid_thing, old_valid_thing)
if v.valid_user:
author = Account._byID(obj.author_id, data=True)
author.incr_karma(kind, sr, up_change - down_change)
#update the sr's valid vote count
if is_new and v.valid_thing and kind == 'link':
if sub._id != obj.author_id:
incr_counts([sr])
# now write it out to Cassandra. We'll write it out to both
# this way for a while
voter = v._thing1
votee = v._thing2
cvc = CassandraVote._rel(Account, votee.__class__)
try:
cv = cvc._fast_query(voter._id36, votee._id36)
except tdb_cassandra.NotFound:
cv = cvc(thing1_id = voter._id36, thing2_id = votee._id36)
cv.name = v._name
cv.valid_user, cv.valid_thing = v.valid_user, v.valid_thing
cv.ip = v.ip
if getattr(v, 'organic', False) or hasattr(cv, 'organic'):
cv.organic = getattr(v, 'organic', False)
cv._commit()
queries.changed(votee, True)
return v
开发者ID:donslice,项目名称:reddit,代码行数:89,代码来源:vote.py
示例10: vote
def vote(cls, sub, obj, dir, ip, organic = False, cheater = False):
from admintools import valid_user, valid_thing, update_score
from r2.lib.count import incr_counts
from r2.lib.db import queries
sr = obj.subreddit_slow
kind = obj.__class__.__name__.lower()
karma = sub.karma(kind, sr)
is_self_link = (kind == 'link'
and hasattr(obj,'is_self')
and obj.is_self)
#check for old vote
rel = cls.rel(sub, obj)
oldvote = rel._fast_query(sub, obj, ['-1', '0', '1']).values()
oldvote = filter(None, oldvote)
amount = 1 if dir is True else 0 if dir is None else -1
is_new = False
#old vote
if len(oldvote):
v = oldvote[0]
oldamount = int(v._name)
v._name = str(amount)
#these still need to be recalculated
old_valid_thing = v.valid_thing
v.valid_thing = (valid_thing(v, karma, cheater = cheater)
and v.valid_thing)
v.valid_user = (v.valid_user
and v.valid_thing
and valid_user(v, sr, karma))
#new vote
else:
is_new = True
oldamount = 0
v = rel(sub, obj, str(amount))
v.author_id = obj.author_id
v.sr_id = sr._id
v.ip = ip
old_valid_thing = v.valid_thing = \
valid_thing(v, karma, cheater = cheater)
v.valid_user = (v.valid_thing and valid_user(v, sr, karma)
and not is_self_link)
if organic:
v.organic = organic
v._commit()
g.cache.delete(queries.prequeued_vote_key(sub, obj))
v._fast_query_timestamp_touch(sub)
up_change, down_change = score_changes(amount, oldamount)
if not (is_new and obj.author_id == sub._id and amount == 1):
# we don't do this if it's the author's initial automatic
# vote, because we checked it in with _ups == 1
update_score(obj, up_change, down_change,
v.valid_thing, old_valid_thing)
if v.valid_user:
author = Account._byID(obj.author_id, data=True)
author.incr_karma(kind, sr, up_change - down_change)
#update the sr's valid vote count
if is_new and v.valid_thing and kind == 'link':
if sub._id != obj.author_id:
incr_counts([sr])
return v
开发者ID:XieConnect,项目名称:reddit,代码行数:72,代码来源:vote.py
示例11: add_props
def add_props(cls, user, wrapped):
from r2.lib.pages import make_link_child
from r2.lib.count import incr_counts
from r2.lib import media
from r2.lib.utils import timeago
from r2.lib.template_helpers import get_domain
from r2.models.subreddit import FakeSubreddit
from r2.lib.wrapped import CachedVariable
# referencing c's getattr is cheap, but not as cheap when it
# is in a loop that calls it 30 times on 25-200 things.
user_is_admin = c.user_is_admin
user_is_loggedin = c.user_is_loggedin
pref_media = user.pref_media
pref_frame = user.pref_frame
pref_newwindow = user.pref_newwindow
cname = c.cname
site = c.site
if user_is_loggedin:
try:
saved = CassandraSave._fast_query(user, wrapped)
hidden = CassandraHide._fast_query(user, wrapped)
except tdb_cassandra.TRANSIENT_EXCEPTIONS as e:
g.log.warning("Cassandra save/hide lookup failed: %r", e)
saved = hidden = {}
clicked = {}
else:
saved = hidden = clicked = {}
for item in wrapped:
show_media = False
if not hasattr(item, "score_fmt"):
item.score_fmt = Score.number_only
if c.render_style == 'compact':
item.score_fmt = Score.points
item.pref_compress = user.pref_compress
if user.pref_compress and item.promoted is None:
item.render_css_class = "compressed link"
item.score_fmt = Score.points
elif pref_media == 'on' and not user.pref_compress:
show_media = True
elif pref_media == 'subreddit' and item.subreddit.show_media:
show_media = True
elif item.promoted and item.has_thumbnail:
if user_is_loggedin and item.author_id == user._id:
show_media = True
elif pref_media != 'off' and not user.pref_compress:
show_media = True
item.nsfw_str = item._nsfw.findall(item.title)
item.over_18 = bool(item.over_18 or item.subreddit.over_18 or
item.nsfw_str)
item.nsfw = item.over_18 and user.pref_label_nsfw
item.is_author = (user == item.author)
item.thumbnail_sprited = False
# always show a promo author their own thumbnail
if item.promoted and (user_is_admin or item.is_author) and item.has_thumbnail:
item.thumbnail = media.thumbnail_url(item)
elif user.pref_no_profanity and item.over_18 and not c.site.over_18:
if show_media:
item.thumbnail = "nsfw"
item.thumbnail_sprited = True
else:
item.thumbnail = ""
elif not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = media.thumbnail_url(item)
elif item.is_self:
item.thumbnail = "self"
item.thumbnail_sprited = True
else:
item.thumbnail = "default"
item.thumbnail_sprited = True
item.score = max(0, item.score)
if getattr(item, "domain_override", None):
item.domain = item.domain_override
else:
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
item.urlprefix = ''
if user_is_loggedin:
item.saved = (user, item) in saved
item.hidden = (user, item) in hidden
item.clicked = bool(clicked.get((user, item, 'click')))
else:
item.saved = item.hidden = item.clicked = False
item.num = None
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit,
#.........这里部分代码省略.........
开发者ID:jcald,项目名称:reddit,代码行数:101,代码来源:link.py
示例12: vote
def vote(cls, sub, obj, dir, ip, organic = False):
from admintools import valid_user, valid_thing, update_score
from r2.lib.count import incr_counts
sr = obj.subdigg_slow
kind = obj.__class__.__name__.lower()
karma = sub.karma(kind, sr)
is_self_link = (kind == 'link'
and hasattr(obj,'is_self')
and obj.is_self)
#check for old vote
rel = cls.rel(sub, obj)
oldvote = rel._fast_query(sub, obj, ['-1', '0', '1']).values()
oldvote = filter(None, oldvote)
amount = 1 if dir is True else 0 if dir is None else -1
is_new = False
#old vote
if len(oldvote):
v = oldvote[0]
oldamount = int(v._name)
v._name = str(amount)
#these still need to be recalculated
old_valid_thing = v.valid_thing
v.valid_thing = (valid_thing(v, karma)
and v.valid_thing)
v.valid_user = (v.valid_user
and v.valid_thing
and valid_user(v, sr, karma))
#new vote
else:
is_new = True
oldamount = 0
v = rel(sub, obj, str(amount))
v.author_id = obj.author_id
v.sr_id = sr._id
v.ip = ip
old_valid_thing = v.valid_thing = (valid_thing(v, karma))
v.valid_user = (v.valid_thing and valid_user(v, sr, karma)
and not is_self_link)
if organic:
v.organic = organic
v._commit()
up_change, down_change = score_changes(amount, oldamount)
update_score(obj, up_change, down_change,
v.valid_thing, old_valid_thing)
if v.valid_user:
author = Account._byID(obj.author_id, data=True)
author.incr_karma(kind, sr, up_change - down_change)
#update the sr's valid vote count
if is_new and v.valid_thing and kind == 'link':
if sub._id != obj.author_id:
incr_counts([sr])
return v
开发者ID:kevinrose,项目名称:diggit,代码行数:64,代码来源:vote.py
示例13: add_props
def add_props(cls, user, wrapped):
from r2.lib.count import incr_counts
from r2.lib.media import thumbnail_url
from r2.lib.utils import timeago
saved = Link._saved(user, wrapped) if user else {}
hidden = Link._hidden(user, wrapped) if user else {}
for item in wrapped:
show_media = False
if c.user.pref_compress:
pass
elif c.user.pref_media == 'on':
show_media = True
elif c.user.pref_media == 'subreddit' and item.subreddit.show_media:
show_media = True
elif (item.promoted
and item.has_thumbnail
and c.user.pref_media != 'off'):
show_media = True
if not show_media:
item.thumbnail = ""
elif item.has_thumbnail:
item.thumbnail = thumbnail_url(item)
else:
item.thumbnail = g.default_thumb
item.domain = (domain(item.url) if not item.is_self
else 'self.' + item.subreddit.name)
if not hasattr(item,'top_link'):
item.top_link = False
item.urlprefix = ''
item.saved = bool(saved.get((user, item, 'save')))
item.hidden = bool(hidden.get((user, item, 'hide')))
# Only check "last clicked time" on demand. Otherwise it is expensive in big listings. TODO - refactor to use "_getLastClickedTime"
def clicked():
c = Link._clicked(user, wrapped) if user else {}
return c.get((user, item, 'click'))
item.clicked = clicked
item.num = None
item.score_fmt = Score.signed_number
item.permalink = item.make_permalink(item.subreddit)
if item.is_self:
item.url = item.make_permalink(item.subreddit, force_domain = True)
if c.user_is_admin:
item.hide_score = False
elif item.promoted:
item.hide_score = True
elif c.user == item.author:
item.hide_score = False
elif item._date > timeago("2 hours"):
item.hide_score = True
else:
item.hide_score = False
# Don't allow users to vote on their own posts and don't
# allow users to vote on collapsed posts shown when
# viewing comment permalinks.
# Also require user karma to be >= global threshold as anti-sockpuppet measure
item.votable = bool(c.user_is_loggedin
and c.user != item.author
and not getattr(item, 'for_comment_permalink', False)
and c.user.safe_karma >= g.karma_to_vote)
if c.user_is_loggedin and item.author._id == c.user._id:
item.nofollow = False
elif item.score <= 1 or item._spam or item.author._spam:
item.nofollow = True
else:
item.nofollow = False
if c.user_is_loggedin and item.subreddit.name == c.user.draft_sr_name:
item.draft = True
else:
item.draft = False
if c.user_is_loggedin:
incr_counts(wrapped)
开发者ID:brendanlong,项目名称:lesswrong,代码行数:82,代码来源:link.py
注:本文中的r2.lib.count.incr_counts函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论