Move plugins to single file
This commit is contained in:
1 parent
8492c9b214
commit
0b61ec1e13
28 files changed
+345
-403
No files matched your search
@@ -0,0 +1,104 @@
|
||||
from couchpotato.core.event import addEvent, fireEvent
|
||||
from couchpotato.core.logger import CPLog
|
||||
from couchpotato.core.plugins.base import Plugin
|
||||
from couchpotato.environment import Env
|
||||
|
||||
log = CPLog(__name__)
|
||||
|
||||
autoload = 'Automation'
|
||||
|
||||
|
||||
class Automation(Plugin):
|
||||
|
||||
def __init__(self):
|
||||
|
||||
addEvent('app.load', self.setCrons)
|
||||
|
||||
if not Env.get('dev'):
|
||||
addEvent('app.load', self.addMovies)
|
||||
|
||||
addEvent('setting.save.automation.hour.after', self.setCrons)
|
||||
|
||||
def setCrons(self):
|
||||
fireEvent('schedule.interval', 'automation.add_movies', self.addMovies, hours = self.conf('hour', default = 12))
|
||||
|
||||
def addMovies(self):
|
||||
|
||||
movies = fireEvent('automation.get_movies', merge = True)
|
||||
movie_ids = []
|
||||
|
||||
for imdb_id in movies:
|
||||
|
||||
if self.shuttingDown():
|
||||
break
|
||||
|
||||
prop_name = 'automation.added.%s' % imdb_id
|
||||
added = Env.prop(prop_name, default = False)
|
||||
if not added:
|
||||
added_movie = fireEvent('movie.add', params = {'identifier': imdb_id}, force_readd = False, search_after = False, update_library = True, single = True)
|
||||
if added_movie:
|
||||
movie_ids.append(added_movie['id'])
|
||||
Env.prop(prop_name, True)
|
||||
|
||||
for movie_id in movie_ids:
|
||||
|
||||
if self.shuttingDown():
|
||||
break
|
||||
|
||||
movie_dict = fireEvent('media.get', movie_id, single = True)
|
||||
fireEvent('movie.searcher.single', movie_dict)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
config = [{
|
||||
'name': 'automation',
|
||||
'order': 101,
|
||||
'groups': [
|
||||
{
|
||||
'tab': 'automation',
|
||||
'name': 'automation',
|
||||
'label': 'Minimal movie requirements',
|
||||
'options': [
|
||||
{
|
||||
'name': 'year',
|
||||
'default': 2011,
|
||||
'type': 'int',
|
||||
},
|
||||
{
|
||||
'name': 'votes',
|
||||
'default': 1000,
|
||||
'type': 'int',
|
||||
},
|
||||
{
|
||||
'name': 'rating',
|
||||
'default': 7.0,
|
||||
'type': 'float',
|
||||
},
|
||||
{
|
||||
'name': 'hour',
|
||||
'advanced': True,
|
||||
'default': 12,
|
||||
'label': 'Check every',
|
||||
'type': 'int',
|
||||
'unit': 'hours',
|
||||
'description': 'hours',
|
||||
},
|
||||
{
|
||||
'name': 'required_genres',
|
||||
'label': 'Required Genres',
|
||||
'default': '',
|
||||
'placeholder': 'Example: Action, Crime & Drama',
|
||||
'description': ('Ignore movies that don\'t contain at least one set of genres.', 'Sets are separated by "," and each word within a set must be separated with "&"')
|
||||
},
|
||||
{
|
||||
'name': 'ignored_genres',
|
||||
'label': 'Ignored Genres',
|
||||
'default': '',
|
||||
'placeholder': 'Example: Horror, Comedy & Drama & Romance',
|
||||
'description': 'Ignore movies that contain at least one set of genres. Sets work the same as above.'
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}]
|
||||
Reference in new issue
Block a user