From 2fe976831201b64b641ff47ded1ae07d3b844838 Mon Sep 17 00:00:00 2001 From: Igor Olszewski Date: Fri, 17 Apr 2026 12:01:21 +0200 Subject: [PATCH] feat: integrate Google Analytics tracking with configurable environment variable --- .env.sample | 4 ++++ app.py | 9 ++++++--- reporter/html_generator.py | 3 ++- templates/index.html | 11 +++++++++++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/.env.sample b/.env.sample index 5874412..f03c57e 100644 --- a/.env.sample +++ b/.env.sample @@ -22,3 +22,7 @@ CLEANUP_SCANNED_IMAGES=true # SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK/URL SLACK_WEBHOOK_URL= + +# Google Analytics Tag ID (gtag.js) +# Example: G-XXXXXXXXXX +GOOGLE_TAG_ID= diff --git a/app.py b/app.py index 336522d..41d7de9 100644 --- a/app.py +++ b/app.py @@ -39,9 +39,12 @@ os.makedirs(os.path.dirname(app.config['FEEDBACK_FILE']), exist_ok=True) @app.context_processor -def inject_static_version(): - """Make static version available in all templates for cache busting.""" - return {'static_version': STATIC_VERSION} +def inject_global_vars(): + """Make global variables available in all templates.""" + return { + 'static_version': STATIC_VERSION, + 'google_tag_id': os.getenv('GOOGLE_TAG_ID', '') + } def get_slack_webhook_url() -> str: return os.getenv('SLACK_WEBHOOK_URL', '').strip() diff --git a/reporter/html_generator.py b/reporter/html_generator.py index ab3992e..ae45e57 100644 --- a/reporter/html_generator.py +++ b/reporter/html_generator.py @@ -66,9 +66,10 @@ def generate_standalone_html(report_dict): js_pattern = r']*src=["\'].*?app\.js.*?["\'][^>]*>\s*' html_content = re.sub(js_pattern, js_placeholder, html_content) - # Clean up ALL remaining Jinja tags (static_version etc) + # Clean up ALL remaining Jinja tags (static_version, google_tag_id etc) # This must happen before data injection html_content = re.sub(r'\{\{\s*.*?\s*\}\}', "", html_content) + html_content = re.sub(r'\{%\s*.*?\s*%\}', "", html_content) # NOW inject the JS content and the actual data # Use a safe way to build the script tag without f-string interpolation issues for JS content diff --git a/templates/index.html b/templates/index.html index 981df4f..b7bc87b 100644 --- a/templates/index.html +++ b/templates/index.html @@ -5,6 +5,17 @@ InfraScan - Advanced Infrastructure Auditor + {% if google_tag_id %} + + + + {% endif %}