projects
/
rainbowstream.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #20 from bnrubin/master
[rainbowstream.git]
/
rainbowstream
/
draw.py
diff --git
a/rainbowstream/draw.py
b/rainbowstream/draw.py
index 0abdedee7657245f2380c1f020de20a0a4f2cee8..f23e4cacd70d8ab9558573289590a924673e3a8e 100644
(file)
--- a/
rainbowstream/draw.py
+++ b/
rainbowstream/draw.py
@@
-3,6
+3,7
@@
import itertools
import requests
import datetime
import time
import requests
import datetime
import time
+import re
from twitter.util import printNicely
from functools import wraps
from twitter.util import printNicely
from functools import wraps
@@
-19,6
+20,11
@@
db = RainbowDB()
g = {}
g = {}
+def unescape(s):
+ p = HTMLParser()
+ return p.unescape(s)
+
+
def init_cycle():
"""
Init the cycle
def init_cycle():
"""
Init the cycle
@@
-28,11
+34,9
@@
def init_cycle():
else term_color(int(i))
for i in c['CYCLE_COLOR']]
return itertools.cycle(colors_shuffle)
else term_color(int(i))
for i in c['CYCLE_COLOR']]
return itertools.cycle(colors_shuffle)
-g['cyc'] = init_cycle()
-g['cache'] = {}
-def
rese
t_cycle():
+def
star
t_cycle():
"""
Notify from rainbow
"""
"""
Notify from rainbow
"""
@@
-140,7
+144,7
@@
def color_func(func_name):
return globals()[func_name]
return globals()[func_name]
-def draw(t, iot=False, keyword=None, fil=[], ig=[]):
+def draw(t, iot=False, keyword=None,
check_semaphore=False,
fil=[], ig=[]):
"""
Draw the rainbow
"""
"""
Draw the rainbow
"""
@@
-157,6
+161,15
@@
def draw(t, iot=False, keyword=None, fil=[], ig=[]):
date = date - datetime.timedelta(seconds=time.timezone)
clock = date.strftime('%Y/%m/%d %H:%M:%S')
date = date - datetime.timedelta(seconds=time.timezone)
clock = date.strftime('%Y/%m/%d %H:%M:%S')
+ # Pull extended retweet text
+ try:
+ text = 'RT @{0}: {1}'.format(t['retweeted_status']['user']['screen_name'],
+ t['retweeted_status']['text'])
+ except:
+ pass
+
+ text = unescape(text)
+
# Get expanded url
try:
expanded_url = []
# Get expanded url
try:
expanded_url = []
@@
-219,16
+232,16
@@
def draw(t, iot=False, keyword=None, fil=[], ig=[]):
c['TWEET']['link'])(x) if x[
0:4] == 'http' else x,
tweet)
c['TWEET']['link'])(x) if x[
0:4] == 'http' else x,
tweet)
- # Highlight search keyword
- if keyword:
- tweet = lmap(
- lambda x: color_func(c['TWEET']['keyword'])(x) if
- ''.join(c for c in x if c.isalnum()).lower() == keyword.lower()
- else x,
- tweet
- )
- # Recreate tweet
+
+ # Highlight keyword
tweet = ' '.join(tweet)
tweet = ' '.join(tweet)
+ if keyword:
+ roj = re.search(keyword,tweet,re.IGNORECASE)
+ if roj:
+ occur = roj.group()
+ ary = tweet.split(occur)
+ delimeter = color_func(c['TWEET']['keyword'])(occur)
+ tweet = delimeter.join(ary)
# Draw rainbow
line1 = u"{u:>{uw}}:".format(
# Draw rainbow
line1 = u"{u:>{uw}}:".format(
@@
-241,6
+254,12
@@
def draw(t, iot=False, keyword=None, fil=[], ig=[]):
)
line3 = ' ' + tweet
)
line3 = ' ' + tweet
+ # Check the semaphore lock
+ if check_semaphore:
+ while db.semaphore_query():
+ time.sleep(0.5)
+
+ # Output
printNicely('')
printNicely(line1)
printNicely(line2)
printNicely('')
printNicely(line1)
printNicely(line2)
@@
-262,7
+281,7
@@
def print_message(m):
"""
sender_screen_name = '@' + m['sender_screen_name']
sender_name = m['sender']['name']
"""
sender_screen_name = '@' + m['sender_screen_name']
sender_name = m['sender']['name']
- text =
m['text']
+ text =
unescape(m['text'])
recipient_screen_name = '@' + m['recipient_screen_name']
recipient_name = m['recipient']['name']
mid = m['id']
recipient_screen_name = '@' + m['recipient_screen_name']
recipient_name = m['recipient']['name']
mid = m['id']
@@
-445,3
+464,7
@@
def print_list(group):
printNicely(line4)
printNicely('')
printNicely(line4)
printNicely('')
+
+
+# Start the color cycle
+start_cycle()