mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-07 05:31:15 -07:00
Don't retrieve metadata for recently added before it is available
* Fixes #1392
This commit is contained in:
parent
0ff2fd91d5
commit
1615a73da9
2 changed files with 64 additions and 56 deletions
|
@ -27,6 +27,7 @@ import pytz
|
|||
import plexpy
|
||||
if plexpy.PYTHON2:
|
||||
import activity_processor
|
||||
import common
|
||||
import datafactory
|
||||
import helpers
|
||||
import logger
|
||||
|
@ -34,6 +35,7 @@ if plexpy.PYTHON2:
|
|||
import pmsconnect
|
||||
else:
|
||||
from plexpy import activity_processor
|
||||
from plexpy import common
|
||||
from plexpy import datafactory
|
||||
from plexpy import helpers
|
||||
from plexpy import logger
|
||||
|
@ -415,18 +417,12 @@ class TimelineHandler(object):
|
|||
global RECENTLY_ADDED_QUEUE
|
||||
|
||||
rating_key = self.get_rating_key()
|
||||
|
||||
media_types = {1: 'movie',
|
||||
2: 'show',
|
||||
3: 'season',
|
||||
4: 'episode',
|
||||
8: 'artist',
|
||||
9: 'album',
|
||||
10: 'track'}
|
||||
parent_rating_key = self.timeline.get('parentItemID')
|
||||
grandparent_rating_key = self.timeline.get('rootItemID')
|
||||
|
||||
identifier = self.timeline.get('identifier')
|
||||
state_type = self.timeline.get('state')
|
||||
media_type = media_types.get(self.timeline.get('type'))
|
||||
media_type = common.MEDIA_TYPE_VALUES.get(self.timeline.get('type'))
|
||||
section_id = helpers.cast_to_int(self.timeline.get('sectionID', 0))
|
||||
title = self.timeline.get('title', 'Unknown')
|
||||
metadata_state = self.timeline.get('metadataState')
|
||||
|
@ -438,18 +434,9 @@ class TimelineHandler(object):
|
|||
return
|
||||
|
||||
# Add a new media item to the recently added queue
|
||||
if media_type and section_id > 0 and \
|
||||
((state_type == 0 and metadata_state == 'created')): # or \
|
||||
#(plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_UPGRADE and state_type in (1, 5) and \
|
||||
#media_state == 'analyzing' and queue_size is None)):
|
||||
if media_type and section_id > 0 and state_type == 0 and metadata_state == 'created':
|
||||
|
||||
if media_type in ('episode', 'track'):
|
||||
metadata = self.get_metadata()
|
||||
if metadata:
|
||||
grandparent_title = metadata['grandparent_title']
|
||||
grandparent_rating_key = int(metadata['grandparent_rating_key'])
|
||||
parent_rating_key = int(metadata['parent_rating_key'])
|
||||
|
||||
grandparent_set = RECENTLY_ADDED_QUEUE.get(grandparent_rating_key, set())
|
||||
grandparent_set.add(parent_rating_key)
|
||||
RECENTLY_ADDED_QUEUE[grandparent_rating_key] = grandparent_set
|
||||
|
@ -458,47 +445,45 @@ class TimelineHandler(object):
|
|||
parent_set.add(rating_key)
|
||||
RECENTLY_ADDED_QUEUE[parent_rating_key] = parent_set
|
||||
|
||||
RECENTLY_ADDED_QUEUE[rating_key] = set([grandparent_rating_key])
|
||||
RECENTLY_ADDED_QUEUE[rating_key] = {grandparent_rating_key}
|
||||
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s, grandparent %s) added to recently added queue."
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s, grandparent %s) "
|
||||
"added to recently added queue."
|
||||
% (title, str(rating_key), str(grandparent_rating_key)))
|
||||
|
||||
# Schedule a callback to clear the recently added queue
|
||||
schedule_callback('rating_key-{}'.format(grandparent_rating_key),
|
||||
func=clear_recently_added_queue,
|
||||
args=[grandparent_rating_key, grandparent_title],
|
||||
args=[grandparent_rating_key],
|
||||
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
|
||||
|
||||
elif media_type in ('season', 'album'):
|
||||
metadata = self.get_metadata()
|
||||
if metadata:
|
||||
parent_title = metadata['parent_title']
|
||||
parent_rating_key = int(metadata['parent_rating_key'])
|
||||
|
||||
parent_set = RECENTLY_ADDED_QUEUE.get(parent_rating_key, set())
|
||||
parent_set.add(rating_key)
|
||||
RECENTLY_ADDED_QUEUE[parent_rating_key] = parent_set
|
||||
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s , parent %s) added to recently added queue."
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s , parent %s) "
|
||||
"added to recently added queue."
|
||||
% (title, str(rating_key), str(parent_rating_key)))
|
||||
|
||||
# Schedule a callback to clear the recently added queue
|
||||
schedule_callback('rating_key-{}'.format(parent_rating_key),
|
||||
func=clear_recently_added_queue,
|
||||
args=[parent_rating_key, parent_title],
|
||||
args=[parent_rating_key],
|
||||
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
|
||||
|
||||
else:
|
||||
elif media_type in ('movie', 'show', 'artist'):
|
||||
queue_set = RECENTLY_ADDED_QUEUE.get(rating_key, set())
|
||||
RECENTLY_ADDED_QUEUE[rating_key] = queue_set
|
||||
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s) added to recently added queue."
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s) "
|
||||
"added to recently added queue."
|
||||
% (title, str(rating_key)))
|
||||
|
||||
# Schedule a callback to clear the recently added queue
|
||||
schedule_callback('rating_key-{}'.format(rating_key),
|
||||
func=clear_recently_added_queue,
|
||||
args=[rating_key, title],
|
||||
args=[rating_key],
|
||||
seconds=plexpy.CONFIG.NOTIFY_RECENTLY_ADDED_DELAY)
|
||||
|
||||
# A movie, show, or artist is done processing
|
||||
|
@ -506,13 +491,15 @@ class TimelineHandler(object):
|
|||
state_type == 5 and metadata_state is None and queue_size is None and \
|
||||
rating_key in RECENTLY_ADDED_QUEUE:
|
||||
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s) done processing metadata."
|
||||
logger.debug("Tautulli TimelineHandler :: Library item '%s' (%s) "
|
||||
"done processing metadata."
|
||||
% (title, str(rating_key)))
|
||||
|
||||
# An item was deleted, make sure it is removed from the queue
|
||||
elif state_type == 9 and metadata_state == 'deleted':
|
||||
if rating_key in RECENTLY_ADDED_QUEUE and not RECENTLY_ADDED_QUEUE[rating_key]:
|
||||
logger.debug("Tautulli TimelineHandler :: Library item %s removed from recently added queue."
|
||||
logger.debug("Tautulli TimelineHandler :: Library item %s "
|
||||
"removed from recently added queue."
|
||||
% str(rating_key))
|
||||
del_keys(rating_key)
|
||||
|
||||
|
@ -646,7 +633,7 @@ def force_stop_stream(session_key, title, user):
|
|||
delete_metadata_cache(session_key)
|
||||
|
||||
|
||||
def clear_recently_added_queue(rating_key, title):
|
||||
def clear_recently_added_queue(rating_key):
|
||||
child_keys = RECENTLY_ADDED_QUEUE[rating_key]
|
||||
|
||||
if plexpy.CONFIG.NOTIFY_GROUP_RECENTLY_ADDED_GRANDPARENT and len(child_keys) > 1:
|
||||
|
|
|
@ -80,6 +80,27 @@ MEDIA_TYPE_HEADERS = {
|
|||
'photo': 'Photos'
|
||||
}
|
||||
|
||||
MEDIA_TYPE_VALUES = {
|
||||
1: 'movie',
|
||||
2: 'show',
|
||||
3: 'season',
|
||||
4: 'episode',
|
||||
5: 'trailer',
|
||||
6: 'comic',
|
||||
7: 'person',
|
||||
8: 'artist',
|
||||
9: 'album',
|
||||
10: 'track',
|
||||
11: 'picture',
|
||||
12: 'clip',
|
||||
13: 'photo',
|
||||
14: 'photoalbum',
|
||||
15: 'playlist',
|
||||
16: 'playlistFolder',
|
||||
18: 'collection',
|
||||
42: 'optimizedVersion'
|
||||
}
|
||||
|
||||
PLATFORM_NAME_OVERRIDES = {
|
||||
'Konvergo': 'Plex Media Player',
|
||||
'Mystery 3': 'Playstation 3',
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue