preview quote format
[rainbowstream.git] / rainbowstream / draw.py
index b4f5883959a969891148c900dcc570f31dadb53c..00d3e252ec0766bdae4b03383ea07f8c554ab93c 100644 (file)
@@ -275,10 +275,10 @@ def draw(t, keyword=None, check_semaphore=False, fil=[], ig=[]):
     formater = ''
     try:
         formater = c['FORMAT']['TWEET']['DISPLAY']
-        formater = name.join(formater.split("#name"))
-        formater = nick.join(formater.split("#nick"))
-        formater = fav.join(formater.split("#fav"))
-        formater = tweet.join(formater.split("#tweet"))
+        formater = name.join(formater.split('#name'))
+        formater = nick.join(formater.split('#nick'))
+        formater = fav.join(formater.split('#fav'))
+        formater = tweet.join(formater.split('#tweet'))
         # Change clock word
         word = [w for w in formater.split() if '#clock' in w][0]
         delimiter = color_func(c['TWEET']['clock'])(
@@ -546,5 +546,58 @@ def show_calendar(month, date, rel):
         printNicely(' '.join(ary))
 
 
+def format_quote(tweet):
+    """
+    Quoting format
+    """
+    # Retrieve info
+    screen_name = '@' + tweet['user']['screen_name']
+    text = tweet['text']
+    # Validate quote format
+    if '#owner' not in c['QUOTE_FORMAT']:
+        printNicely(light_magenta('Quote should contains #owner'))
+        return False
+    if '#comment' not in c['QUOTE_FORMAT']:
+        printNicely(light_magenta('Quote format should have #comment'))
+        return False
+    # Build formater
+    formater = ''
+    try:
+        formater = c['QUOTE_FORMAT']
+        formater = screen_name.join(formater.split('#owner'))
+        formater = text.join(formater.split('#tweet'))
+        formater = u2str(formater)
+    except:
+        pass
+    # Highlight like a tweet
+    formater = formater.split()
+    formater = lmap(
+        lambda x: light_green(x)
+        if x == '#comment'
+        else x,
+        formater)
+    formater = lmap(
+        lambda x: color_func(c['TWEET']['rt'])(x)
+        if x == 'RT'
+        else x,
+        formater)
+    formater = lmap(lambda x: cycle_color(x) if x[0] == '@' else x, formater)
+    formater = lmap(
+        lambda x: color_func(c['TWEET']['link'])(x)
+        if x[0:4] == 'http'
+        else x,
+        formater)
+    formater = lmap(
+        lambda x: color_func(c['TWEET']['hashtag'])(x)
+        if x.startswith('#')
+        else x,
+        formater)
+    formater = ' '.join(formater)
+    # Notice
+    notice = light_magenta('Quoting: "') + formater + light_magenta('"')
+    printNicely(notice)
+    return formater
+
+
 # Start the color cycle
 start_cycle()