diff --git a/local_config.py b/local_config.py new file mode 100644 index 0000000..23e5369 --- /dev/null +++ b/local_config.py @@ -0,0 +1,19 @@ + +# NOTE: copy this file to the instance folder and fill in the appropriate values + +# https://flask.palletsprojects.com/en/1.1.x/config/#SECRET_KEY +SECRET_KEY = b'\x00' + +# https://flask.palletsprojects.com/en/1.1.x/config/#DEBUG +DEBUG = False + +# the absolute filesystem path to use as your video directory eg) '/var/videos' +MOVIE_DIR = '' + +# create an account at tmdb and follow the instructions to find your key +# https://developers.themoviedb.org/3/getting-started/introduction +TMDB_API_KEY = '' + +# location of your video files relative to your web server's root eg) '/video' +VIDEO_URL_PREFIX = '' + diff --git a/video_metadata/__init__.py b/video_metadata/__init__.py index af93c2f..6a41e43 100644 --- a/video_metadata/__init__.py +++ b/video_metadata/__init__.py @@ -1,19 +1,20 @@ import json import os +from pprint import pprint from flask import Flask, render_template +class default_config(object): + def __init__(self, app): + self.DATABASE = os.path.join(app.instance_path, 'video_metadata.sqlite') + self.MOVIE_DIR = os.path.join(app.instance_path, 'movie_dir') + self.TEMPLATES_AUTO_RELOAD = True + + def create_app(): - # create and configure the app + # create the app app = Flask(__name__, instance_relative_config=True) - app.config.from_mapping( - SECRET_KEY = 'dev', - DATABASE = os.path.join(app.instance_path, 'video_metadata.sqlite'), - MOVIE_DIR = os.path.join(app.instance_path, 'movie_dir'), - TMDB_API_KEY = parse_API_key(app, os.path.join(app.instance_path, 'API_KEY.json')), - TEMPLATES_AUTO_RELOAD = True, - ) # ensure the instance folder exists try: @@ -21,6 +22,13 @@ def create_app(): except OSError: pass + # load default config + app.config.from_object(default_config(app)) + + # add local config changes + app.config.from_pyfile('local_config.py') + pprint(app.config) + from . import db db.init_app(app) @@ -38,15 +46,3 @@ def create_app(): def index(): return render_template('index.html') -def parse_API_key(app, path): - try: - fd = open(path) - except OSError as e: - app.logger.error('error opening path: %s, %s', path, e.strerror) - return '' - - j = json.load(fd) - fd.close() - - return j['key'] - diff --git a/video_metadata/templates/tmdb/list_movie_test.html.jinja b/video_metadata/templates/tmdb/list_movie_test.html.jinja index 6bca59d..566d7cb 100644 --- a/video_metadata/templates/tmdb/list_movie_test.html.jinja +++ b/video_metadata/templates/tmdb/list_movie_test.html.jinja @@ -10,7 +10,7 @@
{{ r.overview }}
diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py index d766d36..076200f 100644 --- a/video_metadata/views/tmdb.py +++ b/video_metadata/views/tmdb.py @@ -96,7 +96,10 @@ def list_movie_test(): vr.rel_path = row['movie_path'] view_results.append(vr) - return render_template('tmdb/list_movie_test.html.jinja', view_results = view_results) + return render_template('tmdb/list_movie_test.html.jinja', + view_results = view_results, + url_prefix = current_app.config['VIDEO_URL_PREFIX'] + ) @bp.route('/query_movie', methods=['GET', 'POST']) def query_movie(): @@ -156,9 +159,9 @@ def query_movie(): ) ) +# TODO: add option for tv shows @bp.route('/create_mapping') def create_mapping(): - # TODO: add option for tv shows movie_id = request.args.get('movie_id') rel_path = request.args.get('rel_path') errors = []