From 64c6414fb85e22c3a49c025fecf7e850e5aeebd4 Mon Sep 17 00:00:00 2001 From: Iain Learmonth Date: Mon, 23 Oct 2023 17:33:17 +0100 Subject: [PATCH] feat: adds report for blocks today --- app/__init__.py | 3 ++- app/portal/report.py | 21 +++++++++++++++++ app/portal/templates/report_blocks.html.j2 | 27 ++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 app/portal/report.py create mode 100644 app/portal/templates/report_blocks.html.j2 diff --git a/app/__init__.py b/app/__init__.py index 25ec79a..b2ba723 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -16,6 +16,7 @@ from app.extensions import migrate from app.extensions import bootstrap from app.models.automation import Automation, AutomationState from app.portal import portal +from app.portal.report import report from app.tfstate import tfstate app = Flask(__name__) @@ -31,7 +32,7 @@ bootstrap.init_app(app) app.register_blueprint(portal, url_prefix="/portal") app.register_blueprint(tfstate, url_prefix="/tfstate") - +app.register_blueprint(report, url_prefix="/report") def not_migrating() -> bool: return len(sys.argv) < 2 or sys.argv[1] != "db" diff --git a/app/portal/report.py b/app/portal/report.py new file mode 100644 index 0000000..7445263 --- /dev/null +++ b/app/portal/report.py @@ -0,0 +1,21 @@ +from flask import Blueprint, render_template +from flask.typing import ResponseReturnValue +from sqlalchemy import func, and_ + +from app.extensions import db +from app.models.mirrors import Proxy, Origin + +report = Blueprint("report", __name__) + + +@report.route("/blocks", methods=['GET']) +def report_blocks() -> ResponseReturnValue: + blocked_today = db.session.query( + Origin.domain_name, + Origin.description, + Proxy.added, + Proxy.deprecated, + Proxy.deprecation_reason + ).join(Origin, Origin.id == Proxy.origin_id + ).filter(and_(Proxy.deprecated > func.current_date(), Proxy.deprecation_reason.like('block_%'))).all() + return render_template("report_blocks.html.j2", blocked_today=blocked_today) diff --git a/app/portal/templates/report_blocks.html.j2 b/app/portal/templates/report_blocks.html.j2 new file mode 100644 index 0000000..cfbf041 --- /dev/null +++ b/app/portal/templates/report_blocks.html.j2 @@ -0,0 +1,27 @@ + + + Bypass Censorship + + + +
+

Blocked Today

+ + + + + + + + {% for block in blocked_today %} + + + + + + + {% endfor %} +
OriginBlockedDetection SourceLifetime
{{ block.domain_name }} ({{ block.description }}){{ block.deprecated }}{{ block.deprecation_reason }}{{ block.deprecated - block.added }}
+
+ +