Ejemplo n.º 1
0
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":
Ejemplo n.º 2
0
    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():