From e0e15970376424f56cf4deacc73b59581c519110 Mon Sep 17 00:00:00 2001 From: Zeecka Date: Sun, 18 Jan 2026 14:31:01 +0100 Subject: [PATCH] Merging main and prod into a single branch --- .env.example | 3 +++ aperisolve/app.py | 21 ++++++++++++++++----- aperisolve/config.py | 19 +++++++++++++++---- aperisolve/templates/base.html | 1 + 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 21128ef..da7391a 100644 --- a/.env.example +++ b/.env.example @@ -10,6 +10,9 @@ CLEAR_AT_RESTART=1 SKIP_IHDR_FILL=0 REMOVAL_MIN_AGE_SECONDS=300 +GOOGLE_ADS_TXT="google.com, pub-2324718887045017, DIRECT, f08c47fec0942fa0" +CUSTOM_EXTERNAL_SCRIPT="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2324718887045017" + # Flask configuration FLASK_DEBUG=0 diff --git a/aperisolve/app.py b/aperisolve/app.py index 97a99bc..11158c8 100644 --- a/aperisolve/app.py +++ b/aperisolve/app.py @@ -22,7 +22,13 @@ from .utils.sentry import initialize_sentry initialize_sentry() from .config import ( + CUSTOM_EXTERNAL_SCRIPT, + DB_URI, + FLASK_DEBUG, + GOOGLE_ADS_TXT, IMAGE_EXTENSIONS, + MAX_CONTENT_LENGTH, + PROJECT_VERSION, REMOVAL_MIN_AGE_SECONDS, REMOVED_IMAGES_FOLDER, RESULT_FOLDER, @@ -35,10 +41,11 @@ def create_app() -> Flask: """Create flask application with routes.""" app = Flask(__name__) app.json.sort_keys = False # type: ignore - app.config["SQLALCHEMY_DATABASE_URI"] = os.environ.get("DB_URI") - app.config["PROJECT_VERSION"] = os.getenv("PROJECT_VERSION") + app.config["PROJECT_VERSION"] = PROJECT_VERSION + app.config["CUSTOM_EXTERNAL_SCRIPT"] = CUSTOM_EXTERNAL_SCRIPT + app.config["SQLALCHEMY_DATABASE_URI"] = DB_URI app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False - app.config["MAX_CONTENT_LENGTH"] = int(os.environ.get("MAX_CONTENT_LENGTH", 1024 * 1024)) + app.config["MAX_CONTENT_LENGTH"] = MAX_CONTENT_LENGTH app.config["REDIS_QUEUE"] = Queue(connection=Redis(host="redis", port=6379)) db.init_app(app) @@ -433,10 +440,14 @@ def create_app() -> Flask: return send_file(output_file, as_attachment=True) + @app.route("/ads.txt") + def google_ads() -> str: + """Google Ads required file""" + return GOOGLE_ADS_TXT + return app if __name__ == "__main__": my_app = create_app() - debug_mode = os.environ.get("FLASK_DEBUG", "0") == "1" - my_app.run(host="0.0.0.0", port=5000, debug=debug_mode) + my_app.run(host="0.0.0.0", port=5000, debug=FLASK_DEBUG) diff --git a/aperisolve/config.py b/aperisolve/config.py index 8ecf6e6..a813a2a 100644 --- a/aperisolve/config.py +++ b/aperisolve/config.py @@ -6,12 +6,23 @@ from os import getenv from pathlib import Path -IMAGE_EXTENSIONS = [".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".tiff"] -WORKER_FILES = ["binwalk", "foremost", "steghide", "zsteg", "openstego", "pcrt", "jpseek"] +PROJECT_VERSION = getenv("PROJECT_VERSION", "development") -RESULT_FOLDER = Path(__file__).parent.resolve() / "results" -REMOVED_IMAGES_FOLDER = Path(__file__).parent.resolve() / "removed_images" REMOVAL_MIN_AGE_SECONDS = int(getenv("REMOVAL_MIN_AGE_SECONDS", "300")) # 5 minutes MAX_PENDING_TIME = int(getenv("MAX_PENDING_TIME", "600")) # 10 minutes by default MAX_STORE_TIME = int(getenv("MAX_STORE_TIME", "259200")) # 3 days by default +MAX_CONTENT_LENGTH = int(getenv("MAX_CONTENT_LENGTH", "1048576")) # 1 MB by default CLEAR_AT_RESTART = int(getenv("CLEAR_AT_RESTART", "0")) + +IMAGE_EXTENSIONS = [".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".tiff"] +WORKER_FILES = ["binwalk", "foremost", "steghide", "zsteg", "openstego", "pcrt", "jpseek"] + +GOOGLE_ADS_TXT = getenv("GOOGLE_ADS_TXT", "") +CUSTOM_EXTERNAL_SCRIPT = getenv("CUSTOM_EXTERNAL_SCRIPT", "") + + +RESULT_FOLDER = Path(__file__).parent.resolve() / "results" +REMOVED_IMAGES_FOLDER = Path(__file__).parent.resolve() / "removed_images" + +DB_URI = getenv("DB_URI", "") +FLASK_DEBUG = bool(getenv("FLASK_DEBUG", "0") == "1") diff --git a/aperisolve/templates/base.html b/aperisolve/templates/base.html index a2961d9..0fabf19 100644 --- a/aperisolve/templates/base.html +++ b/aperisolve/templates/base.html @@ -13,6 +13,7 @@ +