mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-11 07:46:07 -07:00
Add update metadata feature
* Use rating_key instead of item_id for history info
This commit is contained in:
parent
09aac22909
commit
771885f27f
16 changed files with 448 additions and 367 deletions
|
@ -845,13 +845,14 @@ class WebInterface(object):
|
|||
return None
|
||||
|
||||
@cherrypy.expose
|
||||
def info(self, library_id=None, item_id=None, source=None, query=None, **kwargs):
|
||||
def info(self, library_id=None, rating_key=None, source=None, **kwargs):
|
||||
# Make sure our library sections are up to date.
|
||||
data_factory = datafactory.DataFactory()
|
||||
data_factory.update_library_sections()
|
||||
# temporary until I find a beter place to put this
|
||||
#data_factory.update_library_ids()
|
||||
|
||||
metadata = None
|
||||
query_string = query
|
||||
|
||||
config = {
|
||||
"pms_identifier": plexpy.CONFIG.PMS_IDENTIFIER,
|
||||
|
@ -860,7 +861,7 @@ class WebInterface(object):
|
|||
|
||||
if source == 'history':
|
||||
data_factory = datafactory.DataFactory()
|
||||
metadata = data_factory.get_metadata_details(row_id=item_id)
|
||||
metadata = data_factory.get_metadata_details(rating_key=rating_key)
|
||||
elif library_id:
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
result = pms_connect.get_library_metadata_details(library_id=library_id)
|
||||
|
@ -868,20 +869,51 @@ class WebInterface(object):
|
|||
metadata = result['metadata']
|
||||
else:
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
result = pms_connect.get_metadata_details(rating_key=item_id)
|
||||
result = pms_connect.get_metadata_details(rating_key=rating_key)
|
||||
if result:
|
||||
metadata = result['metadata']
|
||||
else:
|
||||
data_factory = datafactory.DataFactory()
|
||||
query = data_factory.get_search_query(rating_key=item_id)
|
||||
if query_string:
|
||||
query['query_string'] = query_string
|
||||
|
||||
|
||||
if metadata:
|
||||
return serve_template(templatename="info.html", data=metadata, title="Info", config=config)
|
||||
else:
|
||||
return self.update_metadata(rating_key)
|
||||
#raise cherrypy.InternalRedirect("/update_metadata?rating_key=" + rating_key)
|
||||
|
||||
@cherrypy.expose
|
||||
def update_metadata(self, rating_key=None, query=None, **kwargs):
|
||||
|
||||
query_string = query
|
||||
|
||||
data_factory = datafactory.DataFactory()
|
||||
query = data_factory.get_search_query(rating_key=rating_key)
|
||||
if query_string:
|
||||
query['query_string'] = query_string
|
||||
|
||||
if query:
|
||||
return serve_template(templatename="update_metadata.html", query=query, title="Info")
|
||||
else:
|
||||
logger.warn('Unable to retrieve data.')
|
||||
return serve_template(templatename="info.html", data=None, query=query, title="Info")
|
||||
return serve_template(templatename="update_metadata.html", query=query, title="Info")
|
||||
|
||||
@cherrypy.expose
|
||||
def update_metadata_details(self, old_rating_key, new_rating_key, media_type, **kwargs):
|
||||
data_factory = datafactory.DataFactory()
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
|
||||
if new_rating_key:
|
||||
old_key_list = data_factory.get_rating_keys_list(rating_key=old_rating_key, media_type=media_type)
|
||||
new_key_list = pms_connect.get_rating_keys_list(rating_key=new_rating_key, media_type=media_type)
|
||||
|
||||
result = data_factory.update_metadata(old_key_list=old_key_list,
|
||||
new_key_list=new_key_list,
|
||||
media_type=media_type)
|
||||
|
||||
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'})
|
||||
|
||||
@cherrypy.expose
|
||||
def get_user_recently_watched(self, user=None, user_id=None, limit='10', **kwargs):
|
||||
|
@ -1594,26 +1626,6 @@ class WebInterface(object):
|
|||
else:
|
||||
logger.warn('Unable to retrieve data.')
|
||||
|
||||
@cherrypy.expose
|
||||
def get_map_rating_keys(self, old_rating_key, new_rating_key, media_type, **kwargs):
|
||||
|
||||
data_factory = datafactory.DataFactory()
|
||||
pms_connect = pmsconnect.PmsConnect()
|
||||
|
||||
if new_rating_key:
|
||||
old_key_list = data_factory.get_rating_keys_list(rating_key=old_rating_key, media_type=media_type)
|
||||
new_key_list = pms_connect.get_rating_keys_list(rating_key=new_rating_key, media_type=media_type)
|
||||
|
||||
result = data_factory.update_rating_key(old_key_list=old_key_list,
|
||||
new_key_list=new_key_list,
|
||||
media_type=media_type)
|
||||
|
||||
if result:
|
||||
cherrypy.response.headers['Content-type'] = 'application/json'
|
||||
return json.dumps(result)
|
||||
else:
|
||||
logger.warn('Unable to retrieve data.')
|
||||
|
||||
@cherrypy.expose
|
||||
def discover(self, token=''):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue