Files
mangaDownloader/main.py
2020-03-11 23:27:51 -04:00

97 lines
3.2 KiB
Python

from flask_sqlalchemy import SQLAlchemy
from flask import Flask, jsonify
import json
import time
# from manga_py1.parser import Parser
# from manga_py1.info import Info
# from Downloader import my_awesome_handler
import os
# PATH = 'Manga/'
# PATH = 'smb://MediaServer._smb._tcp.local/Downloads/Manga/'
PATH = '/download'
app = Flask(__name__)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://mdownload:mdownload@192.168.86.198:3306/Downloads'
db = SQLAlchemy(app)
class downloaderSettings(db.Model):
ID = db.Column(db.Integer, primary_key=True)
path = db.Column(db.Text)
class manga(db.Model):
manga_id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Text)
url = db.Column(db.Text)
url_flag = db.Column(db.Text)
view_format = db.Column(db.Integer)
unknown_value = db.Column(db.Integer)
active = db.Column(db.Boolean, default=1)
class url_metadata(db.Model):
url_id = db.Column(db.Integer, primary_key=True)
source_name = db.Column(db.VARCHAR(length=10000))
flag = db.Column(db.Text)
base_url = db.Column(db.VARCHAR(length=10000))
@app.route('/download', methods=['GET'])
def download():
# updated = []
# db_URI = 'mysql+pymysql://mdownload:mdownload@192.168.86.198:3306/Downloads'
# query = db.select([manga.columns.url, url_metadata.columns.base_url, manga.columns.url_flag])
# result = db.session.query(manga.base_url, manga.name, manga.url, url_metadata.base_url, url_metadata.flag).join(manga.url_flag == url_metadata.flag).all()
result = db.session.query(manga, url_metadata).filter_by(active=1).join(url_metadata, manga.url_flag==url_metadata.flag).all()
for each in result:
execute = """manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N"""
# print("""manga-py """ + each.url_metadata.base_url+each.manga.url + """ -n \"""" + each.manga.name + """\" -d \"""" + PATH + """\" -z -N""")
os.system(execute)
# updated.append(each.manga.name)
return jsonify(updated='done')
@app.route('/upload', methods=['GET'])
def upload_jason():
url = []
base = []
name = []
y = 0
z = 0
added = []
with open(PATH+"/tach.json", "r") as tf:
# with open("tach.json", "r") as tf:
data = json.load(tf)
for x in data["mangas"]:
# Manga Name
name.append(data["mangas"][y]["manga"][1])
# Mange URL
url.append(data["mangas"][y]["manga"][0])
# Mange Base URL
base.append(data["mangas"][y]["manga"][2])
y=y+1
for each in name:
# print('start')
if not manga.query.filter_by(name=name[z]).first():
new_manga={}
query = manga(name=name[z], url=url[z], url_flag=str(base[z]), view_format=0, unknown_value=0)
new_manga['title'] = name[z]
added.append(new_manga)
db.session.add(query)
z = z + 1
db.session.commit()
return jsonify(added=added)
if __name__ == "__main__":
app.run(host='0.0.0.0', debug=True)