mirror of
https://github.com/nikdoof/flexget-twitter.git
synced 2025-12-13 07:32:15 +00:00
Converted flexget-twitter to schema
This commit is contained in:
@@ -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)
|
||||||
Reference in New Issue
Block a user