Пример #1
0
    def __init__(self):
        super(SearcherBase, self).__init__()

        add_event('searcher.progress', self.getProgress)
        add_event('%s.searcher.progress' % self.getType(), self.getProgress)

        self.initCron()
Пример #2
0
    def __init__(self):
        super(Growl, self).__init__()

        self.growl = None

        if self.is_enabled():
            add_event('app.load', self.register)
Пример #3
0
    def __init__(self):

        add_event('scanner.create_file_identifier',
                  self.createStringIdentifier)
        add_event('scanner.remove_cptag', self.removeCPTag)

        add_event('scanner.scan', self.scan)
        add_event('scanner.name_year', self.getReleaseNameYear)
        add_event('scanner.partnumber', self.getPartNumber)
Пример #4
0
    def __init__(self):
        add_event('notify.%s' % self.getName().lower(), self._notify)

        addApiView(self.testNotifyName(), self.test)

        # Attach listeners
        for listener in self.listen_to:
            if not listener in self.dont_listen_to:
                add_event(listener, self.createNotifyHandler(listener))
Пример #5
0
    def __init__(self):
        addApiView('userscript.get/(.*)/(.*)', self.getUserScript, static = True)

        addApiView('userscript', self.iFrame)
        addApiView('userscript.add_via_url', self.getViaUrl)
        addApiView('userscript.includes', self.getIncludes)
        addApiView('userscript.bookmark', self.bookmark)

        add_event('userscript.get_version', self.getVersion)
        add_event('app.test', self.doTest)
Пример #6
0
    def setup(self):

        if not self.Env:
            from couchpotato.environment import Env

            self.Env = Env
            self.is_develop = Env.get('dev')

            from couchpotato.core.event import add_event
            add_event('app.after_shutdown', self.close)
Пример #7
0
    def __init__(self):

        addApiView('suggestion.view', self.suggestView)
        addApiView('suggestion.ignore', self.ignoreView)

        def test():
            time.sleep(1)
            self.suggestView()

        add_event('app.load', test)
Пример #8
0
    def __init__(self):
        super(Plex, self).__init__()

        self.server = PlexServer(self)

        self.client_protocols = {
            'http': PlexClientHTTP(self),
            'json': PlexClientJSON(self)
        }

        add_event('renamer.after', self.addToLibrary)
Пример #9
0
    def __init__(self):
        super(Trakt, self).__init__()

        addApiView('automation.trakt.auth_url', self.getAuthorizationUrl)
        addApiView('automation.trakt.credentials', self.getCredentials)

        fire_event('schedule.interval',
                   'updater.check',
                   self.refreshToken,
                   hours=24)
        add_event('app.load', self.refreshToken)
Пример #10
0
    def __init__(self):
        addApiView('downloader.putio.getfrom',
                   self.getFromPutio,
                   docs={
                       'desc': 'Allows you to download file from prom Put.io',
                   })
        addApiView('downloader.putio.auth_url', self.getAuthorizationUrl)
        addApiView('downloader.putio.credentials', self.getCredentials)
        add_event('putio.download', self.putioDownloader)

        return super(PutIO, self).__init__()
Пример #11
0
    def __init__(self):
        addApiView('category.save', self.save)
        addApiView('category.save_order', self.saveOrder)
        addApiView('category.delete', self.delete)
        addApiView('category.list', self.allView, docs = {
            'desc': 'List all available categories',
            'return': {'type': 'object', 'example': """{
            'success': True,
            'categories': array, categories
}"""}
        })

        add_event('category.all', self.all)
Пример #12
0
    def __init__(self):

        self.indexes = {}

        addApiView('database.list_documents', self.list_documents)
        addApiView('database.reindex', self.reindex)
        addApiView('database.compact', self.compact)
        addApiView('database.document.update', self.update_document)
        addApiView('database.document.delete', self.delete_document)

        add_event('database.setup.after', self.startup_compact)
        add_event('database.setup_index', self.setup_index)
        add_event('database.delete_corrupted', self.delete_corrupted)

        add_event('app.migrate', self.migrate)
        add_event('app.after_shutdown', self.close)
