X-Git-Url: https://jfr.im/git/z_archive/twitter.git/blobdiff_plain/4101b92641c155d62097e9522f61c4305c291d5d..5804e3aee6c6049f609189edfcd2af5ebe443472:/twitter/cmdline.py diff --git a/twitter/cmdline.py b/twitter/cmdline.py index d60bbdf..f8ac4cd 100644 --- a/twitter/cmdline.py +++ b/twitter/cmdline.py @@ -64,6 +64,12 @@ prompt: '> from __future__ import print_function +try: + input = __builtins__['raw_input'] +except (AttributeError, KeyError): + pass + + CONSUMER_KEY='uS6hO2sV6tDKIOeVjhnFnQ' CONSUMER_SECRET='MEYTOS97VvlHX7K1rwHPEqVpTSqZ71HtvoK4sVuYk' @@ -74,6 +80,7 @@ from getpass import getpass import re import os.path import locale +import string try: from ConfigParser import SafeConfigParser @@ -260,7 +267,6 @@ class AnsiSearchFormatter(object): _term_encoding = None def get_term_encoding(): - import pdb;pdb.set_trace() global _term_encoding if not _term_encoding: lang = os.getenv('LANG', 'unknown.UTF-8').split('.') @@ -352,6 +358,7 @@ class Action(object): if (options['refresh'] and isinstance(action, StatusAction)): while True: doAction() + sys.stdout.flush() time.sleep(options['refresh_rate']) else: doAction() @@ -464,7 +471,33 @@ class SetStatusAction(Action): statusTxt = (" ".join(options['extra_args']) if options['extra_args'] else str(input("message: "))) - twitter.statuses.update(status=statusTxt) + replies = [] + ptr = re.compile("@[\w_]+") + while statusTxt: + s = ptr.match(statusTxt) + if s and s.start() == 0: + replies.append(statusTxt[s.start():s.end()]) + statusTxt = statusTxt[s.end()+1:] + else: + break + replies = " ".join(replies) + if len(replies) >= 140: + # just go back + statusTxt = replies + replies = "" + + splitted = [] + while statusTxt: + limit = 140 - len(replies) + if len(statusTxt) > limit: + end = string.rfind(statusTxt, ' ', 0, limit) + else: + end = limit + splitted.append(" ".join((replies,statusTxt[:end]))) + statusTxt = statusTxt[end:] + + for status in splitted: + twitter.statuses.update(status=status) class TwitterShell(Action):