diff --git a/r2/r2/controllers/front.py b/r2/r2/controllers/front.py index c906e26bc..038fc56f2 100755 --- a/r2/r2/controllers/front.py +++ b/r2/r2/controllers/front.py @@ -401,6 +401,15 @@ class FrontController(RedditController, OAuth2ResourceController): if stylesheet_contents: c.allow_loggedin_cache = True + + if c.site.stylesheet_modified: + self.abort_if_not_modified( + c.site.stylesheet_modified, + private=False, + max_age=timedelta(days=7), + must_revalidate=False, + ) + c.response_content_type = 'text/css' c.response.content = stylesheet_contents if c.site.type == 'private': diff --git a/r2/r2/models/subreddit.py b/r2/r2/models/subreddit.py index 96d4f054b..d5fc10d58 100644 --- a/r2/r2/models/subreddit.py +++ b/r2/r2/models/subreddit.py @@ -23,6 +23,7 @@ from __future__ import with_statement import base64 +import datetime import hashlib from pylons import c, g @@ -64,6 +65,7 @@ class Subreddit(Thing, Printable): stylesheet_rtl = None, stylesheet_contents = '', stylesheet_hash = '', + stylesheet_modified = None, firsttext = strings.firsttext, header = None, header_size = None, @@ -386,13 +388,15 @@ class Subreddit(Thing, Printable): ) self.stylesheet_contents = "" + self.stylesheet_modified = None else: self.stylesheet_hash = hashlib.md5(minified).hexdigest() self.stylesheet_contents = minified - set_last_modified(self, 'stylesheet_contents') + self.stylesheet_modified = datetime.datetime.now(g.tz) else: self.stylesheet_contents = "" self.stylesheet_hash = "" + self.stylesheet_modified = datetime.datetime.now(g.tz) self.stylesheet_contents_user = "" # reads from wiki; ensure pg clean self._commit()