X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;ds=sidebyside;f=rainbowstream%2Fconfig.py;h=e75ec6727ac00bc9716eb3da9088c5095c4e0cef;hb=a65bd34c23ff2b9618410efcd3023bd5f9060d94;hp=df12df0dd285ff1fd117076f893f175b64db02b0;hpb=d51b4107ae3b0ac00b207ff8c79a85ed20b819be;p=rainbowstream.git diff --git a/rainbowstream/config.py b/rainbowstream/config.py index df12df0..e75ec67 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -1,19 +1,61 @@ -# This is RainbowStream App info -CONSUMER_KEY = 'Xk1DGhR1FJa4xjg7GbdogzLJw' -CONSUMER_SECRET = 'SpHtDmbSGCSm55AAlIeb2PsD3kGEzxyo1325rJgrND5abeOh2T' +import json +import re +import os +import os.path -# Max Search record -SEARCH_MAX_RECORD = 5 -# Default home tweet -HOME_TWEET_NUM = 5 +# Regular expression for comments +comment_re = re.compile( + '(^)?[^\S\n]*/(?:\*(.*?)\*/[^\S\n]*|/[^\n]*)($)?', + re.DOTALL | re.MULTILINE +) -# Stream Domain -USER_DOMAIN = 'userstream.twitter.com' -PUBLIC_DOMAIN = 'stream.twitter.com' -SITE_DOMAIN = 'sitestream.twitter.com' -# Actually called -DOMAIN = USER_DOMAIN -# 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) + +# Config dictionary +c = {} +# Load default +default_config = os.path.dirname(__file__) + '/colorset/default.json' +data = load_config(default_config) +for d in data: + c[d] = data[d] +c['theme'] = 'default' +# Load init if exist +try: + path = os.path.dirname(__file__) + '/colorset/init' + f = open(path) + lines = f.readlines() + if len(lines) > 1: + raise Exception('More than 1 default theme') + theme_name = lines[0].strip() + default_config = os.path.dirname(__file__)+'/colorset/'+theme_name+'.json' + data = load_config(default_config) + for d in data: + c[d] = data[d] + c['theme'] = theme_name + f.close() +except: + pass +# Load user's colorset +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] + c['theme'] = 'custom' +except: + pass