From 2b4c244c1f19a7325ecdcf3bbdf8159c6b4f3463 Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Tue, 17 Mar 2020 13:19:26 -0400 Subject: [PATCH 1/5] Started setting up very simple front end for cicking off download process. Also added a new method to check if there is any missing url metadata and what mangas it effects. --- main.py | 41 ++++++++++++++++++++++++++++++++++++----- templates/index.html | 10 ++++++++++ 2 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 templates/index.html diff --git a/main.py b/main.py index af4fe5f..233ffc2 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,13 @@ from flask_sqlalchemy import SQLAlchemy -from flask import Flask, jsonify +from flask import Flask, jsonify, render_template, request import json import os PATH = '/download' -app = Flask(__name__) +app = Flask(__name__, + template_folder="templates") app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://mdownload:mdownload@192.168.86.198:3306/Downloads' @@ -35,6 +36,9 @@ class url_metadata(db.Model): flag = db.Column(db.Text) base_url = db.Column(db.VARCHAR(length=10000)) +@app.route('/', methods=['GET']) +def index(): + return render_template("index.html") @app.route('/download', methods=['GET']) def download(): @@ -51,9 +55,9 @@ def download(): book['title'] = each.manga.name book['command'] = execute updated.append(book) - os.system(execute) - - return jsonify(manga=updated) + # os.system(execute) + missing = check(passin=1) + return jsonify(manga=updated, missingFlags=missing[0], missingManga=missing[1]) @app.route('/upload', methods=['GET']) def upload_jason(): @@ -102,5 +106,32 @@ def active(): return jsonify(active=activbooks) +@app.route('/check/', methods=['GET']) +def check(passin=0): + passin=passin + missingManga = [] + missingFlags = [] + providerFlags = [] + mangaFlags = manga.query.with_entities(manga.url_flag).distinct() + providerFlagResult = url_metadata.query.all() + for each in providerFlagResult: + providerFlags.append(each.flag) + for each in mangaFlags: + if each.url_flag not in providerFlags: + missingFlags.append(each.url_flag) + for each in missingFlags: + mangaInfo = {} + badManga = manga.query.filter_by(url_flag=each).all() + for each in badManga: + mangaInfo['name'] = each.name + mangaInfo['url_flag'] = each.url_flag + mangaInfo['active'] = each.active + missingManga.append(mangaInfo) + + if passin == 1: + return missingFlags, missingManga + else: + return jsonify(missingFlags=missingFlags, missingManga=missingManga) + if __name__ == "__main__": app.run(host='0.0.0.0', debug=True) diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..f2a18ac --- /dev/null +++ b/templates/index.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file From db1b5e4af262f94dcab7fbde15262c7976703a91 Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Tue, 17 Mar 2020 14:44:50 -0400 Subject: [PATCH 2/5] print-json argument added. --- main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 233ffc2..de3448e 100644 --- a/main.py +++ b/main.py @@ -49,13 +49,13 @@ def download(): for each in result: book={} if 'http' in each.manga.name or 'https' in each.manga.url: - execute = """manga-py """ + each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N""" + execute = """manga-py """ + each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N --print-json""" else: - execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N""" + execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N --print-json""" book['title'] = each.manga.name book['command'] = execute updated.append(book) - # os.system(execute) + os.system(execute) missing = check(passin=1) return jsonify(manga=updated, missingFlags=missing[0], missingManga=missing[1]) From e1b4be2d4035fd8c4a1ae0e7cab8b0b2de876ffb Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Fri, 20 Mar 2020 10:13:01 -0400 Subject: [PATCH 3/5] attempting to capture manga-py output in response. --- main.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index de3448e..f6575e0 100644 --- a/main.py +++ b/main.py @@ -2,6 +2,7 @@ from flask_sqlalchemy import SQLAlchemy from flask import Flask, jsonify, render_template, request import json import os +import subprocess PATH = '/download' @@ -54,8 +55,12 @@ def download(): execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N --print-json""" book['title'] = each.manga.name book['command'] = execute + + # os.system(execute) + exec_command = subprocess.Popen(execute, stdout=subprocess.PIPE) + book['output'] = exec_command.stdout.read() updated.append(book) - os.system(execute) + missing = check(passin=1) return jsonify(manga=updated, missingFlags=missing[0], missingManga=missing[1]) From 23a8bc0d420e1ea614e0d521d3c41f7ce6299cc8 Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Fri, 20 Mar 2020 11:01:02 -0400 Subject: [PATCH 4/5] Adjusted subprocess calls --- main.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index f6575e0..292cf47 100644 --- a/main.py +++ b/main.py @@ -50,15 +50,18 @@ def download(): for each in result: book={} if 'http' in each.manga.name or 'https' in each.manga.url: - execute = """manga-py """ + each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N --print-json""" + # execute = """manga-py """ + each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N --print-json""" + exec_command = subprocess.Popen(['manga-py', each.manga.url, '-n', each.manga.name, '-d', PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) else: - execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N --print-json""" + print('nothing') + # execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N --print-json""" + exec_command = subprocess.Popen(['manga-py', each.url_metadata.base_url, each.manga.url, '-n', each.manga.name.strip('?'), '-d', PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) book['title'] = each.manga.name - book['command'] = execute + # book['command'] = 'nothing' # os.system(execute) - exec_command = subprocess.Popen(execute, stdout=subprocess.PIPE) - book['output'] = exec_command.stdout.read() + # exec_command = subprocess.Popen(execute, stdout=subprocess.PIPE) + book['output'] = exec_command.communicate() updated.append(book) missing = check(passin=1) From 36eef06f3e7e258f48405c88aad0816a6124dd8e Mon Sep 17 00:00:00 2001 From: Dan Dembinski Date: Fri, 20 Mar 2020 11:51:53 -0400 Subject: [PATCH 5/5] Adjusted subprocess calls --- main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 292cf47..beb49fd 100644 --- a/main.py +++ b/main.py @@ -51,11 +51,11 @@ def download(): book={} if 'http' in each.manga.name or 'https' in each.manga.url: # execute = """manga-py """ + each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N --print-json""" - exec_command = subprocess.Popen(['manga-py', each.manga.url, '-n', each.manga.name, '-d', PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) + exec_command = subprocess.Popen(['manga-py', each.manga.url, '-n', each.manga.name, '-d ' + PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) else: print('nothing') # execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name.strip('?') + """\" -d \"""" + PATH + """\" -z -N --print-json""" - exec_command = subprocess.Popen(['manga-py', each.url_metadata.base_url, each.manga.url, '-n', each.manga.name.strip('?'), '-d', PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) + exec_command = subprocess.Popen(['manga-py', each.url_metadata.base_url, each.manga.url, '-n', each.manga.name.strip('?'), '-d ' + PATH, '-z', '-N', '--print-json'], stdout=subprocess.PIPE) book['title'] = each.manga.name # book['command'] = 'nothing'