From 8003bd2a0dda00bceebde09b3fa551448880855f Mon Sep 17 00:00:00 2001 From: EdwinRodger Date: Fri, 15 Dec 2023 00:27:49 +0530 Subject: [PATCH] new: decorator for mmdb promotion --- src/anime/routes.py | 11 +++++++++++ src/home/routes.py | 16 ++++++++++++++-- src/home/utils.py | 25 +++++++++++++++++++++++++ src/manga/routes.py | 8 ++++++++ src/templates/layout.html | 2 +- 5 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/anime/routes.py b/src/anime/routes.py index fa464e5..4028363 100644 --- a/src/anime/routes.py +++ b/src/anime/routes.py @@ -27,6 +27,7 @@ remove_cover, save_picture, ) +from src.home.utils import mmdb_promotion from src.models import Anime today_date = datetime.date(datetime.today()) @@ -310,3 +311,13 @@ def search_anime(): sort_function="All", truncate_title=truncate_title, ) + + +from src.anime.routes import anime + + +@anime.before_request +def before_request(): + endpoint = request.endpoint + if endpoint == "anime.anime_list": + mmdb_promotion(anime_list)() diff --git a/src/home/routes.py b/src/home/routes.py index be57700..eb14963 100644 --- a/src/home/routes.py +++ b/src/home/routes.py @@ -1,6 +1,6 @@ -from flask import Blueprint, render_template +from flask import Blueprint, render_template, request -from src.home.utils import anime_overview_data, check_for_update, manga_overview_data +from src.home.utils import anime_overview_data, check_for_update, manga_overview_data, mmdb_promotion home = Blueprint("home", __name__) @@ -29,3 +29,15 @@ def more(): @home.route("/credits") def credits(): return render_template("credits.html", title="Credits", current_section="More") + + +@home.before_request +def before_request(): + endpoint = request.endpoint + action = { + "home.homepage": homepage, + "home.more": more, + "home.credits": credits, + }.get(endpoint, homepage) + + mmdb_promotion(action)() diff --git a/src/home/utils.py b/src/home/utils.py index 52ca183..931643e 100644 --- a/src/home/utils.py +++ b/src/home/utils.py @@ -1,10 +1,12 @@ import hashlib import json import os +import random import statistics from collections import Counter import requests +from flask import flash from src.models import Anime, Manga @@ -172,3 +174,26 @@ def check_for_update(): # An update is available return True + + +def mmdb_promotion(func): + def wrapper(*args, **kwargs): + with open("json/settings.json", "r") as f: + json_settings = json.load(f) + + if json_settings["mmdb_promotion"] == "Yes": + num = random.randint(1, 25) + if num == 1: + flash( + 'Star MyMangaDataBase on GitHub!', + "info", + ) + if num == 2: + flash( + 'Like MyMangaDataBase on AlternativeTo!', + "info", + ) + + return func(*args, **kwargs) + + return wrapper diff --git a/src/manga/routes.py b/src/manga/routes.py index fc1ae19..b2e32b7 100644 --- a/src/manga/routes.py +++ b/src/manga/routes.py @@ -15,6 +15,7 @@ from sqlalchemy import delete from src import db +from src.home.utils import mmdb_promotion from src.manga.backup import ( export_mmdb_backup, import_mmdb_backup, @@ -371,3 +372,10 @@ def search_manga(): sort_function="All", truncate_title=truncate_title, ) + + +@manga.before_request +def before_request(): + endpoint = request.endpoint + if endpoint == "manga.manga_list": + mmdb_promotion(manga_list)() diff --git a/src/templates/layout.html b/src/templates/layout.html index 9774103..9a8b87b 100644 --- a/src/templates/layout.html +++ b/src/templates/layout.html @@ -101,7 +101,7 @@ {% if messages %} {% for category, messages in messages %}
- {{ messages }} + {{ messages | safe }}
{% endfor %} {% endif %}