Пример #13
0
    def __init__(self):

        addApiView('search', self.search, docs = {
            'desc': 'Search the info in providers for a movie',
            'params': {
                'q': {'desc': 'The (partial) movie name you want to search for'},
                'type': {'desc': 'Search for a specific media type. Leave empty to search all.'},
            },
            'return': {'type': 'object', 'example': """{
    'success': True,
    'movies': array,
    'show': array,
    etc
}"""}
        })

        add_event('app.load', self.addSingleSearches)
Пример #14
0
    def __init__(self):

        add_event('schedule.cron', self.cron)
        add_event('schedule.interval', self.interval)
        add_event('schedule.remove', self.remove)
        add_event('schedule.queue', self.queue)

        self.sched = BackgroundScheduler(misfire_grace_time=60)
        self.sched.start()
        self.started = True
Пример #15
0
        def __init__(self):

            desktop = Env.get('desktop')
            desktop.setSettings({
                'base_url':
                fire_event('app.base_url', single=True),
                'api_url':
                fire_event('app.api_url', single=True),
                'api':
                Env.setting('api'),
            })

            # Events from desktop
            desktop.addEvents({
                'onClose': self.on_close,
            })

            # Events to desktop
            add_event('app.after_shutdown', desktop.afterShutdown)
            add_event('app.load', desktop.onAppLoad, priority=110)
Пример #16
0
    def __init__(self):

        # Initialize this type
        super(MovieBase, self).__init__()
        self.initType()

        addApiView('movie.add', self.addView, docs = {
            'desc': 'Add new movie to the wanted list',
            'return': {'type': 'object', 'example': """{
    'success': True,
    'movie': object
}"""},
            'params': {
                'identifier': {'desc': 'IMDB id of the movie your want to add.'},
                'profile_id': {'desc': 'ID of quality profile you want the add the movie in. If empty will use the default profile.'},
                'force_readd': {'desc': 'Force re-add even if movie already in wanted or manage. Default: True'},
                'category_id': {'desc': 'ID of category you want the add the movie in. If empty will use no category.'},
                'title': {'desc': 'Movie title to use for searches. Has to be one of the titles returned by movie.search.'},
            }
        })
        addApiView('movie.edit', self.edit, docs = {
            'desc': 'Add new movie to the wanted list',
            'params': {
                'id': {'desc': 'Movie ID(s) you want to edit.', 'type': 'int (comma separated)'},
                'profile_id': {'desc': 'ID of quality profile you want the edit the movie to.'},
                'category_id': {'desc': 'ID of category you want the add the movie in. If empty will use no category.'},
                'default_title': {'desc': 'Movie title to use for searches. Has to be one of the titles returned by movie.search.'},
            }
        })

        add_event('movie.add', self.add)
        add_event('movie.update', self.update)
        add_event('movie.update_release_dates', self.updateReleaseDate)
Пример #17
0
    def __init__(self):
        add_event('file.download', self.download)

        addApiView('file.cache/(.*)',
                   self.showCacheFile,
                   static=True,
                   docs={
                       'desc':
                       'Return a file from the cp_data/cache directory',
                       'params': {
                           'filename': {
                               'desc': 'path/filename of the wanted file'
                           }
                       },
                       'return': {
                           'type': 'file'
                       }
                   })

        fire_event('schedule.interval', 'file.cleanup', self.cleanup, hours=24)

        add_event('app.test', self.doSubfolderTest)
Пример #18
0
    def registerPlugin(self):
        add_event('app.do_shutdown', self.do_shutdown)
        add_event('plugin.running', self.isRunning)
        self._running = []

        # Setup database
        if self._database:
            add_event('database.setup', self.databaseSetup)
