]> jfr.im git - z_archive/twitter.git/commitdiff
Improved display of multiline tweets.
authorKit La Touche <redacted>
Thu, 13 Jun 2013 03:49:04 +0000 (21:49 -0600)
committerKit La Touche <redacted>
Fri, 21 Mar 2014 16:34:24 +0000 (10:34 -0600)
twitter/cmdline.py
twitter/util.py

index 120d629b11eb1e1e6719defa49b5407e5af69d89..dd3014d9f6f617612385bf7bfc349b43bacd3a02 100644 (file)
@@ -103,7 +103,7 @@ from .api import Twitter, TwitterError
 from .oauth import OAuth, write_token_file, read_token_file
 from .oauth_dance import oauth_dance
 from . import ansi
-from .util import smrt_input, printNicely
+from .util import smrt_input, printNicely, align_text
 
 OPTIONS = {
     'action': 'friends',
@@ -217,10 +217,12 @@ class AnsiStatusFormatter(object):
 
     def __call__(self, status, options):
         colour = self._colourMap.colourFor(status['user']['screen_name'])
-        return ("%s%s% 16s%s %s" %(
+        ret = "%s%s% 16s%s " %(
             get_time_string(status, options),
-            ansiFormatter.cmdColour(colour), status['user']['screen_name'],
-            ansiFormatter.cmdReset(), replaceInStatus(status['text'])))
+            ansi.cmdColour(colour), status['user']['screen_name'],
+            ansi.cmdReset())
+        ret += "%s" % align_text(status['text'])
+        return ret
 
 class VerboseStatusFormatter(object):
     def __call__(self, status, options):
index 8d66c4e8e8e56e58bd4bd468e2708405072e9602..7e4d6ab3f891aa70cdd818ace8b0b33c49c615e8 100644 (file)
@@ -10,6 +10,7 @@ from __future__ import print_function
 import contextlib
 import re
 import sys
+import textwrap
 import time
 
 try:
@@ -134,3 +135,12 @@ def parse_host_list(list_of_hosts):
         m.group(1) for m in re.finditer("\s*([^,\s]+)\s*,?\s*", list_of_hosts))
     return p
 
+
+def align_text(text, left_margin=16, max_width=80):
+    lines = []
+    for line in text.split('\n'):
+        temp_lines = textwrap.wrap(line, max_width - left_margin)
+        temp_lines = [(' ' * left_margin + line) for line in temp_lines]
+        lines.append('\n'.join(temp_lines))
+    ret = '\n'.join(lines)
+    return ret.lstrip()