forked from ajing2/coupon-windows
-
Notifications
You must be signed in to change notification settings - Fork 0
/
searcher.py
77 lines (55 loc) · 1.66 KB
/
searcher.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import sys
import time
import traceback
from base import SpecialFormatter
from datetime import datetime
from db import Database
from evaluation import Evaluation
from qwd import QWD
from urlutils import unquote
from utils import getchar, reprDict, runCommand, OutputPath
def run(configfile, name, content, savefile):
OutputPath.init(configFile)
try:
db = Database(configFile, 'specials')
db.initialize()
evaluation = Evaluation(configFile, db)
data = evaluation.search(content)
if savefile is not None:
with open(savefile, 'w') as fp:
fp.write(reprDict(data))
else:
print reprDict(data)
return 0
except KeyboardInterrupt:
pass
except Exception, e:
print 'Error occurs at', datetime.now().strftime('%Y-%m-%d %H:%M:%S')
traceback.print_exc(file=sys.stdout)
finally:
try:
db.quit()
except:
pass
return -1
if __name__ == '__main__':
reload(sys)
sys.setdefaultencoding('utf-8')
if len(sys.argv) < 3:
print 'Usage:\n\t', sys.argv[0], 'config-file content [savefile]\n' \
' Or:\n\t', sys.argv[0], 'config-file \"#key#[low-price#[high-price#]] [savefile]\"\n'
exit()
os.environ['TZ'] = 'Asia/Shanghai'
time.tzset()
name = os.path.basename(sys.argv[0])[:-3] # Remove ".py"
configFile = sys.argv[1]
content = unquote(sys.argv[2])
if len(sys.argv) > 3:
savefile = sys.argv[3]
else:
savefile = None
ret = run(configFile, name, content, savefile)
exit(ret)