Пример #19
0
    def __init__(self):

        add_event('app.load', self.setCrons)

        if not Env.get('dev'):
            add_event('app.load', self.addMovies)

        add_event('setting.save.automation.hour.after', self.setCrons)
Пример #20
0
    def __init__(self):

        if Env.get('desktop'):
            self.updater = DesktopUpdater()
        elif os.path.isdir(os.path.join(Env.get('app_dir'), '.git')):
            git_default = 'git'
            git_command = self.conf('git_command', default=git_default)
            git_command = git_command if git_command != git_default and (
                os.path.isfile(git_command) or re.match(
                    '^[a-zA-Z0-9_/\.\-]+$', git_command)) else git_default
            self.updater = GitUpdater(git_command)
        else:
            self.updater = SourceUpdater()

        add_event('app.load', self.log_version, priority=10000)
        add_event('app.load', self.set_crons)
        add_event('updater.info', self.info)

        addApiView('updater.info',
                   self.info,
                   docs={
                       'desc': 'Get updater information',
                       'return': {
                           'type':
                           'object',
                           'example':
                           """{
        'last_check': "last checked for update",
        'update_version': "available update version or empty",
        'version': current_cp_version
}"""
                       }
                   })
        addApiView('updater.update', self.do_update_view)
        addApiView('updater.check',
                   self.check_view,
                   docs={
                       'desc': 'Check for available update',
                       'return': {
                           'type': 'see updater.info'
                       }
                   })

        add_event('setting.save.updater.enabled.after', self.set_crons)
Пример #21
0
    def initCron(self):
        """ Set the searcher cronjob
            Make sure to reset cronjob after setting has changed
        """

        _type = self.getType()

        def setCrons():
            fire_event('schedule.cron',
                       '%s.searcher.all' % _type,
                       self.searchAll,
                       day=self.conf('cron_day'),
                       hour=self.conf('cron_hour'),
                       minute=self.conf('cron_minute'))

        add_event('app.load', setCrons)
        add_event('setting.save.%s_searcher.cron_day.after' % _type, setCrons)
        add_event('setting.save.%s_searcher.cron_hour.after' % _type, setCrons)
        add_event('setting.save.%s_searcher.cron_minute.after' % _type,
                  setCrons)
Пример #22
0
    def __init__(self):
        add_event('profile.all', self.all)
        add_event('profile.default', self.default)

        addApiView('profile.save', self.save)
        addApiView('profile.save_order', self.saveOrder)
        addApiView('profile.delete', self.delete)
        addApiView('profile.list',
                   self.allView,
                   docs={
                       'desc': 'List all available profiles',
                       'return': {
                           'type':
                           'object',
                           'example':
                           """{
            'success': True,
            'list': array, profiles
}"""
                       }
                   })

        add_event('app.initialize', self.fill, priority=90)
        add_event('app.load', self.forceDefaults, priority=110)
Пример #23
0
 def __init__(self):
     add_event('app.load', self.createStructure)
Пример #24
0
    def __init__(self):
        addApiView(self.testNotifyName(), self.test)

        add_event('renamer.after', self.addToLibrary)
Пример #25
0
    def __init__(self):

        addApiView(
            'settings',
            self.view,
            docs={
                'desc':
                'Return the options and its values of settings.conf. Including the default values and group ordering used on the settings page.',
                'return': {
                    'type':
                    'object',
                    'example':
                    """{
    // objects like in __init__.py of plugin
    "options": {
        "moovee" : {
            "groups" : [{
                "description" : "SD movies only",
                "name" : "#alt.binaries.moovee",
                "options" : [{
                    "default" : false,
                    "name" : "enabled",
                    "type" : "enabler"
                }],
                "tab" : "providers"
            }],
            "name" : "moovee"
        }
    },
    // object structured like settings.conf
    "values": {
        "moovee": {
            "enabled": false
        }
    }
}"""
                }
            })

        addApiView('settings.save',
                   self.save_view,
                   docs={
                       'desc': 'Save setting to config file (settings.conf)',
                       'params': {
                           'section': {
                               'desc': 'The section name in settings.conf'
                           },
                           'name': {
                               'desc': 'The option name'
                           },
                           'value': {
                               'desc': 'The value you want to save'
                           },
                       }
                   })

        add_event('database.setup', self.database_setup)

        self.file = None
        self.p = None
        self.log = None
        self.directories_delimiter = "::"
