X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fconfig.py;h=4b4aef6fbc44bd15dc587067d9c584361b13c71e;hp=90e6aa10b8f7df1502211d8df7eb96f1ded5569b;hb=4cf86720f0c6834b4af48c577685237f59447937;hpb=f405a7d0c54ab0657af3bab77f6eb28a98f8921e diff --git a/rainbowstream/config.py b/rainbowstream/config.py index 90e6aa1..4b4aef6 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -1,4 +1,48 @@ -# This is RainbowStream App info -CONSUMER_KEY = 'Xk1DGhR1FJa4xjg7GbdogzLJw' -CONSUMER_SECRET = 'SpHtDmbSGCSm55AAlIeb2PsD3kGEzxyo1325rJgrND5abeOh2T' -SEARCH_MAX_RECORD = 5 +import json +import re +import os +import os.path + +from .db import * + +db = RainbowDB() + +# Regular expression for comments +comment_re = re.compile( + '(^)?[^\S\n]*/(?:\*(.*?)\*/[^\S\n]*|/[^\n]*)($)?', + re.DOTALL | re.MULTILINE +) + + +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') + pass + +# Load default colorset +c = {} +default_config = 'rainbowstream/colorset/default.json' +data = load_config(default_config) +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) +for d in data: + c[d] = data[d]