From e9f5200b8602ad0427da3cc86d4406f6dcfd3141 Mon Sep 17 00:00:00 2001 From: Vu Nhat Minh Date: Thu, 3 Jul 2014 17:16:23 +0900 Subject: [PATCH] color from draw --- rainbowstream/colors.py | 64 -------------------------------------- rainbowstream/draw.py | 68 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 67 deletions(-) diff --git a/rainbowstream/colors.py b/rainbowstream/colors.py index 628f635..159244d 100644 --- a/rainbowstream/colors.py +++ b/rainbowstream/colors.py @@ -1,10 +1,3 @@ -import random -import itertools -from functools import wraps -from pyfiglet import figlet_format -from .config import * -from functools import reduce - def basic_color(code): """ @@ -61,60 +54,3 @@ on_light_blue = basic_color('104') on_light_magenta = basic_color('105') on_light_cyan = basic_color('106') on_white = basic_color('107') - -def init_cycle(): - colors_shuffle = [globals()[i.encode('utf8')] - if not i.startswith('RGB_') - else RGB(int(i[4:])) - for i in c['CYCLE_COLOR']] - return itertools.cycle(colors_shuffle) - -cyc = init_cycle() - -def order_rainbow(s): - """ - Print a string with ordered color with each character - """ - c = [colors_shuffle[i % 7](s[i]) for i in xrange(len(s))] - return reduce(lambda x, y: x + y, c) - - -def random_rainbow(s): - """ - Print a string with random color with each character - """ - c = [random.choice(colors_shuffle)(i) for i in s] - return reduce(lambda x, y: x + y, c) - - -def Memoize(func): - """ - Memoize decorator - """ - cache = {} - - @wraps(func) - def wrapper(*args): - if args not in cache: - cache[args] = func(*args) - return cache[args] - return wrapper - - -@Memoize -def cycle_color(s): - """ - Cycle the colors_shuffle - """ - return next(cyc)(s) - - -def ascii_art(text): - """ - Draw the Ascii Art - """ - fi = figlet_format(text, font='doom') - print('\n'.join( - [next(cyc)(i) for i in fi.split('\n')] - ) - ) diff --git a/rainbowstream/draw.py b/rainbowstream/draw.py index 2586289..c2119ff 100644 --- a/rainbowstream/draw.py +++ b/rainbowstream/draw.py @@ -1,11 +1,13 @@ -""" -Draw -""" +import random +import itertools import requests import datetime import time from twitter.util import printNicely +from functools import wraps +from pyfiglet import figlet_format +from functools import reduce from StringIO import StringIO from dateutil import parser from .c_image import * @@ -13,8 +15,68 @@ from .colors import * from .config import * from .db import * + db = RainbowDB() +def init_cycle(): + """ + Init the cycle + """ + colors_shuffle = [globals()[i.encode('utf8')] + if not i.startswith('RGB_') + else RGB(int(i[4:])) + for i in c['CYCLE_COLOR']] + return itertools.cycle(colors_shuffle) +cyc = init_cycle() + +def order_rainbow(s): + """ + Print a string with ordered color with each character + """ + c = [colors_shuffle[i % 7](s[i]) for i in xrange(len(s))] + return reduce(lambda x, y: x + y, c) + + +def random_rainbow(s): + """ + Print a string with random color with each character + """ + c = [random.choice(colors_shuffle)(i) for i in s] + return reduce(lambda x, y: x + y, c) + + +def Memoize(func): + """ + Memoize decorator + """ + cache = {} + + @wraps(func) + def wrapper(*args): + if args not in cache: + cache[args] = func(*args) + return cache[args] + return wrapper + + +@Memoize +def cycle_color(s): + """ + Cycle the colors_shuffle + """ + return next(cyc)(s) + + +def ascii_art(text): + """ + Draw the Ascii Art + """ + fi = figlet_format(text, font='doom') + print('\n'.join( + [next(cyc)(i) for i in fi.split('\n')] + )) + + def check_theme(): """ Check current theme and update if necessary -- 2.25.1