From 345c1a8065d0ee9d5700fcf88f44203afbb5fc66 Mon Sep 17 00:00:00 2001 From: Wolfang Torres Date: Sat, 6 Jun 2026 22:12:47 +0800 Subject: [PATCH] add basic functionality --- pyproject.toml | 7 +- src/anki_creator_flask/__init__.py | 8 +- src/anki_creator_flask/homescreen.py | 20 +- src/anki_creator_flask/mainapp.py | 25 ++ .../static/assets/js/app.js | 0 src/anki_creator_flask/static/favicon.ico | Bin 0 -> 13662 bytes src/anki_creator_flask/static/favicon.ico.old | Bin 0 -> 193478 bytes src/anki_creator_flask/templates/app.html | 215 ++++++++++++------ src/anki_creator_flask/templates/index.html | 4 + 9 files changed, 189 insertions(+), 90 deletions(-) create mode 100644 src/anki_creator_flask/mainapp.py create mode 100644 src/anki_creator_flask/static/assets/js/app.js create mode 100644 src/anki_creator_flask/static/favicon.ico create mode 100644 src/anki_creator_flask/static/favicon.ico.old diff --git a/pyproject.toml b/pyproject.toml index 8fe5294..4e29119 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,7 +94,7 @@ exclude = ''' ''' [tool.isort] -src_paths = ["gtomachine", "test"] +src_paths = ["src", "test"] skip_glob = [".git", "__pycache__", ".vscode", "*venv", "build", "dist", "old", "*.egg-info"] line_length = 88 multi_line_output = 3 @@ -107,12 +107,11 @@ case_sensitive = true length_sort = false balanced_wrapping = true atomic = true -known_gto = ["gtomachine", "gtodata", "gtotools"] import_heading_stdlib = "Standard Library" import_heading_thirdparty = "Pip" -import_heading_gto = "GTO" +import_heading_firstparty = "First Party" import_heading_localfolder = "Local" -sections = ["FUTURE", "STDLIB", "THIRDPARTY", "GTO", "FIRSTPARTY", "LOCALFOLDER"] +sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] [tool.pylint.messages_control] disable = "C0330, C0326" diff --git a/src/anki_creator_flask/__init__.py b/src/anki_creator_flask/__init__.py index 18f955f..7e8ed97 100644 --- a/src/anki_creator_flask/__init__.py +++ b/src/anki_creator_flask/__init__.py @@ -4,17 +4,19 @@ from pathlib import Path # Pip from flask import Flask +# Local from .homescreen import homescreen +from .mainapp import mainapp def create_app(test_config=None): # create and configure the app app = Flask(__name__, instance_relative_config=True) - + # ensure the instance folder exists instance_path = Path(app.instance_path) instance_path.mkdir(parents=True, exist_ok=True) - + # configs app.config.from_mapping( SECRET_KEY="dev", @@ -28,7 +30,7 @@ def create_app(test_config=None): # load the test config if passed in app.config.from_mapping(test_config) - for blueprint in (homescreen,): + for blueprint in (homescreen, mainapp): app.register_blueprint(blueprint) return app diff --git a/src/anki_creator_flask/homescreen.py b/src/anki_creator_flask/homescreen.py index 1f74986..2ba4d8a 100644 --- a/src/anki_creator_flask/homescreen.py +++ b/src/anki_creator_flask/homescreen.py @@ -1,14 +1,16 @@ # Pip -from flask import Blueprint, abort, render_template -from jinja2 import TemplateNotFound +from flask import Blueprint, current_app, render_template, send_from_directory homescreen = Blueprint("homescreen", __name__, template_folder="templates") -@homescreen.route("/", defaults={"page": "index"}) -@homescreen.route("/") -def show(page): - try: - return render_template(f"{page}.html") - except TemplateNotFound: - abort(404) +@homescreen.route("/") +def show(): + return render_template(f"index.html") + + +@homescreen.route("/favicon.ico") +def favicon(): + return send_from_directory( + current_app.static_folder, "favicon.ico", mimetype="image/vnd.microsoft.icon" + ) diff --git a/src/anki_creator_flask/mainapp.py b/src/anki_creator_flask/mainapp.py new file mode 100644 index 0000000..b6878a8 --- /dev/null +++ b/src/anki_creator_flask/mainapp.py @@ -0,0 +1,25 @@ +# Pip +from flask import Blueprint, render_template, request + +mainapp = Blueprint("mainapp", __name__, template_folder="templates", url_prefix="/app", static_folder="static") + + +@mainapp.route("/", methods=["GET", "POST"]) +def show(): + if request.method == "GET": + args = request.args.to_dict() + deck_type = args.get("deck_type", "") + language = args.get("language", "") + output_type = args.get("output_type", "") + if not deck_type or not language or not output_type: + state = "new" + else: + print() + print(deck_type, language, output_type) + print() + state = "complete" + elif request.method == "POST": + state = "ready" + form = request.form.to_dict() + + return render_template(f"app.html", data=locals()) diff --git a/src/anki_creator_flask/static/assets/js/app.js b/src/anki_creator_flask/static/assets/js/app.js new file mode 100644 index 0000000..e69de29 diff --git a/src/anki_creator_flask/static/favicon.ico b/src/anki_creator_flask/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..52a345213cfb02cf476884689a0fbe4a98621aae GIT binary patch literal 13662 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
    +k7Y|VuD*)Bh@=8c0Gt`Z585zlUI4M%}%_o=8A4 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

    co9 z%wY>0=1o4uYyMxz4gZU2X=#!3FWV}#aEu^@-+%G3=s)kjyvddw^JAqV=WSnH{@JQj zYD{qX`bi&$OK0}jY!|)lQuMpdR-ek-kha7*JuKfmnH{7`3QOAjIQ*G4d$%lC^SHZR zl8O4iBm=wDWqR*BTO}IWkowIoTsk_2VnSzWk3LNgo5Fr9%WX3(|Js&S7G6?Joo;C`-YrxoIlo^>4O#4TTds*s^PNk!z1wOstC>_}TiV(vN8?#7r6Sd6 zi(cKNuk1uR^KJy;$%E7FjaxRcxt8a4-FFG8C~qcp8J+d-A??_<#!)8Z^s~;4HbY3Q zdM&ePLQdba%KJ|CQVTG&+5;fw@S)lfdc0deZWxK-~bcK;CsoPVeFMl+lAiW4fkjolM-6A zV~`xc=7P10MBk7#X7N@3ISOQeCxfLg$u8VoG~5Y19V= zPFD0g6B2jaU$Ae2@i*CTn`=@_sde3mEt*4Y(Q9Fg?kEEr_YtF2bkc?~%;!bwBz@S= zchXraL*6*Hl(Kjm=AIMMawUW0S)9}2`96P#I5>#T#8CV%I4&cxC$mX`WogmQIh0Fu zRukEm-Fh@&%no`m!V4yOK%fRYBcv(Tc5PHqj1|9+&Sc!Oib-ueEYa&M8^Z|nWWS?DJCT; zMpC3ci%*;9dtKTFUApyN^x{FjQd?-v%vSMU^KR|Hg*0x)FhzU&Po-=J3b$Lphdxjc z}1(d(emG@Fvgi H&o}=A6R1d; literal 0 HcmV?d00001 diff --git a/src/anki_creator_flask/templates/app.html b/src/anki_creator_flask/templates/app.html index 00c5be1..f449c87 100644 --- a/src/anki_creator_flask/templates/app.html +++ b/src/anki_creator_flask/templates/app.html @@ -11,105 +11,120 @@ +

    -
    +
    -

    Get in touch

    +

    Select the deck type

    -
    + +

    - Auctor commodo interdum et malesuada fames ac ante - ipsum primis in faucibus. Pellentesque venenatis dolor imperdiet - dolor mattis sagittis. + Paste here the word list

    -
    +
    -
    - -
    -
    - -
    - +
    +
    @@ -127,5 +142,57 @@ + + diff --git a/src/anki_creator_flask/templates/index.html b/src/anki_creator_flask/templates/index.html index 74f13c4..db4e05f 100644 --- a/src/anki_creator_flask/templates/index.html +++ b/src/anki_creator_flask/templates/index.html @@ -11,6 +11,10 @@ +