2011-02-18 10:48:14 -08:00
|
|
|
###
|
|
|
|
# Copyright (c) 2011, Valentin Lorentz
|
|
|
|
# All rights reserved.
|
|
|
|
#
|
|
|
|
# Redistribution and use in source and binary forms, with or without
|
|
|
|
# modification, are permitted provided that the following conditions are met:
|
|
|
|
#
|
|
|
|
# * Redistributions of source code must retain the above copyright notice,
|
|
|
|
# this list of conditions, and the following disclaimer.
|
|
|
|
# * Redistributions in binary form must reproduce the above copyright notice,
|
|
|
|
# this list of conditions, and the following disclaimer in the
|
|
|
|
# documentation and/or other materials provided with the distribution.
|
|
|
|
# * Neither the name of the author of this software nor the name of
|
|
|
|
# contributors to this software may be used to endorse or promote products
|
|
|
|
# derived from this software without specific prior written consent.
|
|
|
|
#
|
|
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
|
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
|
|
|
###
|
|
|
|
|
|
|
|
import supybot.conf as conf
|
|
|
|
import supybot.registry as registry
|
|
|
|
|
2011-02-28 10:01:19 -08:00
|
|
|
try:
|
|
|
|
from supybot.i18n import PluginInternationalization
|
|
|
|
from supybot.i18n import internationalizeDocstring
|
|
|
|
_ = PluginInternationalization('Twitter')
|
|
|
|
except:
|
|
|
|
# This are useless functions that's allow to run the plugin on a bot
|
|
|
|
# without the i18n plugin
|
|
|
|
_ = lambda x:x
|
|
|
|
internationalizeDocstring = lambda x:x
|
2011-02-18 10:48:14 -08:00
|
|
|
|
|
|
|
def configure(advanced):
|
|
|
|
# This will be called by supybot to configure this module. advanced is
|
|
|
|
# a bool that specifies whether the user identified himself as an advanced
|
|
|
|
# user or not. You should effect your configuration by manipulating the
|
|
|
|
# registry as appropriate.
|
|
|
|
from supybot.questions import expect, anything, something, yn
|
|
|
|
conf.registerPlugin('Twitter', True)
|
|
|
|
|
|
|
|
|
|
|
|
Twitter = conf.registerPlugin('Twitter')
|
|
|
|
# This is where your configuration variables (if any) should go. For example:
|
|
|
|
# conf.registerGlobalValue(Twitter, 'someConfigVariableName',
|
|
|
|
# registry.Boolean(False, _("""Help for someConfigVariableName.""")))
|
2012-07-29 05:27:35 -07:00
|
|
|
|
|
|
|
conf.registerChannelValue(Twitter, 'prefixusername',
|
|
|
|
registry.Boolean(True, _("""Determines whether or not the name of the
|
|
|
|
user posting a tweet will be shown prefixed.""")))
|
|
|
|
|
2011-02-18 10:48:14 -08:00
|
|
|
conf.registerGroup(Twitter, 'accounts')
|
|
|
|
|
|
|
|
helpGetToken = _('running get_access_token.py is a way to get it')
|
|
|
|
|
2012-06-24 03:49:01 -07:00
|
|
|
conf.registerGroup(Twitter, 'consumer')
|
|
|
|
conf.registerGlobalValue(Twitter.consumer, 'key',
|
|
|
|
registry.String('bItq1HZhBGyx5Y8ardIeQ',
|
2012-06-24 03:22:23 -07:00
|
|
|
_("""The consumer key of the application.""")))
|
2012-06-24 03:49:01 -07:00
|
|
|
conf.registerGlobalValue(Twitter.consumer, 'secret',
|
|
|
|
registry.String('qjC6Ye6xSMM3XPLR3LLeMqOP4ri0rgoYFT2si1RpY',
|
|
|
|
_("""The consumer secret of the application."""), private=True))
|
2012-06-24 03:22:23 -07:00
|
|
|
|
2012-06-24 03:49:01 -07:00
|
|
|
conf.registerGroup(Twitter.accounts, 'bot')
|
|
|
|
conf.registerGlobalValue(Twitter.accounts.bot, 'key',
|
2012-06-27 05:20:01 -07:00
|
|
|
registry.String('', _("""The Twitter Access Token key for the bot's
|
2012-06-24 03:49:01 -07:00
|
|
|
account (%s)""") % helpGetToken))
|
|
|
|
conf.registerGlobalValue(Twitter.accounts.bot, 'secret',
|
2012-06-27 05:20:01 -07:00
|
|
|
registry.String('', _("""The Twitter Access Token secret for the bot's
|
2012-06-24 03:49:01 -07:00
|
|
|
account (%s)""") % helpGetToken, private=True))
|
2011-06-22 10:43:28 -07:00
|
|
|
conf.registerGlobalValue(Twitter.accounts.bot, 'api',
|
2012-10-31 13:27:20 -07:00
|
|
|
registry.String('https://api.twitter.com/1.1', _("""The URL to the
|
2011-06-22 10:43:28 -07:00
|
|
|
base API URL (by default, it is Twitter.com, but you can use it
|
|
|
|
for twitter-compatible services, such as identica/statusnet.""")))
|
2011-02-18 10:48:14 -08:00
|
|
|
|
|
|
|
conf.registerGroup(Twitter.accounts, 'channel')
|
|
|
|
conf.registerChannelValue(Twitter.accounts.channel, 'key',
|
|
|
|
registry.String('', _("""The Twitter Access Token key for this
|
|
|
|
channel's account (%s)""") % helpGetToken))
|
|
|
|
conf.registerChannelValue(Twitter.accounts.channel, 'secret',
|
|
|
|
registry.String('', _("""The Twitter Access Token secret for this
|
|
|
|
channel's account (%s)""") % helpGetToken, private=True))
|
2012-07-28 13:22:58 -07:00
|
|
|
conf.registerChannelValue(Twitter.accounts.channel, 'api',
|
2012-10-31 13:27:20 -07:00
|
|
|
registry.String('https://api.twitter.com/1.1', _("""The URL to the
|
2011-06-22 10:43:28 -07:00
|
|
|
base API URL (by default, it is Twitter.com, but you can use it
|
|
|
|
for twitter-compatible services, such as identica/statusnet.""")))
|
2011-02-18 10:48:14 -08:00
|
|
|
|
2012-07-28 13:22:58 -07:00
|
|
|
conf.registerGroup(Twitter, 'announce')
|
|
|
|
conf.registerChannelValue(Twitter.announce, 'interval',
|
|
|
|
registry.NonNegativeInteger(0, _("""The interval (in seconds) between
|
|
|
|
two fetches of new tweets from the timeline. 0 (zero) disables this
|
|
|
|
feature.""")))
|
|
|
|
conf.registerChannelValue(Twitter.announce, 'withid',
|
|
|
|
registry.Boolean(True, _("""Determines whether or not the ID of
|
|
|
|
announced tweets will be displayed.""")))
|
2012-08-15 07:26:22 -07:00
|
|
|
conf.registerChannelValue(Twitter.announce, 'withshortid',
|
|
|
|
registry.Boolean(True, _("""Determines whether or not the ID of
|
|
|
|
announced tweets will be displayed.""")))
|
2012-07-28 13:22:58 -07:00
|
|
|
conf.registerChannelValue(Twitter.announce, 'oneline',
|
|
|
|
registry.Boolean(True, _("""Determines whether or not all tweets will
|
|
|
|
be shown in one line.""")))
|
2012-08-05 12:24:21 -07:00
|
|
|
conf.registerChannelValue(Twitter.announce, 'retweets',
|
|
|
|
registry.Boolean(True, _("""Determines whether or not the bot will
|
|
|
|
show retweets in addition to native tweets.""")))
|
2013-04-27 10:31:30 -07:00
|
|
|
conf.registerChannelValue(Twitter.announce, 'timeline',
|
|
|
|
registry.Boolean(True, _("""Determines whether the bot will stream
|
|
|
|
the timeline of the linked account on the channel (only if
|
|
|
|
supybot.plugins.Twitter.announce.interval is greater than 0).""")))
|
|
|
|
conf.registerChannelValue(Twitter.announce, 'mentions',
|
|
|
|
registry.Boolean(True, _("""Determines whether the bot will stream
|
|
|
|
mentions to the linked account on the channel (only if
|
|
|
|
supybot.plugins.Twitter.announce.interval is greater than 0).""")))
|
2013-05-10 07:57:25 -07:00
|
|
|
conf.registerChannelValue(Twitter.announce, 'users',
|
|
|
|
registry.SpaceSeparatedListOfStrings([], _("""Determines users whose
|
|
|
|
tweets will be announced on the channel.""")))
|
2012-07-28 13:22:58 -07:00
|
|
|
|
2011-02-18 10:48:14 -08:00
|
|
|
|
|
|
|
# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79:
|