def search_all(): ''' Searches for all movies Should never run in the main thread. Automatically runs as scheduled task. Searches only for movies that are Wanted, Found, or Finished -- if inside user-set date range. For each movie: If backlog status is 0: Executes search() Else: Parses rss feeds for matches If autograb is enabled calls snatcher.grab_all() Does not return ''' logging.info('Executing search/grab for all movies.') today = datetime.datetime.today().replace(second=0, microsecond=0) if core.CONFIG['Search']['verifyreleases'] == 'predb': predb.check_all() movies = core.sql.get_user_movies() if not movies: return backlog_movies = [ i for i in movies if i['backlog'] != 1 and i['status'] is not 'Disabled' and Manage.verify(i, today=today) ] if backlog_movies: logging.debug('Backlog movies: {}'.format(', '.join( i['title'] for i in backlog_movies))) for movie in backlog_movies: imdbid = movie['imdbid'] title = movie['title'] year = movie['year'] quality = movie['quality'] logging.info('Performing backlog search for {} {}.'.format( title, year)) search(imdbid, title, year, quality) continue rss_movies = [ i for i in _get_rss_movies(movies) if Manage.verify(i, today=today) ] if rss_movies: logging.info('Checking RSS feeds for {} movies.'.format( len(rss_movies))) rss_sync(rss_movies) if core.CONFIG['Search']['autograb']: snatcher.grab_all() return
def _t_search_grab(movie): ''' Run verify/search/snatch chain movie (dict): movie to run search for Meant to be executed *IN ITS OWN THREAD* after adding a movie from user-input (ie api, search) so the main thread is not tied up. Does not return ''' logging.info('Executing automatic search/grab for {}.'.format( movie['title'])) imdbid = movie['imdbid'] title = movie['title'] year = movie['year'] quality = movie['quality'] if core.CONFIG['Search']['verifyreleases'] == 'predb': movie = predb.backlog_search(movie) if not Manage.verify(movie): return if core.CONFIG['Search']['searchafteradd'] and search( imdbid, title, year, quality) and core.CONFIG['Search']['autograb']: best_release = snatcher.get_best_release(movie) if best_release: snatcher.download(best_release)