diff options
author | Michael Manfre | 2022-12-15 02:50:54 -0500 |
---|---|---|
committer | GitHub | 2022-12-15 00:50:54 -0700 |
commit | af3142ac3adb0d1f31d160edcb6d076b293020b1 (patch) | |
tree | 73cfd5d447f6444602c2ff401399d567c673949b /activities/middleware.py | |
parent | 69f1b3168ac3f29fc4bafba0418769248b10062a (diff) | |
download | takahe-af3142ac3adb0d1f31d160edcb6d076b293020b1.tar.gz takahe-af3142ac3adb0d1f31d160edcb6d076b293020b1.tar.bz2 takahe-af3142ac3adb0d1f31d160edcb6d076b293020b1.zip |
Basic Emoji suppport (#157)
Diffstat (limited to 'activities/middleware.py')
-rw-r--r-- | activities/middleware.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/activities/middleware.py b/activities/middleware.py new file mode 100644 index 0000000..1ed2219 --- /dev/null +++ b/activities/middleware.py @@ -0,0 +1,27 @@ +from time import time + +from activities.models import Emoji + + +class EmojiDefaultsLoadingMiddleware: + """ + Caches the default Emoji + """ + + refresh_interval: float = 30.0 + + def __init__(self, get_response): + self.get_response = get_response + self.loaded_ts: float = 0.0 + + def __call__(self, request): + # Allow test fixtures to force and lock the Emojis + if not getattr(Emoji, "__forced__", False): + if ( + not getattr(Emoji, "locals", None) + or (time() - self.loaded_ts) >= self.refresh_interval + ): + Emoji.locals = Emoji.load_locals() + self.loaded_ts = time() + response = self.get_response(request) + return response |