diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index 0fe21232..4d38e082 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -191,7 +191,7 @@ USER_AGENT = f"{agent} (BookWyrm/{VERSION}; +https://{DOMAIN}/)" ENABLE_THUMBNAIL_GENERATION = env.bool("ENABLE_THUMBNAIL_GENERATION", False) IMAGEKIT_CACHEFILE_DIR = "thumbnails" #IMAGEKIT_DEFAULT_CACHEFILE_BACKEND = "imagekit.cachefiles.backends.Celery" -IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY = "imagekit.cachefiles.strategies.Optimistic" +IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY = "bookwyrm.thumbnail_generation.Strategy" # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.2/howto/static-files/ diff --git a/bookwyrm/thumbnail_generation.py b/bookwyrm/thumbnail_generation.py new file mode 100644 index 00000000..fb9b9c38 --- /dev/null +++ b/bookwyrm/thumbnail_generation.py @@ -0,0 +1,14 @@ +class Strategy: + """ + A strategy that generates the image on source saved (Optimistic), + but also on demand, for old images (JustInTime). + """ + + def on_source_saved(self, file): + file.generate() + + def on_existence_required(self, file): + file.generate() + + def on_content_required(self, file): + file.generate()