Converted flexget-twitter to schema

This commit is contained in:
Yan Zhang
2013-06-17 21:27:59 +02:00
parent c4997c1d62
commit f238ca60a3

View File

@@ -4,25 +4,22 @@ from flexget.plugin import PluginError, register_plugin
from flexget import manager from flexget import manager
from flexget.event import event from flexget.event import event
from flexget.utils.template import render_from_task, get_template, RenderError from flexget.utils.template import render_from_task, get_template, RenderError
from flexget import validator
log = logging.getLogger('twitter') log = logging.getLogger('twitter')
def options_validator(): schema = {
twitter = validator.factory('dict') 'type': 'object',
twitter.accept('boolean', key='active') 'properties': {
twitter.accept('text', key='template') 'active': {'type': 'boolean', 'default': True},
twitter.accept('text', key='consumerkey', required=True) 'template': {'type': 'string', 'default': 'Flexget: {{ title }} accepted'},
twitter.accept('text', key='consumersecret', required=True) 'consumerkey': {'type': 'string'},
twitter.accept('text', key='accesskey', required=True) 'consumersecret': {'type': 'string'},
twitter.accept('text', key='accesssecret', required=True) 'accesskey': {'type': 'string'},
return twitter 'accesssecret': {'type': 'string'}
},
'required': ['consumerkey', 'consumersecret', 'accesskey', 'accesssecret'],
def prepare_config(config): 'additionalProperties': False
config.setdefault('active', True) }
config.setdefault('template', "Flexget: {{ title }} accepted")
return config
@event('manager.execute.started') @event('manager.execute.started')
def setup(manager): def setup(manager):
@@ -33,9 +30,6 @@ def setup(manager):
import tweepy import tweepy
except ImportError: except ImportError:
raise PluginError('The Twtter plugin requires the tweepy module to be installed, please install it before using.') raise PluginError('The Twtter plugin requires the tweepy module to be installed, please install it before using.')
config = prepare_config(manager.config['twitter'])
config['global'] = True
global task_content global task_content
task_content = {} task_content = {}
print config print config
@@ -49,15 +43,9 @@ def setup(manager):
class OutputTwitter(object): class OutputTwitter(object):
def validator(self):
v = options_validator()
v.accept('boolean', key='global')
return v
def on_task_output(self, task, config): def on_task_output(self, task, config):
config = prepare_config(config)
# Initialize twitter client # Initialize twitter client
import tweepy import tweepy
auth = tweepy.OAuthHandler(config['consumerkey'], config['consumersecret']) auth = tweepy.OAuthHandler(config['consumerkey'], config['consumersecret'])
@@ -81,4 +69,4 @@ class OutputTwitter(object):
log.warning('Unable to post tweet: %s' % e) log.warning('Unable to post tweet: %s' % e)
register_plugin(OutputTwitter, 'twitter', api_ver=2) register_plugin(OutputTwitter, 'twitter', api_ver=2)
manager.register_config_key('twitter', options_validator) manager.register_config_key('twitter', schema)