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 @@
+
+
+
+