From 9576d87ec6e4a010550f17cb7bceffa4a8545ee4 Mon Sep 17 00:00:00 2001 From: Ricky Ramirez Date: Fri, 8 Feb 2013 14:31:17 -0800 Subject: [PATCH] reddit_base: Allow a forced override for last_visit. --- r2/r2/controllers/api.py | 2 +- r2/r2/controllers/reddit_base.py | 19 +++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/r2/r2/controllers/api.py b/r2/r2/controllers/api.py index f0f546872..8c20d2079 100755 --- a/r2/r2/controllers/api.py +++ b/r2/r2/controllers/api.py @@ -136,7 +136,7 @@ class ApiController(RedditController, OAuth2ResourceController): """ - c.dont_update_last_visit = True + c.update_last_visit = False links = [] if link2: diff --git a/r2/r2/controllers/reddit_base.py b/r2/r2/controllers/reddit_base.py index bce6e72f9..036132006 100644 --- a/r2/r2/controllers/reddit_base.py +++ b/r2/r2/controllers/reddit_base.py @@ -739,6 +739,8 @@ class MinimalController(BaseController): # GET param is included set_content_type() c.request_timer.intermediate("minimal-pre") + # True/False forces. None updates for most non-POST requests + c.update_last_visit = None def try_pagecache(self): #check content cache @@ -806,10 +808,7 @@ class MinimalController(BaseController): end_time = datetime.now(g.tz) - # update last_visit - if (c.user_is_loggedin and not g.disallow_db_writes and - request.method.upper() != "POST" and - not c.dont_update_last_visit): + if self.should_update_last_visit(): c.user.update_last_visit(c.start_time) check_request(end_time) @@ -865,6 +864,18 @@ class MinimalController(BaseController): data = simplejson.dumps(kw) return filters.websafe_json(data) + def should_update_last_visit(self): + if g.disallow_db_writes: + return False + + if not c.user_is_loggedin: + return False + + if c.update_last_visit is not None: + return c.update_last_visit + + return request.method.upper() != "POST" + class RedditController(MinimalController):