41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
from my_modules.app.setup import LIMITER, cache
|
|
|
|
from quart import Blueprint, send_from_directory, render_template, current_app
|
|
from datetime import datetime
|
|
|
|
basic_bp = Blueprint('basic', __name__)
|
|
|
|
@basic_bp.route('/favicon', methods=['GET'])
|
|
@basic_bp.route('/favicon.ico', methods=['GET'])
|
|
@LIMITER.exempt
|
|
async def favicon(cache_key:str='favicon'):
|
|
cache_favicon_name = await cache.get(cache_key)
|
|
if cache_favicon_name:
|
|
file_name = cache_favicon_name
|
|
else:
|
|
current_year = datetime.now().year
|
|
|
|
autumn_start = datetime(current_year, 9, 23)
|
|
autumn_end = datetime(current_year, 12, 21)
|
|
winter_start = datetime(current_year, 12, 21)
|
|
winter_end = datetime(current_year, 3, 20)
|
|
|
|
# Get the current date
|
|
current_date = datetime.now()
|
|
|
|
if autumn_start <= current_date <= autumn_end:
|
|
file_name = '1. autumn.gif'
|
|
elif current_date >= winter_start or current_date <= winter_end:
|
|
file_name = '2. winter.png'
|
|
else:
|
|
file_name = '0. default.svg'
|
|
|
|
await cache.set(cache_key, file_name, ttl=21600)
|
|
|
|
return await send_from_directory(current_app.static_folder, f'images/favicons/{file_name}')
|
|
|
|
@basic_bp.route('/robots.txt', methods=['GET'])
|
|
@LIMITER.limit('3 per day')
|
|
async def robots():
|
|
return await send_from_directory(current_app.static_folder, f'robots.txt')
|