feat: use app-provided caching

This commit is contained in:
Ayo Ayco 2024-05-19 21:01:04 +02:00
parent 8022612b16
commit 3c22ad7eec

View file

@ -1,9 +1,24 @@
from flask import Blueprint, render_template from flask import Blueprint, render_template
import requests import requests
from datetime import datetime, timedelta from datetime import datetime
import markdown import markdown
import re import re
##### Use app provided cache
try:
from cache.cache import cache
except ImportError:
print(' ! ERR: Cache module not found')
def conditional_cache(dec):
def decorator(func):
if cache is None:
return func
return dec(func)
return decorator
##########################################
threads = Blueprint('threads', __name__, template_folder='templates') threads = Blueprint('threads', __name__, template_folder='templates')
# TODO: move following to an app config or sqlite ######### # TODO: move following to an app config or sqlite #########
@ -66,7 +81,7 @@ def api():
def api_thread(id): def api_thread(id):
return fetch_thread(id) return fetch_thread(id)
@conditional_cache(cache.cached(timeout=60))
def fetch_statuses(): def fetch_statuses():
statuses = [] statuses = []
for id in thread_ids: for id in thread_ids:
@ -75,6 +90,7 @@ def fetch_statuses():
statuses.append(status) statuses.append(status)
return statuses return statuses
@conditional_cache(cache.cached(timeout=60))
def fetch_thread(id): def fetch_thread(id):
status = requests.get(server + '/api/v1/statuses/' + id ).json() status = requests.get(server + '/api/v1/statuses/' + id ).json()
status = clean_status(status) status = clean_status(status)