ansi.cmdColour(colour), result['from_user'],
ansi.cmdReset(), result['text']))
+_term_encoding = None
+def get_term_encoding():
+ global _term_encoding
+ if not _term_encoding:
+ lang = os.getenv('LANG', 'unknown.UTF-8').split('.')
+ if lang[1:]:
+ _term_encoding = lang[1]
+ else:
+ _term_encoding = 'UTF-8'
+ return _term_encoding
+
formatters = {}
status_formatters = {
'default': StatusFormatter,
# We need to be pointing at search.twitter.com to work, and it is less
# tangly to do it here than in the main()
twitter.domain="search.twitter.com"
+ twitter.uri=""
# We need to bypass the TwitterCall parameter encoding, so we
# don't encode the plus sign, so we have to encode it ourselves
- query_string = "+".join([quote(term) for term in options['extra_args']])
+ query_string = "+".join(
+ [quote(term.decode(get_term_encoding()))
+ for term in options['extra_args']])
twitter.encoded_args = "q=%s" %(query_string)
results = twitter.search()['results']
class SetStatusAction(Action):
def __call__(self, twitter, options):
- statusTxt = (u" ".join(options['extra_args'])
+ statusTxt = (" ".join(options['extra_args']).decode(get_term_encoding())
if options['extra_args']
else unicode(raw_input("message: ")))
status = (statusTxt.encode('utf8', 'replace'))
twitter = Twitter(
auth=OAuth(
oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET),
- secure=options['secure'])
+ secure=options['secure'],
+ api_version='1')
try:
Action()(twitter, options)