from functools import wraps import requests import atexit from flask import Flask, render_template, request, jsonify, escape from flask_autoindex import AutoIndex import giphypop from music_backend import sched from deezer import deezer_search, start_deezer_keepalive, stop_deezer_keepalive, is_deezer_session_valid from configuration import config app = Flask(__name__) auto_index = AutoIndex(app, config["download_dirs"]["base"], add_url_rules=False) auto_index.add_icon_rule('music.png', ext='m3u8') giphy = giphypop.Giphy() # user input validation def validate_schema(*parameters_to_check): def decorator(f): @wraps(f) def wrapper(*args, **kw): j = request.get_json(force=True) print("User request: {} with {}".format(request.path, j)) # check if all parameters are supplied by the user if set(j.keys()) != set(parameters_to_check): return jsonify({ "error":
cur = conn.cursor() cur.execute(sql, comic) conn.commit() def init_db(): sql = '''CREATE TABLE comics(filename TEXT,status INT,page INT)''' conn = create_connection(db_file) cur = conn.cursor() cur.execute(sql) conn.commit() ppath = "/comics/" # update your own parent directory here files_index = AutoIndex(app, ppath, add_url_rules=False) files_index.add_icon_rule('contrast.png', rule=is_comic_reading) files_index.add_icon_rule('tick.png', rule=is_comic_read) db_file = r"/usr/src/app/sqlite.db" @app.route('/') @app.route('/index') def index(): if not os.path.isfile(db_file): init_db() # TODO : List currently reading comics return render_template('index.html', comics=get_reading_comics()) @app.route('/update_path') def update():