Switch to unified view

a/webui.py b/webui.py
...
...
2
#{{{ imports
2
#{{{ imports
3
import os
3
import os
4
import bottle
4
import bottle
5
import time
5
import time
6
import sys
6
import sys
7
8
try:
9
    from recoll import recoll
10
    from recoll import rclextract
11
    hasrclextract = True
12
except:
13
    import recoll
14
    hasrclextract = False
15
16
import datetime
7
import datetime
17
import glob
8
import glob
18
import hashlib
9
import hashlib
19
import json
10
import json
20
import csv
11
import csv
21
import StringIO
12
import StringIO
22
import ConfigParser
13
import ConfigParser
23
import string
14
import string
24
import shlex
15
import shlex
25
import urllib
16
import urllib
26
from pprint import pprint
17
# import recoll and rclextract
18
try:
19
    from recoll import recoll
20
    from recoll import rclextract
21
    hasrclextract = True
22
except:
23
    import recoll
24
    hasrclextract = False
25
# import rclconfig system-wide or local copy
26
try:
27
    from recoll import rclconfig
28
except:
29
    import rclconfig
27
#}}}
30
#}}}
28
#{{{ settings
31
#{{{ settings
29
# recoll settings
30
RECOLL_CONFS = [ '$RECOLL_CONFDIR', '~/.recoll', '/usr/share/recoll/examples' ]
31
32
# settings defaults
32
# settings defaults
33
DEFAULTS = {
33
DEFAULTS = {
34
    'context': 30,
34
    'context': 30,
35
    'stem': 1,
35
    'stem': 1,
36
    'timefmt': '%c',
36
    'timefmt': '%c',
...
...
95
            out += fn[i]
95
            out += fn[i]
96
        else:
96
        else:
97
            out += "_"
97
            out += "_"
98
    return out
98
    return out
99
#}}}
99
#}}}
100
#{{{ recoll_get_config
101
def recoll_get_config():
102
    # find recoll.conf
103
    for d in RECOLL_CONFS:
104
        d = os.path.expanduser(d)
105
        d = os.path.expandvars(d)
106
        if os.path.isdir(d):
107
            confdir = d
108
            break
109
    # read recoll.conf
110
    rc_ini_str = '[main]\n' + open(confdir + '/recoll.conf', 'r').read().replace('\\\n', '')
111
    rc_ini_fp = StringIO.StringIO(rc_ini_str)
112
    rc_ini = ConfigParser.RawConfigParser()
113
    rc_ini.readfp(rc_ini_fp)
114
    # parse recoll.conf
115
    rc = {}
116
    for s in rc_ini.sections():
117
        rc[s] = {}
118
        for k, v in rc_ini.items(s):
119
            rc[s][k] = v
120
    return confdir, rc
121
#}}}
122
#{{{ get_config
100
#{{{ get_config
123
def get_config():
101
def get_config():
124
    config = {}
102
    config = {}
125
    # get useful things from recoll.conf
103
    # get useful things from recoll.conf
126
    config['confdir'], rc = recoll_get_config()
104
    rclconf = rclconfig.RclConfig()
105
    config['confdir'] = rclconf.getConfDir()
127
    config['dirs'] = shlex.split(rc['main']['topdirs'])
106
    config['dirs'] = shlex.split(rclconf.getConfParam('topdirs'))
128
    # get config from cookies or defaults
107
    # get config from cookies or defaults
129
    for k, v in DEFAULTS.items():
108
    for k, v in DEFAULTS.items():
130
        value = select([bottle.request.get_cookie(k), v])
109
        value = select([bottle.request.get_cookie(k), v])
131
        config[k] = type(v)(value)
110
        config[k] = type(v)(value)
132
    # get mountpoints
111
    # get mountpoints