From 012b99c91a40b4f4c4fe9f9a4757ee8a3befac67 Mon Sep 17 00:00:00 2001 From: Max Value Date: Fri, 21 Mar 2025 21:53:54 +0000 Subject: [PATCH] Added MOBI preperation system + switch to docs.html to remove all incompatible components (links, details) ~ database check and docgen happens on first request This may not work with mutliprocesses or threads ~ added manual docgen endpoint @ /api/generate - EPUB leftovers - generate_docs.py --- docs/epub/META-INF/container.xml | 7 -- docs/epub/info_page.html | 74 -------------- docs/epub/mimetype | 1 - docs/epub/stylesheet.css | 9 -- docs/epub/title_page.html | 13 --- generate_docs.py | 162 ------------------------------- static/cover.jpg | Bin 0 -> 76322 bytes teleshopping.py | 73 +++++++++----- templates/docs.html | 28 ++++-- 9 files changed, 65 insertions(+), 302 deletions(-) delete mode 100644 docs/epub/META-INF/container.xml delete mode 100644 docs/epub/info_page.html delete mode 100644 docs/epub/mimetype delete mode 100644 docs/epub/stylesheet.css delete mode 100644 docs/epub/title_page.html delete mode 100755 generate_docs.py create mode 100644 static/cover.jpg diff --git a/docs/epub/META-INF/container.xml b/docs/epub/META-INF/container.xml deleted file mode 100644 index b640723..0000000 --- a/docs/epub/META-INF/container.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/docs/epub/info_page.html b/docs/epub/info_page.html deleted file mode 100644 index 3784551..0000000 --- a/docs/epub/info_page.html +++ /dev/null @@ -1,74 +0,0 @@ - - - - Information - - -

Infomation

-

Call Sheet

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameRoleContact
William GreenwoodProducer - W.Greenwood@edu.salford.ac.uk -
- +44 7594 768180 -
Test crewRole - Email -
- Phone -
Test crewRole - Email -
- Phone -
Test crewRole - Email -
- Phone -
- -

Lighting cue information

-

Lighting scenes

-

Full cue setups, only one can be opperating at once.

- -

Lighting triggers

-

Individual lighting triggers, for things such as the clock. Any number can be activated at once

- - - diff --git a/docs/epub/mimetype b/docs/epub/mimetype deleted file mode 100644 index 403c4f0..0000000 --- a/docs/epub/mimetype +++ /dev/null @@ -1 +0,0 @@ -application/epub+zip diff --git a/docs/epub/stylesheet.css b/docs/epub/stylesheet.css deleted file mode 100644 index 1d70e71..0000000 --- a/docs/epub/stylesheet.css +++ /dev/null @@ -1,9 +0,0 @@ -@page { - margin-bottom: 5pt; - margin-top: 5pt; -} - -table, th, td { - border: 1px solid black; - border-collapse: collapse; -} diff --git a/docs/epub/title_page.html b/docs/epub/title_page.html deleted file mode 100644 index 75d96ea..0000000 --- a/docs/epub/title_page.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - Title Page - - -

XMDV Teleshopping

-

Item manifest

-

Info on all items contained within the GFX system.


-

HIDDEN INFORMATION. NOT TO BE SHARED WITH THE ANCHOR.

- - diff --git a/generate_docs.py b/generate_docs.py deleted file mode 100755 index 35ff0fe..0000000 --- a/generate_docs.py +++ /dev/null @@ -1,162 +0,0 @@ -#!.venv/bin/python - -from pylatex import Command, Document, Section, Tabular, NewPage, NewLine -from pylatex.utils import NoEscape, bold -import json -import os - -# clean up working-directory -for filename in os.listdir("../docs/epub"): - if filename[:4] == "item": os.remove("../docs/epub/" + filename) - -# generate item pages -with open("../items.json", "r") as f: - items = json.loads(f.read()) - -for (i, item) in enumerate(items): - with open(f"../docs/epub/item{i}.html", "w") as f: - f.write(f""" - - - - {item['code']} - - -

{item['code']}

-

{item['subtext']}

-

Description

-

{item['description']}

- - - - - - - - - - - - - -
Rating{item['rating']}
Starting price{item['origionalPrice']}
In stock{item['stockCount']}
-

Anchor notes:

-

{item['notes']}

-

Crew notes:

-

{item['crew_notes']}

- - - """) - -# update manifest -manifest_items = " ".join([ - f"" - for i in range(len(items)) - ]) -toc_items = " ".join([ - f"" - for i in range(len(items)) - ]) - -with open("../docs/epub/content.opf", "w") as f: - f.write(f""" - - - - - - - XMDV Teleshopping item manifest - en - - http://data.ozva.co.uk/shopping/docs/item_manifest.epub - - Teleshopping, Manifest - Describing all items to be sold during the XMDV Teleshopping performance - William Greenwood - Goodnight Publishing - 2024-12-28 - Creative Commons BY-SA 3.0 License. - - - - - - - - {manifest_items} - - - - - - {toc_items} - - - -""") - -toc_items = " ".join([ - f""" - - - {i+1}: {item["code"]} - - - - """ - for (i, item) in enumerate(items) - ]) - -with open("../docs/epub/toc.ncx", "w") as f: - f.write(f""" - - - - - - - - - - - - - - XMDV Teleshopping item manifest - - - - - - Title Page - - - - - - Information - - - - {toc_items} - - - -""") - -os.system(""" - zip -X0 ../docs/item_manifest.epub ../docs/epub/mimetype && - zip -Xur9D ../docs/item_manifest.epub ../docs/epub/* && - ebook-convert ../docs/item_manifest.epub ../docs/item_manifest.mobi - """) diff --git a/static/cover.jpg b/static/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be15dcff43f84f0db36a34ccac446ed879149605 GIT binary patch literal 76322 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

mun5u0Q!?24^H=#Zkd7bNj>6b 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å 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 literal 0 HcmV?d00001 diff --git a/teleshopping.py b/teleshopping.py index 7627b6b..270d1ce 100755 --- a/teleshopping.py +++ b/teleshopping.py @@ -71,7 +71,7 @@ def gfx_page(page): @app.route("/docs") @auth.login_required def web_docs(): - return Response(render_template("docs.html", data=static_data, info=static_info), mimetype="text/html") + return Response(render_template("docs.html", data=static_data, info=static_info, book=False), mimetype="text/html") @app.route("/docs/") @auth.login_required @@ -189,30 +189,10 @@ def api_clock(): else: return "", 404 -@app.route("/api/regenerate") +@app.route("/api/generate") @auth.login_required -def check_generate(): - # sanity check the db - with open(path.join(app.root_path, "schema"), "r", encoding="utf-8") as f: - schema, load = f.read().split("\n\n") - - with sqlite3.connect(path.join(app.root_path, "data.db")) as connection: - cursor = connection.cursor() - try: - cursor.execute(load) - except sqlite3.IntegrityError: - print("Database is setup correctly") - pass - except sqlite3.OperationalError: - print("Table missing or corrupt...") - try: cursor.execute("DROP TABLE state;") # catch if there is no table "state" - except: pass - cursor.execute(schema) - cursor.execute(load) - connection.commit() - - # generate docs - print("Generating static documentation...") +def generate_docs(): + # setup the jinja enviroment for use in latex latex_enviroment = Environment( loader=FileSystemLoader(path.join(app.root_path, "templates")), block_start_string = "|%", @@ -225,9 +205,10 @@ def check_generate(): lstrip_blocks = True ) + # render each latex document + docs_path = path.join(app.root_path, "docs") for document in ["call-sheet.tex", "manifest-unsafe.tex", "manifest-safe.tex", "gfx-text.tex"]: template = latex_enviroment.get_template(document) - docs_path = path.join(app.root_path, "docs") with open(path.join(docs_path, document), "w", encoding="utf-8") as f: f.write(template.render(data=static_data, info=static_info)) @@ -237,7 +218,47 @@ def check_generate(): print(f" - Generated {document}") + with open(path.join(docs_path, "documentation.html"), "w", encoding="utf-8") as f: + f.write(render_template("docs.html", data=static_data, info=static_info, book=True)) + + system(f"ebook-convert '{path.join(docs_path, 'documentation.html')}' '{path.join(docs_path, 'documentation.mobi')}' --title='XMDV Teleshopping Documentation' --authors='William Greenwood' --comments='Valid for {static_info['shoot']['date']}' --language=en --change-justification=left --cover='{path.join(app.root_path, 'static', 'cover.jpg')}'") + return "", 200 + + + +# if this is the first incoming request do a sanity check on the db +# this might happen a few times because of threading, but it doesnt slow requests that much +first_request = True +@app.before_request +def check_database(): + global first_request + if first_request: + with open(path.join(app.root_path, "schema"), "r", encoding="utf-8") as f: + schema, load = f.read().split("\n\n") + + with sqlite3.connect(path.join(app.root_path, "data.db")) as connection: + cursor = connection.cursor() + try: + cursor.execute(load) + except sqlite3.IntegrityError: + print("Database is setup correctly") + pass + except sqlite3.OperationalError: + print("Table missing or corrupt...") + try: cursor.execute("DROP TABLE state;") # catch if there is no table "state" + except: pass + cursor.execute(schema) + cursor.execute(load) + connection.commit() + + generate_docs() # This might be a bad idea + + first_request = False + + + + if __name__ == "__main__": - app.run(host='192.168.0.144', port=8000, debug=True) + app.run(host='127.0.0.1', port=8000, debug=True) diff --git a/templates/docs.html b/templates/docs.html index 11757b1..8d6a63d 100644 --- a/templates/docs.html +++ b/templates/docs.html @@ -140,10 +140,14 @@ details { Forbidden -

- Reveal + {% if book %} {{item.crew_notes}} -
+ {% else %} +
+ Reveal + {{item.crew_notes}} +
+ {% endif %} {% endfor %} @@ -178,11 +182,15 @@ details { -

PDF Documents

- + {% if book %} +

For print document links, see web version of this document.

+ {% else %} +

PDF Documents

+ + {% endif %} -- 2.39.2