X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fconfig.py;h=ff2d17df7e51db45591898f5ca442f46d5e853de;hp=ed9b348f7187764ef38ce4c8b8b9aaa2bac3307a;hb=8b8566d13f923932bee8eec9487d35956797b796;hpb=305ce1279629262311ffcdf3137662a1d3aeb118 diff --git a/rainbowstream/config.py b/rainbowstream/config.py index ed9b348..ff2d17d 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -1,23 +1,59 @@ -# Max Search record -SEARCH_MAX_RECORD = 5 -# Default home tweet -HOME_TWEET_NUM = 5 -# Default direct message's number -MESSAGES_DISPLAY = 5 -# Autocomplete history -HISTORY_FILENAME = 'completer.hist' +import json +import re +import os +import os.path +from collections import OrderedDict -# Stream Domain -USER_DOMAIN = 'userstream.twitter.com' -PUBLIC_DOMAIN = 'stream.twitter.com' -SITE_DOMAIN = 'sitestream.twitter.com' -# Actually called -DOMAIN = USER_DOMAIN +# Regular expression for comments +comment_re = re.compile( + '(^)?[^\S\n]*/(?:\*(.*?)\*/[^\S\n]*|/[^\n]*)($)?', + re.DOTALL | re.MULTILINE +) -# Filter and Ignore list ex: ['@fat','@mdo'] -ONLY_LIST = [] -IGNORE_LIST = [] +def load_config(filepath): + """ + Load config from filepath + """ + 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) + return json.loads(content, object_pairs_hook=OrderedDict) -# Image shift and size -IMAGE_SHIFT = 10 -IMAGE_MAX_HEIGHT = 40 +# Config dictionary +c = {} + +# Load the initial config +config = os.path.dirname( + __file__) + '/colorset/config' +try: + data = load_config(config) + for d in data: + c[d] = data[d] +except: + pass + +# Load user's config +rainbow_config = os.environ.get( + 'HOME', + os.environ.get( + 'USERPROFILE', + '')) + os.sep + '.rainbow_config.json' +try: + data = load_config(rainbow_config) + for d in data: + c[d] = data[d] +except: + print('It seems that ~/.rainbow_config.json has wrong format :(') + +# Load default theme +theme_file = os.path.dirname( + __file__) + '/colorset/' + c['THEME'] + '.json' +try: + data = load_config(theme_file) + for d in data: + c[d] = data[d] +except: + pass