def handle_vote(user, thing, dir, ip, organic, cheater=False, foreground=False): from r2.lib.db import tdb_sql from sqlalchemy.exc import IntegrityError try: v = Vote.vote(user, thing, dir, ip, organic, cheater = cheater) except (tdb_sql.CreationError, IntegrityError): g.log.error("duplicate vote for: %s" % str((user, thing, dir))) return if isinstance(thing, Link): new_vote(v, foreground=foreground) #update the modified flags if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'submitted') #update sup listings sup.add_update(user, 'submitted') #update sup listings if dir: set_last_modified(user, 'liked') sup.add_update(user, 'liked') elif dir is False: set_last_modified(user, 'disliked') sup.add_update(user, 'disliked') elif isinstance(thing, Comment): #update last modified if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'commented') #update sup listings sup.add_update(user, 'commented')
def handle_vote(user, thing, dir, ip, organic, cheater=False, foreground=False, timer=None): if timer is None: timer = SimpleSillyStub() from r2.lib.db import tdb_sql from sqlalchemy.exc import IntegrityError try: v = Vote.vote(user, thing, dir, ip, organic, cheater=cheater, timer=timer) except (tdb_sql.CreationError, IntegrityError): g.log.error("duplicate vote for: %s" % str((user, thing, dir))) return timestamps = [] if isinstance(thing, Link): new_vote(v, foreground=foreground, timer=timer) #update the modified flags if user._id == thing.author_id: timestamps.append('Overview') timestamps.append('Submitted') #update sup listings sup.add_update(user, 'submitted') #update sup listings if dir: sup.add_update(user, 'liked') elif dir is False: sup.add_update(user, 'disliked') elif isinstance(thing, Comment): #update last modified if user._id == thing.author_id: timestamps.append('Overview') timestamps.append('Commented') #update sup listings sup.add_update(user, 'commented') timer.intermediate("sup") for timestamp in timestamps: set_last_modified(user, timestamp.lower()) LastModified.touch(user._fullname, timestamps) timer.intermediate("last_modified")
def handle_vote(user, thing, dir, ip, organic, cheater=False, foreground=False): from r2.lib.db import tdb_sql from sqlalchemy.exc import IntegrityError try: v = Vote.vote(user, thing, dir, ip, organic, cheater=cheater) except (tdb_sql.CreationError, IntegrityError): g.log.error("duplicate vote for: %s" % str((user, thing, dir))) return # keep track of upvotes in the hard cache by subreddit #sr_id = getattr(thing, "sr_id", None) #if (sr_id and dir > 0 and getattr(thing, "author_id", None) != user._id # and v.valid_thing): # now = datetime.now(g.tz).strftime("%Y/%m/%d") # g.hardcache.add("subreddit_vote-%s_%s_%s" % (now, sr_id, user._id), # sr_id, time = 86400 * 7) # 1 week for now if isinstance(thing, Link): new_vote(v, foreground=foreground) #update the modified flags set_last_modified(user, 'liked') if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'submitted') #update sup listings sup.add_update(user, 'submitted') #update sup listings if dir: sup.add_update(user, 'liked') elif dir is False: sup.add_update(user, 'disliked') elif isinstance(thing, Comment): #update last modified if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'commented') #update sup listings sup.add_update(user, 'commented')
def handle_vote(user, thing, dir, ip, organic, cheater=False, foreground=False, timer=None): if timer is None: timer = SimpleSillyStub() from r2.lib.db import tdb_sql from sqlalchemy.exc import IntegrityError try: v = Vote.vote(user, thing, dir, ip, organic, cheater = cheater, timer=timer) except (tdb_sql.CreationError, IntegrityError): g.log.error("duplicate vote for: %s" % str((user, thing, dir))) return timestamps = [] if isinstance(thing, Link): new_vote(v, foreground=foreground, timer=timer) #update the modified flags if user._id == thing.author_id: timestamps.append('Overview') timestamps.append('Submitted') #update sup listings sup.add_update(user, 'submitted') #update sup listings if dir: sup.add_update(user, 'liked') elif dir is False: sup.add_update(user, 'disliked') elif isinstance(thing, Comment): #update last modified if user._id == thing.author_id: timestamps.append('Overview') timestamps.append('Commented') #update sup listings sup.add_update(user, 'commented') timer.intermediate("sup") for timestamp in timestamps: set_last_modified(user, timestamp.lower()) LastModified.touch(user._fullname, timestamps) timer.intermediate("last_modified")
def handle_vote(user, thing, dir, ip, organic, cheater = False): from r2.lib.db import tdb_sql from sqlalchemy.exc import IntegrityError try: v = Vote.vote(user, thing, dir, ip, organic, cheater = cheater) except (tdb_sql.CreationError, IntegrityError): g.log.error("duplicate vote for: %s" % str((user, thing, dir))) return # keep track of upvotes in the hard cache by subreddit sr_id = getattr(thing, "sr_id", None) if (sr_id and dir > 0 and getattr(thing, "author_id", None) != user._id and v.valid_thing): now = datetime.now(g.tz).strftime("%Y/%m/%d") g.hardcache.add("subreddit_vote-%s_%s_%s" % (now, sr_id, user._id), sr_id, time = 86400 * 7) # 1 week for now if isinstance(thing, Link): new_vote(v) if v.valid_thing: expire_hot(thing.subreddit_slow) #update the modified flags set_last_modified(user, 'liked') if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'submitted') #update sup listings sup.add_update(user, 'submitted') #update sup listings if dir: sup.add_update(user, 'liked') elif dir is False: sup.add_update(user, 'disliked') elif isinstance(thing, Comment): #update last modified if user._id == thing.author_id: set_last_modified(user, 'overview') set_last_modified(user, 'commented') #update sup listings sup.add_update(user, 'commented')