+ % else:
+
+ % endif
+
+
+ % endif
 Select rows to delete. Data is deleted upon exiting delete mode.
@@ -519,10 +535,33 @@ DOCUMENTATION :: END
$("#runtime").html(millisecondsToMinutes($("#runtime").text(), true));
$('div.art-face').animate({ opacity: 0.2 }, { duration: 1000 });
-% if source == 'history':
+% if data.get('poster_url'):
% endif
% endif
diff --git a/plexpy/datafactory.py b/plexpy/datafactory.py
index 1dc5a1a4..7e54a59c 100644
--- a/plexpy/datafactory.py
+++ b/plexpy/datafactory.py
@@ -860,16 +860,28 @@ class DataFactory(object):
return ip_address
- def get_poster_url(self, rating_key=''):
+ def get_poster_url(self, rating_key='', metadata=None):
monitor_db = database.MonitorDatabase()
poster_url = ''
+ poster_key = ''
if rating_key:
+ poster_key = rating_key
+ elif metadata:
+ if metadata['media_type'] == 'movie' or metadata['media_type'] == 'show' or \
+ metadata['media_type'] == 'artist' or metadata['media_type'] == 'album':
+ poster_key = metadata['rating_key']
+ elif metadata['media_type'] == 'episode':
+ poster_key = metadata['grandparent_rating_key']
+ elif metadata['media_type'] == 'season' or metadata['media_type'] == 'track':
+ poster_key = metadata['parent_rating_key']
+
+ if poster_key:
try:
query = 'SELECT id, poster_url FROM notify_log ' \
'WHERE rating_key = %d OR parent_rating_key = %d OR grandparent_rating_key = %d ' \
- 'ORDER BY id DESC LIMIT 1' % (int(rating_key), int(rating_key), int(rating_key))
+ 'ORDER BY id DESC LIMIT 1' % (int(poster_key), int(poster_key), int(poster_key))
result = monitor_db.select(query)
except Exception as e:
logger.warn(u"PlexPy DataFactory :: Unable to execute database query for get_poster_url: %s." % e)
@@ -882,6 +894,16 @@ class DataFactory(object):
return poster_url
+ def delete_poster_url(self, poster_url=''):
+ monitor_db = database.MonitorDatabase()
+
+ if poster_url:
+ logger.info(u"PlexPy DataFactory :: Deleting poster_url %s from the notify log database." % poster_url)
+ monitor_db.upsert('notify_log', {'poster_url': None}, {'poster_url': poster_url})
+ return 'Deleted poster_url %s.' % poster_url
+ else:
+ return 'Unable to delete poster_url.'
+
def get_search_query(self, rating_key=''):
monitor_db = database.MonitorDatabase()
diff --git a/plexpy/webserve.py b/plexpy/webserve.py
index 4cf0ca23..8c8a4c65 100644
--- a/plexpy/webserve.py
+++ b/plexpy/webserve.py
@@ -1637,11 +1637,16 @@ class WebInterface(object):
if source == 'history':
data_factory = datafactory.DataFactory()
metadata = data_factory.get_metadata_details(rating_key=rating_key)
+ poster_url = data_factory.get_poster_url(metadata=metadata)
+ metadata['poster_url'] = poster_url
else:
pms_connect = pmsconnect.PmsConnect()
result = pms_connect.get_metadata_details(rating_key=rating_key, get_media_info=True)
if result:
metadata = result['metadata']
+ data_factory = datafactory.DataFactory()
+ poster_url = data_factory.get_poster_url(metadata=metadata)
+ metadata['poster_url'] = poster_url
if metadata:
return serve_template(templatename="info.html", data=metadata, title="Info", config=config, source=source)
@@ -1688,6 +1693,22 @@ class WebInterface(object):
return None
+ @cherrypy.expose
+ def delete_poster_url(self, poster_url=''):
+
+ if poster_url:
+ data_factory = datafactory.DataFactory()
+ result = data_factory.delete_poster_url(poster_url=poster_url)
+ else:
+ result = None
+
+ if result:
+ cherrypy.response.headers['Content-type'] = 'application/json'
+ return json.dumps({'message': result})
+ else:
+ cherrypy.response.headers['Content-type'] = 'application/json'
+ return json.dumps({'message': 'no data received'})
+
##### Search #####