diff --git a/config.py b/config.py index d88e971..738df74 100644 --- a/config.py +++ b/config.py @@ -1,6 +1,7 @@ import os from werkzeug.security import generate_password_hash from sys import platform +import sys CONTENT_BASE_DIR = os.getenv("CONTENT_BASE_DIR", "/library") #docker @@ -32,7 +33,7 @@ MAXSIZE = (500,500) def _print(arg): if DEBUG: - print(arg) + print(arg,file=sys.stderr) TEENYOPDS_ADMIN_PASSWORD = os.getenv("TEENYOPDS_ADMIN_PASSWORD", None) users = {} diff --git a/main.py b/main.py index 18ab223..4c22164 100644 --- a/main.py +++ b/main.py @@ -13,14 +13,18 @@ import re import datetime import sys import time +import json import numpy as np from pathlib import Path from io import BytesIO +from threading import Thread # for debugging from pprint import pprint #### +generated = None + from opds import fromdir import config,extras @@ -57,7 +61,8 @@ def startpage(): return redirect(url_for('import2sql')) elif request.form.get('Generate') == 'Generate': config._print("Generate Covers from Start page") - return redirect(url_for('generate')) + + return redirect(url_for('generate2')) else: # pass # unknown return render_template("first.html") @@ -136,19 +141,30 @@ def search(): config._print(e) return str(result) -@app.route("/generate") +total = None +#@app.route("/generate") def generate(): - force = request.args.get('force') + config._print('GENERATES NOW!!!') + force = 'True' #request.args.get('force') + global generated + global total + total = 0 generated = 0 comiccount = 0 files_without_comicinfo = 0 errorcount = 0 skippedcount = 0 errormsg = "" + for root, dirs, files in os.walk(os.path.abspath(config.CONTENT_BASE_DIR)): + for file in files: + f = os.path.join(root,file) + if f.endswith('.cbz'): + total = total + 1 for root, dirs, files in os.walk(os.path.abspath(config.CONTENT_BASE_DIR)): for file in files: f = os.path.join(root, file) if f.endswith('.cbz'): + config._print(generated) try: comiccount = comiccount + 1 s = zipfile.ZipFile(f) @@ -199,8 +215,25 @@ def generate(): config._print(f) errormsg = str(e) return "Forced generation: " + str(force) + "
Comics: " + str(comiccount) + "
Generated: " + str(generated) + "
CBZ files without ComicInfo.xml: " + str(files_without_comicinfo) + "
Errors: " + str(errorcount) + "
Skipped: " + str(skippedcount) + "
" + errormsg + config._print( "Forced generation: " + str(force) + "
Comics: " + str(comiccount) + "
Generated: " + str(generated) + "
CBZ files without ComicInfo.xml: " + str(files_without_comicinfo) + "
Errors: " + str(errorcount) + "
Skipped: " + str(skippedcount) + "
" + errormsg) + +@app.route("/generate2") +def generate2(): + t1 = Thread(target=generate) + t1.start() + return render_template('status.html') +@app.route("/t2") +def index(): + t1 = Thread(target=generate) + t1.start() + return render_template('status.html') + +@app.route('/status',methods=['GET']) +def getStatus(): + statusList = {'status':generated,'total':total} + return json.dumps(statusList) @app.route('/import') def import2sql(): diff --git a/templates/status.html b/templates/status.html new file mode 100644 index 0000000..2f5fe6e --- /dev/null +++ b/templates/status.html @@ -0,0 +1,75 @@ + + + + + + + + + Status Update + + + + +
+
+

Loading...

+
+
+ + + + +