|
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
|