diff --git a/video_metadata/schema.sql b/video_metadata/schema.sql
index 51bf6f9..74c76f7 100644
--- a/video_metadata/schema.sql
+++ b/video_metadata/schema.sql
@@ -41,6 +41,13 @@ CREATE TABLE movie_query_mapping(
foreign key(movie_id) references movie_details(movie_id)
);
+DROP TABLE IF EXISTS movie_paths;
+CREATE TABLE movie_paths(
+ movie_id int not null,
+ movie_path text unique not null,
+ foreign key(movie_id) references movie_details(movie_id)
+);
+
DROP TABLE IF EXISTS movie_genres;
CREATE TABLE movie_genres(
genre_id integer primary key not null,
diff --git a/video_metadata/templates/file_listing/index.html b/video_metadata/templates/file_listing/index.html
index b6a94fe..1128a9f 100644
--- a/video_metadata/templates/file_listing/index.html
+++ b/video_metadata/templates/file_listing/index.html
@@ -11,10 +11,8 @@
{% if path.is_dir %}
{{ path.base_name }}
{% else %}
- {{
- path.base_name }}
+
+ {{ path.base_name }}
{% endif %}
{% if path.contents %}
{{ loop(path.contents) }}
diff --git a/video_metadata/templates/index.html b/video_metadata/templates/index.html
index e8351d9..4ea7118 100644
--- a/video_metadata/templates/index.html
+++ b/video_metadata/templates/index.html
@@ -2,6 +2,7 @@
{% block header %}
{% block title %}INDEX PAGE!{% endblock %}
+
{% endblock %}
{% block content %}
diff --git a/video_metadata/templates/tmdb/create_mapping.html.jinja b/video_metadata/templates/tmdb/create_mapping.html.jinja
new file mode 100644
index 0000000..e723590
--- /dev/null
+++ b/video_metadata/templates/tmdb/create_mapping.html.jinja
@@ -0,0 +1,15 @@
+{% extends 'base.html' %}
+
+{% block header %}
+ {% block title %}Set Mapping{% endblock %}
+{% endblock %}
+
+{% block content %}
+ {% if success %}
+ Successfully added file mapping for {{ rel_path }}
+ {% endif %}
+
+
+
movie_id: {{ movie_id }}, rel_path: {{ rel_path }}
+
+{% endblock %}
diff --git a/video_metadata/templates/tmdb/list_movie_test.html.jinja b/video_metadata/templates/tmdb/list_movie_test.html.jinja
new file mode 100644
index 0000000..6bca59d
--- /dev/null
+++ b/video_metadata/templates/tmdb/list_movie_test.html.jinja
@@ -0,0 +1,26 @@
+{% extends 'base.html' %}
+
+{% block header %}
+ {% block title %}movie list test{% endblock %}
+{% endblock %}
+
+{% block content %}
+
+ {% for r in view_results %}
+
+
+
+ - Relative Path: {{ r.rel_path }}
+ - Release Date: {{ r.release_date }}
+ - Description:
+
{{ r.overview }}
+
+
+
+ {% endfor %}
+
+
+
+{% endblock %}
diff --git a/video_metadata/templates/tmdb/query.html b/video_metadata/templates/tmdb/query.html
index af011b1..c5f0210 100644
--- a/video_metadata/templates/tmdb/query.html
+++ b/video_metadata/templates/tmdb/query.html
@@ -11,14 +11,17 @@
- {% endif %}
-
+ {% else %}
Query Results
+
Choose the description that matches the file
+
{{ rel_path }}
{% for r in view_data %}
+ - Click here to select
- Release Date: {{ r.release_date }}
- Description:
{{ r.overview }}
@@ -27,6 +30,7 @@
{% endfor %}
+ {% endif %}
Debug Info
diff --git a/video_metadata/views/tmdb.py b/video_metadata/views/tmdb.py
index 0303315..d766d36 100644
--- a/video_metadata/views/tmdb.py
+++ b/video_metadata/views/tmdb.py
@@ -78,6 +78,26 @@ class view_result(object):
####################
# flask routes
+@bp.route('/list_movie_test')
+def list_movie_test():
+ conn = db.get_db()
+ cur = conn.cursor()
+ view_results = []
+ query = '''SELECT
+ movie_details.*, movie_paths.movie_path
+ FROM
+ movie_details
+ JOIN movie_paths ON movie_paths.movie_id=movie_details.movie_id'''
+
+ # TODO: should probably loop on movie_id, and add a list of movie_paths because
+ # there can be multiple paths associated with a movie_id
+ for row in cur.execute(query):
+ vr = buildViewResult(row)
+ vr.rel_path = row['movie_path']
+ view_results.append(vr)
+
+ return render_template('tmdb/list_movie_test.html.jinja', view_results = view_results)
+
@bp.route('/query_movie', methods=['GET', 'POST'])
def query_movie():
errors = []
@@ -95,6 +115,8 @@ def query_movie():
query.raw_query_str = request.args['query']
query.rel_path = request.args['rel_path']
+ # TODO: if query_obj.query_type is still 'UNKNOWN' from parseQueryStr(), make queries to
+ # both tmdb endpoints (movie and tv)
if query.raw_query_str and parseQueryStr(query):
if isQueryCached(query.parsed_query_str):
view_results = makeLocalQuery(query)
@@ -126,6 +148,7 @@ def query_movie():
return render_template(
'tmdb/query.html',
view_data = view_results,
+ rel_path = query.rel_path,
debug_str = '{} \n {} \n {} \n'.format(
yaml.dump(query, indent=4),
yaml.dump(response, indent=4),
@@ -133,6 +156,36 @@ def query_movie():
)
)
+@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 = []
+
+ if not movie_id or not rel_path:
+ errors.append('invalid parameter')
+ else:
+ conn = db.get_db()
+ cur = conn.cursor()
+ try:
+ cur.execute('INSERT INTO movie_paths(movie_id, movie_path) VALUES(?, ?)',
+ (movie_id, rel_path))
+ except DatabaseError as e:
+ errors.append(e)
+
+ if len(errors) == 0:
+ conn.commit()
+
+ if errors:
+ flash(errors)
+
+ return render_template('tmdb/create_mapping.html.jinja',
+ movie_id = movie_id,
+ rel_path = rel_path,
+ success = (len(errors) == 0)
+ )
+
###################
# helpers
@@ -190,20 +243,23 @@ def makeLocalQuery(query_obj):
mq.query = ?'''
for row in cur.execute(fancy_query, (query_obj.parsed_query_str, )):
- vr = view_result()
- vr.id = row['movie_id']
- vr.title = row['title']
- vr.overview = row['overview']
- vr.release_date = row['release_date']
- vr.original_language = row['original_language']
- vr.tmdb_link = "{}{}{}".format(TMDB_MOVIE_LINK_URL, '/', vr.id)
+ results.append(buildViewResult(row))
- if row['poster_path'] != None:
- vr.poster_path = row['poster_path']
+ return results
- results.append(vr)
+def buildViewResult(db_row):
+ vr = view_result()
+ vr.id = db_row['movie_id']
+ vr.title = db_row['title']
+ vr.overview = db_row['overview']
+ vr.release_date = db_row['release_date']
+ vr.original_language = db_row['original_language']
+ vr.tmdb_link = "{}{}{}".format(TMDB_MOVIE_LINK_URL, '/', vr.id)
- return results
+ if db_row['poster_path'] != None:
+ vr.poster_path = db_row['poster_path']
+
+ return vr
def makeTMDBQuery(query_obj, response_obj):
if query_obj.query_type == query_type.MOVIE: