from flask import Blueprint, Response, current_app, render_template from flask.typing import ResponseReturnValue from sqlalchemy import desc from app.models.base import Group from app.models.onions import Eotk bp = Blueprint("eotk", __name__) _SECTION_TEMPLATE_VARS = { "section": "eotk", "help_url": "https://bypass.censorship.guide/user/eotk.html", } @bp.route("/list") def eotk_list() -> ResponseReturnValue: instances = ( Eotk.query.filter(Eotk.destroyed.is_(None)).order_by(desc(Eotk.added)).all() ) return render_template( "list.html.j2", title="EOTK Instances", item="eotk", items=instances, **_SECTION_TEMPLATE_VARS ) @bp.route("/conf/") def eotk_conf(group_id: int) -> ResponseReturnValue: group = Group.query.filter(Group.id == group_id).first() return Response( render_template( "sites.conf.j2", bypass_token=current_app.config["BYPASS_TOKEN"], group=group, ), content_type="text/plain", )