Пример #26
0
 def connect_events(self):
     add_event('settings.options', self.add_options)
     add_event('settings.register', self.register_defaults)
     add_event('settings.save', self.save)
Пример #27
0
 def __init__(self):
     add_event('info.search', self.search, priority=3)
     add_event('movie.search', self.search, priority=3)
     add_event('movie.info', self.getInfo, priority=3)
     add_event('movie.info_by_tmdb', self.getInfo)
     add_event('app.load', self.config)
Пример #28
0
    def __init__(self):

        addApiView(
            'media.refresh',
            self.refresh,
            docs={
                'desc': 'Refresh a any media type by ID',
                'params': {
                    'id': {
                        'desc':
                        'Movie, Show, Season or Episode ID(s) you want to refresh.',
                        'type': 'int (comma separated)'
                    },
                }
            })

        addApiView(
            'media.list',
            self.listView,
            docs={
                'desc': 'List media',
                'params': {
                    'type': {
                        'type': 'string',
                        'desc': 'Media type to filter on.'
                    },
                    'status': {
                        'type': 'array or csv',
                        'desc': 'Filter media by status. Example:"active,done"'
                    },
                    'release_status': {
                        'type':
                        'array or csv',
                        'desc':
                        'Filter media by status of its releases. Example:"snatched,available"'
                    },
                    'limit_offset': {
                        'desc':
                        'Limit and offset the media list. Examples: "50" or "50,30"'
                    },
                    'starts_with': {
                        'desc':
                        'Starts with these characters. Example: "a" returns all media starting with the letter "a"'
                    },
                    'search': {
                        'desc': 'Search media title'
                    },
                },
                'return': {
                    'type':
                    'object',
                    'example':
                    """{
    'success': True,
    'empty': bool, any media returned or not,
    'media': array, media found,
}"""
                }
            })

        addApiView('media.get',
                   self.getView,
                   docs={
                       'desc': 'Get media by id',
                       'params': {
                           'id': {
                               'desc': 'The id of the media'
                           },
                       }
                   })

        addApiView('media.delete',
                   self.deleteView,
                   docs={
                       'desc': 'Delete a media from the wanted list',
                       'params': {
                           'id': {
                               'desc': 'Media ID(s) you want to delete.',
                               'type': 'int (comma separated)'
                           },
                           'delete_from': {
                               'desc': 'Delete media from this page',
                               'type': 'string: all (default), wanted, manage'
                           },
                       }
                   })

        addApiView('media.available_chars', self.charView)

        add_event('app.load', self.addSingleRefreshView, priority=100)
        add_event('app.load', self.addSingleListView, priority=100)
        add_event('app.load', self.addSingleCharView, priority=100)
        add_event('app.load', self.addSingleDeleteView, priority=100)
        add_event('app.load', self.cleanupFaults)

        add_event('media.get', self.get)
        add_event('media.with_status', self.withStatus)
        add_event('media.with_identifiers', self.withIdentifiers)
        add_event('media.list', self.list)
        add_event('media.delete', self.delete)
        add_event('media.restatus', self.restatus)
        add_event('media.tag', self.tag)
        add_event('media.untag', self.unTag)
Пример #29
0
 def __init__(self):
     add_event('library.query', self.query)
Пример #30
0
 def __init__(self):
     if self.type:
         add_event('%s.matcher.correct' % self.type, self.correct)