def finish(self): if self.current.kwargs.get('section'): # Collection cleaning disabled for individual syncs return # Increment progress steps self.current.progress.group(Movies, 'missing:movies').add(len(self.current.pending['movies'].keys)) # Iterate over movies for pk in list(self.current.pending['movies'].keys): # Increment one step self.current.progress.group(Movies, 'missing:movies').step() # Iterate over data handlers triggered = False for data in self.get_data(SyncMedia.Movies): if data not in [SyncData.Collection]: continue # Retrieve movie t_movie = self.trakt[(SyncMedia.Movies, data)].get(pk) if not t_movie: continue log.debug('Found movie missing from plex: %r [data: %r]', pk, SyncData.title(data)) # Trigger handler self.execute_handlers( self.mode, SyncMedia.Movies, data, key=None, guid=Guid.construct(*pk, matched=True), p_item=None, t_item=t_movie ) # Mark triggered triggered = True # Check if action was triggered if not triggered: continue # Remove movie from `pending` set self.current.pending['movies'].keys.remove(pk) # Stop progress group self.current.progress.group(Movies, 'missing:movies').stop() # Report pending movies (no actions triggered) self.log_pending( log, 'Unable to find %d movie(s) in Plex, list has been saved to: %s', self.current.account, 'movies', self.current.pending['movies'].keys )
def process_missing_shows(self): if self.current.kwargs.get('section'): # Collection cleaning disabled for individual syncs return # Increment progress steps self.current.progress.group(Shows, 'missing:shows').add(len(self.p_shows_pending)) # Iterate over trakt shows (that aren't in plex) for pk in list(self.p_shows_pending): # Increment one step self.current.progress.group(Shows, 'missing:shows').step() # Iterate over data handlers triggered = False for data in self.get_data(SyncMedia.Shows): if data not in [SyncData.Collection]: continue # Retrieve show t_show = self.trakt[(SyncMedia.Shows, data)].get(pk) if not t_show: continue log.debug('Found show missing from plex: %r [data: %r]', pk, SyncData.title(data)) # Trigger handler self.execute_handlers( SyncMedia.Shows, data, key=None, guid=Guid.construct(*pk), p_item=None, t_item=t_show ) # Mark triggered triggered = True # Check if action was triggered if not triggered: continue # Remove movie from `pending` set self.p_shows_pending.remove(pk) # Stop progress group self.current.progress.group(Shows, 'missing:shows').stop() self.log_pending('Unable to find %d show(s) in Plex\n%s', self.p_shows_pending)
def process_missing_shows(self): if self.current.kwargs.get('section'): # Collection cleaning disabled for individual syncs return # Increment progress steps self.current.progress.group(Shows, 'missing:shows').add( len(self.p_shows_pending)) # Iterate over trakt shows (that aren't in plex) for pk in list(self.p_shows_pending): # Increment one step self.current.progress.group(Shows, 'missing:shows').step() # Iterate over data handlers triggered = False for data in self.get_data(SyncMedia.Shows): if data not in [SyncData.Collection]: continue # Retrieve show t_show = self.trakt[(SyncMedia.Shows, data)].get(pk) if not t_show: continue log.debug('Found show missing from plex: %r [data: %r]', pk, SyncData.title(data)) # Trigger handler self.execute_handlers(SyncMedia.Shows, data, key=None, guid=Guid.construct(*pk), p_item=None, t_item=t_show) # Mark triggered triggered = True # Check if action was triggered if not triggered: continue # Remove movie from `pending` set self.p_shows_pending.remove(pk) # Stop progress group self.current.progress.group(Shows, 'missing:shows').stop() self.log_pending('Unable to find %d show(s) in Plex\n%s', self.p_shows_pending)
def finish_episodes(self): if self.current.kwargs.get('section'): # Collection cleaning disabled for individual syncs return # Increment progress steps self.current.progress.group(Shows, 'missing:episodes').add( len(self.current.pending['episodes'].keys)) # Iterate over trakt episodes (that aren't in plex) for pk, episodes in [ (p, list(e)) for (p, e) in self.current.pending['episodes'].keys.items() ]: # Increment one step self.current.progress.group(Shows, 'missing:episodes').step() # Iterate over trakt episodes (that aren't in plex) for identifier in episodes: # Iterate over data handlers season_num, episode_num = identifier triggered = False for data in self.get_data(SyncMedia.Episodes): if data not in [SyncData.Collection]: continue # Retrieve episode t_show, t_season, t_episode = self.t_objects( self.trakt[(SyncMedia.Episodes, data)], pk, season_num, episode_num) if not t_episode: continue log.debug( 'Found episode missing from plex: %r - %r [data: %r]', pk, identifier, SyncData.title(data)) # Trigger handler self.execute_handlers(self.mode, SyncMedia.Episodes, data, key=None, identifier=identifier, guid=Guid.construct(*pk, matched=True), p_show=None, p_item=None, t_show=t_show, t_item=t_episode) # Mark triggered triggered = True # Check if action was triggered if not triggered: continue # Remove movie from `pending` set self.current.pending['episodes'].keys[pk].remove(identifier) # Stop progress group self.current.progress.group(Shows, 'missing:episodes').stop() self.log_pending( log, 'Unable to find %d episode(s) in Plex, list has been saved to: %s', self.current.account, 'episodes', self.current.pending['episodes'].keys)
def process_missing_episodes(self): if self.current.kwargs.get('section'): # Collection cleaning disabled for individual syncs return # Increment progress steps self.current.progress.group(Shows, 'missing:episodes').add(len(self.p_episodes_pending)) # Iterate over trakt episodes (that aren't in plex) for pk, episodes in [(p, list(e)) for (p, e) in self.p_episodes_pending.items()]: # Increment one step self.current.progress.group(Shows, 'missing:episodes').step() # Iterate over trakt episodes (that aren't in plex) for identifier in episodes: # Iterate over data handlers season_num, episode_num = identifier triggered = False for data in self.get_data(SyncMedia.Episodes): if data not in [SyncData.Collection]: continue # Retrieve episode t_show, t_season, t_episode = self.t_objects( self.trakt[(SyncMedia.Episodes, data)], pk, season_num, episode_num ) if not t_episode: continue log.debug('Found episode missing from plex: %r - %r [data: %r]', pk, identifier, SyncData.title(data)) # Trigger handler self.execute_handlers( SyncMedia.Episodes, data, key=None, identifier=identifier, guid=Guid.construct(*pk), p_show=None, p_item=None, t_show=t_show, t_item=t_episode ) # Mark triggered triggered = True # Check if action was triggered if not triggered: continue # Remove movie from `pending` set self.p_episodes_pending[pk].remove(identifier) # Stop progress group self.current.progress.group(Shows, 'missing:episodes').stop() self.log_pending('Unable to find %d episode(s) in Plex\n%s', self.p_episodes_pending)