Add ability to reset Imgur posters from info page

This commit is contained in:
JonnyWong16 2016-03-01 23:29:49 -08:00
commit 98b4000bc0
4 changed files with 90 additions and 5 deletions

View file

@ -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()

View file

@ -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 #####