X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fconfig.py;h=828a51710a6cbfccd740274e88f9969ba7b0fee4;hp=daf1cfd7f654d095d6a954975230c6d21d4375da;hb=a5301bc04171f5a7cb1a928ced38e912628cfa85;hpb=533edcdb18f9b2aa00fa8f00c7093ae219765b53 diff --git a/rainbowstream/config.py b/rainbowstream/config.py index daf1cfd..828a517 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -1,27 +1,50 @@ -# 'search': max search record -SEARCH_MAX_RECORD = 5 -# 'home': default number of home's tweets -HOME_TWEET_NUM = 5 -# 'allrt': default number of retweets -RETWEETS_SHOW_NUM = 5 -# 'inbox','sent': default number of direct message -MESSAGES_DISPLAY = 5 -# 'trend': max trending topics -TREND_MAX = 10 -# 'switch': Filter and Ignore list ex: ['@fat','@mdo'] -ONLY_LIST = [] -IGNORE_LIST = [] +import json +import re +import os +import os.path -# Autocomplete history file name -HISTORY_FILENAME = 'completer.hist' +from .db import * -USER_DOMAIN = 'userstream.twitter.com' -PUBLIC_DOMAIN = 'stream.twitter.com' -SITE_DOMAIN = 'sitestream.twitter.com' -DOMAIN = USER_DOMAIN +db = RainbowDB() -IMAGE_SHIFT = 10 -IMAGE_MAX_HEIGHT = 40 +# Regular expression for comments +comment_re = re.compile( + '(^)?[^\S\n]*/(?:\*(.*?)\*/[^\S\n]*|/[^\n]*)($)?', + re.DOTALL | re.MULTILINE +) -# Color name can be 'grey', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', or 'white' -SCREEN_NAME_COLOR = 'grey' + +def load_config(filepath): + """ + Load config from filepath + """ + try: + with open(filepath) as f: + content = ''.join(f.readlines()) + match = comment_re.search(content) + while match: + content = content[:match.start()] + content[match.end():] + match = comment_re.search(content) + db.theme_store('user') + return json.loads(content) + except IOError: + db.theme_store('default') + return None + +# Load default colorset +c = {} +default_config = 'rainbowstream/colorset/default.json' +data = load_config(default_config) +if data: + for d in data: + c[d] = data[d] +# Load user's colorset +rainbow_config = os.environ.get( + 'HOME', + os.environ.get( + 'USERPROFILE', + '')) + os.sep + '.rainbow_config.json' +data = load_config(rainbow_config) +if data: + for d in data: + c[d] = data[d]