mirror of
https://github.com/jointakahe/takahe.git
synced 2024-11-14 11:21:13 +00:00
27 lines
755 B
Python
27 lines
755 B
Python
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
|