]> git.rmz.io Git - dotfiles.git/blobdiff - flexget/plugins/my_exists_movie.py
flexget: update flexget config
[dotfiles.git] / flexget / plugins / my_exists_movie.py
diff --git a/flexget/plugins/my_exists_movie.py b/flexget/plugins/my_exists_movie.py
deleted file mode 100644 (file)
index 30d3eb8..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-from __future__ import unicode_literals, division, absolute_import
-import os
-import re
-import logging
-
-from flexget import plugin
-from flexget.event import event
-from flexget.config_schema import one_or_more
-from flexget.plugin import get_plugin_by_name
-from flexget.utils.tools import TimedDict
-
-log = logging.getLogger('my_exists_movie')
-
-
-class FilterExistsMovie(object):
-    """
-    Reject existing movies.
-
-    Example::
-
-      exists_movie: /storage/movies/
-    """
-
-    schema = one_or_more({'type': 'string', 'format': 'path'})
-
-    def __init__(self):
-        self.cache = TimedDict(cache_time='1 hour')
-
-    def build_config(self, config):
-        # if only a single path is passed turn it into a 1 element list
-        if isinstance(config, basestring):
-            config = [config]
-        return config
-
-    @plugin.priority(-1)
-    def on_task_filter(self, task, config):
-        # if not task.accepted:
-        #     log.debug('nothing accepted, aborting')
-        #     return
-
-        config = self.build_config(config)
-        imdb_lookup = plugin.get_plugin_by_name('imdb_lookup').instance
-
-        incompatible_files = 0
-        incompatible_entries = 0
-        count_entries = 0
-        count_files = 0
-
-        # list of imdb ids gathered from paths / cache
-        imdb_ids = []
-
-        for folder in config:
-            folder = os.path.expanduser(folder)
-            # see if this path has already been scanned
-            if folder in self.cache:
-                log.verbose('Using cached scan for %s ...' % folder)
-                imdb_ids.extend(self.cache[folder])
-                continue
-
-            path_ids = []
-
-            if not os.path.isdir(folder):
-                log.critical('Path %s does not exist' % folder)
-                continue
-
-            log.verbose('Scanning path %s ...' % folder)
-
-            # Help debugging by removing a lot of noise
-            #logging.getLogger('movieparser').setLevel(logging.WARNING)
-            #logging.getLogger('imdb_lookup').setLevel(logging.WARNING)
-
-            # scan through
-
-            # TODO: add also video files?
-            for root, dirs, files in os.walk(folder):
-                for item in files:
-                    pattern = re.compile(".*\.(avi|mkv|mp4|mpg|webm)")
-                    if not re.search(pattern, item):
-                        continue
-                    count_files += 1
-
-                    movie = get_plugin_by_name('parsing').instance.parse_movie(item)
-
-                    try:
-                        imdb_id = imdb_lookup.imdb_id_lookup(movie_title=movie.name,
-                                                            raw_title=item,
-                                                            session=task.session)
-                        if imdb_id in path_ids:
-                            log.trace('duplicate %s' % item)
-                            continue
-                        if imdb_id is not None:
-                            log.trace('adding: %s' % imdb_id)
-                            path_ids.append(imdb_id)
-                    except plugin.PluginError as e:
-                        log.trace('%s lookup failed (%s)' % (item, e.value))
-                        incompatible_files += 1
-
-            # store to cache and extend to found list
-            self.cache[folder] = path_ids
-            imdb_ids.extend(path_ids)
-
-        log.debug('-- Start filtering entries ----------------------------------')
-
-        # do actual filtering
-        for entry in task.accepted:
-            count_entries += 1
-            if not entry.get('imdb_id', eval_lazy=False):
-                try:
-                    imdb_lookup.lookup(entry)
-                except plugin.PluginError as e:
-                    log.trace('entry %s imdb failed (%s)' % (entry['title'], e.value))
-                    incompatible_entries += 1
-                    continue
-
-            # actual filtering
-            if entry['imdb_id'] in imdb_ids:
-                entry.reject('movie exists')
-
-        if incompatible_dirs or incompatible_entries:
-            log.verbose('There were some incompatible items. %s of %s entries '
-                        'and %s of %s directories could not be verified.' %
-                (incompatible_entries, count_entries, incompatible_dirs, count_dirs))
-
-        log.debug('-- Finished filtering entries -------------------------------')
-
-@event('plugin.register')
-def register_plugin():
-    plugin.register(FilterExistsMovie, 'my_exists_movie', groups=['exists'], api_ver=2)