Replace nearly all ?v= cachebusts with assetcache.

Using the new assetcache module, we replace (almost) all instances
of `?v=` cachebusting query parameters in Python and in Jinja templates.
The primary exceptions were: user site backgrounds, and some
infrequently changed graphics referenced literally from .js files.
This commit is contained in:
TLSM 2022-08-30 17:02:46 -04:00
parent 6f3b995455
commit a35697e55e
No known key found for this signature in database
GPG key ID: E745A82778055C7E
44 changed files with 203 additions and 191 deletions

View file

@ -4,6 +4,7 @@ from files.__main__ import Base, app
from os import environ
from files.helpers.lazy import lazy
from files.helpers.const import *
from files.helpers.assetcache import assetcache_path
from datetime import datetime
from json import loads
@ -61,7 +62,7 @@ class Badge(Base):
@property
@lazy
def path(self):
return f"/assets/images/badges/{self.badge_id}.webp"
return assetcache_path(f'images/badges/{self.badge_id}.webp')
@property
@lazy

View file

@ -9,6 +9,7 @@ from sqlalchemy.orm import relationship, deferred
from files.__main__ import Base
from files.helpers.const import *
from files.helpers.lazy import lazy
from files.helpers.assetcache import assetcache_path
from .flags import Flag
from .comment import Comment
from flask import g
@ -266,13 +267,18 @@ class Submission(Base):
@property
@lazy
def thumb_url(self):
if self.over_18: return f"{SITE_FULL}/assets/images/nsfw.webp?v=1"
elif not self.url: return f"{SITE_FULL}/assets/images/{SITE_ID}/default_text.webp?v=1"
if self.over_18:
return SITE_FULL + assetcache_path('images/nsfw.webp')
elif not self.url:
return SITE_FULL + assetcache_path(f'images/{SITE_ID}/default_text.webp')
elif self.thumburl:
if self.thumburl.startswith('/'): return SITE_FULL + self.thumburl
if self.thumburl.startswith('/'):
return SITE_FULL + self.thumburl
return self.thumburl
elif self.is_youtube or self.is_video: return f"{SITE_FULL}/assets/images/default_thumb_yt.webp?v=1"
else: return f"{SITE_FULL}/assets/images/default_thumb_link.webp?v=1"
elif self.is_youtube or self.is_video:
return SITE_FULL + assetcache_path('images/default_thumb_yt.webp')
else:
return SITE_FULL + assetcache_path('images/default_thumb_link.webp')
@property
@lazy

View file

@ -19,6 +19,7 @@ from .exiles import *
from .sub_block import *
from files.__main__ import app, Base, cache
from files.helpers.security import *
from files.helpers.assetcache import assetcache_path
import random
from datetime import datetime
from os import environ, remove, path
@ -528,16 +529,18 @@ class User(Base):
@property
@lazy
def banner_url(self):
if self.bannerurl: return self.bannerurl
else: return f"/assets/images/{SITE_ID}/site_preview.webp?v=1015"
if self.bannerurl:
return self.bannerurl
return assetcache_path(f'images/{SITE_ID}/site_preview.webp')
@property
@lazy
def profile_url(self):
if self.profileurl:
if self.profileurl.startswith('/'): return SITE_FULL + self.profileurl
if self.profileurl.startswith('/'):
return SITE_FULL + self.profileurl
return self.profileurl
return f"{SITE_FULL}/assets/images/default-profile-pic.webp?v=1008"
return assetcache_path('images/default-profile-pic.webp')
@lazy
def json_popover(self, v):