diff --git a/r2/r2/lib/static.py b/r2/r2/lib/static.py index 7b70ab747..f00a0031c 100755 --- a/r2/r2/lib/static.py +++ b/r2/r2/lib/static.py @@ -28,6 +28,24 @@ import json import base64 import shutil + +def locate_static_file(name): + from pylons import g + static_dirs = set(plugin.static_dir for plugin in g.plugins) + static_dirs.add(g.paths['static_files']) + + for static_dir in static_dirs: + file_path = os.path.join(static_dir, name.lstrip('/')) + if os.path.exists(file_path): + return file_path + + +def static_mtime(name): + path = locate_static_file(name) + if path: + return os.path.getmtime(path) + + def generate_static_name(name, base=None): """Generate a unique filename. diff --git a/r2/r2/lib/template_helpers.py b/r2/r2/lib/template_helpers.py index 6d1c6431d..c94ddfd0c 100755 --- a/r2/r2/lib/template_helpers.py +++ b/r2/r2/lib/template_helpers.py @@ -25,6 +25,7 @@ from filters import unsafe, websafe, _force_unicode, _force_utf8 from r2.lib.utils import vote_hash, UrlParser, timesince, is_subdomain from r2.lib import hooks +from r2.lib.static import static_mtime from r2.lib.media import s3_direct_url import babel.numbers @@ -38,18 +39,6 @@ from pylons import g, c, request from pylons.i18n import _, ungettext -def static_mtime(path): - static_dirs = set(plugin.static_dir for plugin in g.plugins) - static_dirs.add(g.paths['static_files']) - - for static_dir in static_dirs: - file_path = os.path.join(static_dir, path.lstrip('/')) - try: - return os.path.getmtime(file_path) - except OSError: - continue - - static_text_extensions = { '.js': 'js', '.css': 'css',