"""
path = os.path.dirname(
__file__) + '/colorset/config'
- data = load_config(path)
+ try:
+ data = load_config(path)
+ except:
+ raise Exception('No such config key.')
return data[key]
-
def get_config(key):
"""
Get current value of a config key
# Modify value
if value.isdigit():
value = int(value)
- elif value.lower() == 'True':
+ elif value.lower() == 'true':
value = True
- elif value.lower() == 'False':
+ elif value.lower() == 'false':
value = False
# Fix up
path = os.environ.get(
'USERPROFILE',
'')) + os.sep + '.rainbow_config.json'
data = load_config(path)
- fixup(data, key, value)
+ if key in data:
+ fixup(data, key, value)
+ else:
+ data[key] = value
+ c[key] = value
# Save
with open(path, 'w') as out:
json.dump(data, out, indent=4)
os.system('chmod 777 ' + path)
+def delete_config(key):
+ """
+ Delete a config key
+ """
+ path = os.environ.get(
+ 'HOME',
+ os.environ.get(
+ 'USERPROFILE',
+ '')) + os.sep + '.rainbow_config.json'
+ data = load_config(path)
+ # Drop key
+ if key in data and key in c:
+ data.pop(key)
+ c.pop(key)
+ else:
+ raise Exception('No such config key.')
+ # Save
+ with open(path, 'w') as out:
+ json.dump(data, out, indent=4)
+ os.system('chmod 777 ' + path)
+
+
def reload_config():
"""
Reload config
# Init config
-init_config()
\ No newline at end of file
+init_config()
"""
changed = False
data = get_all_config()
- for key in data:
- if data[key] != c[key]:
- changed = True
+ for key in c:
+ if key in data:
+ if data[key] != c[key]:
+ changed = True
if changed:
reload_config()
return globals()[func_name]
-def draw(t, iot=False, keyword=None, check_semaphore=False, fil=[], ig=[]):
+def draw(t, keyword=None, check_semaphore=False, fil=[], ig=[]):
"""
Draw the rainbow
"""
printNicely(line3)
# Display Image
- if iot and media_url:
+ if c['IMAGE_ON_TERM'] and media_url:
for mu in media_url:
try:
response = requests.get(mu)
printNicely(line3)
-def show_profile(u, iot=False):
+def show_profile(u):
"""
Show a profile
"""
# Display
printNicely('')
printNicely(line1)
- if iot:
+ if c['IMAGE_ON_TERM']:
try:
response = requests.get(profile_image_url)
image_to_display(BytesIO(response.content), 2, 20)
CONSUMER_SECRET)
-def init():
+def init(args):
"""
Init function
"""
db.theme_store(c['THEME'])
# Semaphore init
db.semaphore_store(False)
-
+ # Image on term
+ c['IMAGE_ON_TERM'] = args.image_on_term
def switch():
"""
if g['stuff'].isdigit():
num = int(g['stuff'])
for tweet in reversed(t.statuses.home_timeline(count=num)):
- draw(t=tweet, iot=g['iot'])
+ draw(t=tweet)
printNicely('')
except:
num = c['HOME_TWEET_NUM']
for tweet in reversed(t.statuses.user_timeline(count=num, screen_name=user[1:])):
- draw(t=tweet, iot=g['iot'])
+ draw(t=tweet)
printNicely('')
else:
printNicely(red('A name should begin with a \'@\''))
if g['stuff'].isdigit():
num = int(g['stuff'])
for tweet in reversed(t.statuses.mentions_timeline(count=num)):
- draw(t=tweet, iot=g['iot'])
+ draw(t=tweet)
printNicely('')
printNicely(magenta('This tweet has no retweet.'))
return
for tweet in reversed(rt_ary):
- draw(t=tweet, iot=g['iot'])
+ draw(t=tweet)
printNicely('')
tid = db.rainbow_to_tweet_query(id)[0].tweet_id
t.favorites.create(_id=tid, include_entities=False)
printNicely(green('Favorited.'))
- draw(t.statuses.show(id=tid), iot=g['iot'])
+ draw(t.statuses.show(id=tid))
printNicely('')
tid = db.rainbow_to_tweet_query(id)[0].tweet_id
t.favorites.destroy(_id=tid)
printNicely(green('Okay it\'s unfavorited.'))
- draw(t.statuses.show(id=tid), iot=g['iot'])
+ draw(t.statuses.show(id=tid))
printNicely('')
printNicely('Newest tweets:')
for i in reversed(xrange(c['SEARCH_MAX_RECORD'])):
draw(t=rel[i],
- iot=g['iot'],
keyword=g['stuff'])
printNicely('')
else:
user = t.users.show(
screen_name=screen_name[1:],
include_entities=False)
- show_profile(user, g['iot'])
+ show_profile(user)
except:
printNicely(red('Omg no user.'))
else:
light_green(k) + ': ' + light_yellow(str(all_config[k]))
printNicely(line)
else:
- printNicely(red('No config key like this.'))
+ printNicely(red('No such config key.'))
# Print specific config's default value
elif len(g['stuff'].split()) == 2 and g['stuff'].split()[-1] == 'default':
key = g['stuff'].split()[0]
- value = get_default_config(key)
- line = ' ' * 2 + light_green(key) + ': ' + light_magenta(value)
- printNicely(line)
+ try:
+ value = get_default_config(key)
+ line = ' ' * 2 + light_green(key) + ': ' + light_magenta(value)
+ printNicely(line)
+ except:
+ printNicely(light_magenta('This config key does not exist in default.'))
+ # Delete specific config key in config file
+ elif len(g['stuff'].split()) == 2 and g['stuff'].split()[-1] == 'drop':
+ key = g['stuff'].split()[0]
+ try:
+ delete_config(key)
+ printNicely(light_green('Config key is dropped.'))
+ except:
+ printNicely(red('No such config key.'))
# Set specific config
elif len(g['stuff'].split()) == 3 and g['stuff'].split()[1] == '=':
key = g['stuff'].split()[0]
light_green('config ASCII_ART') + ' will output current value of ' +\
light_yellow('ASCII_ART') + ' config key.\n'
usage += s * 3 + \
- light_green('config ASCII_ART default') + ' will output default value of ' + \
- light_yellow('ASCII_ART') + ' config key.\n'
+ light_green('config TREND_MAX default') + ' will output default value of ' + \
+ light_yellow('TREND_MAX') + ' config key.\n'
+ usage += s * 3 + \
+ light_green('config CUSTOM_CONFIG drop') + ' will drop ' + \
+ light_yellow('CUSTOM_CONFIG') + ' config key.\n'
usage += s * 3 + \
- light_green('config ASCII_ART = False') + ' will set value of ' + \
- light_yellow('ASCII_ART') + ' config key to ' + \
- light_yellow('False') + '.\n'
+ light_green('config IMAGE_ON_TERM = true') + ' will set value of ' + \
+ light_yellow('IMAGE_ON_TERM') + ' config key to ' + \
+ light_yellow('True') + '.\n'
# Screening
usage += '\n'
usage += s + grey(u'\u266A' + ' Screening \n')
elif tweet.get('text'):
draw(
t=tweet,
- iot=args.image_on_term,
keyword=args.track_keywords,
check_semaphore=True,
fil=args.filter,
# Initial
args = parse_arguments()
try:
- init()
+ init(args)
except TwitterHTTPError:
printNicely('')
printNicely(
g['reset'] = True
g['prefix'] = True
g['stream_pid'] = p.pid
- g['iot'] = args.image_on_term
listen()