OSDN Git Service

stop using trunk or dist directory in rec10 project.
[rec10/rec10-git.git] / rec10 / recdb.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009-2011 Yukikaze
5 import chdb
6 import n_gram
7 import rec10d
8 import recdblist
9
10 def reserveKeyword(keyword, chtxt, btime, etime, deltatime, opt):
11     rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt)
12 def reserveEverydayKeyword(keyword, chtxt, btime, etime, deltatime, opt, deltaday,count):
13     tcount=count
14     if tcount<0:
15         tcount=-1
16     rec10d.rec10db.add_timeline(type=recdblist.REC_KEYWORD_EVERY_SOME_DAYS, chtxt=chtxt, title=keyword, btime=btime, etime=etime, deltatime=deltatime, opt=opt, deltaday=deltaday,counter=tcount)
17 def reserveReckey(type, title, chtxt, btime, etime, opt):
18     rec10d.rec10db.add_timeline(type=type, chtxt=chtxt, title=title, btime=btime, etime=etime, opt=opt)
19 def deleteReckey(type, title, chtxt, btime):
20     rec10d.rec10db.del_timeline(type=type, title=title, chtxt=chtxt, btime=btime)
21 def reserveAutoKeyword(chtxt,title,btime,etime):
22     rec10d.rec10db.add_auto_timeline_keyword(chtxt, title, btime, etime)
23 def addAutoBayesKeyword(chtxt,title,btime,etime,point):
24     rec10d.rec10db.add_auto_timeline_bayes(chtxt, title, btime, etime,point)
25 def getProgramsInTheseHours(dhour):
26     dhour = int(dhour)
27     dminutes = 60 * dhour
28     dminutes = str(dminutes)
29     return rec10d.rec10db.select_bytime_timeline(dminutes)
30 def getProgramsInTheseMinutes(dminutes):
31     return rec10d.rec10db.select_bytime_timeline(dminutes)
32 def countRecNow(dhour):
33     d = getProgramsInTheseHours(dhour)
34     ret = 0
35     for i in d:
36         t = i['type']
37         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
38             ret = ret + 1
39     return ret
40 def countRecNow_minutes(dminutes):
41     d = getProgramsInTheseMinutes(dminutes)
42     ret = 0
43     for i in d:
44         t = i['type']
45         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
46             ret = ret + 1
47     return ret
48 def countRecNow_minutes_BSCS(dminutes):
49     d = getProgramsInTheseMinutes(dminutes)
50     ret = 0
51     for i in d:
52         t = i['type']
53         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
54             if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) > 2:
55                 ret = ret + 1
56     return ret
57 def countRecNow_minutes_TE(dminutes):
58     d = getProgramsInTheseMinutes(dminutes)
59     ret = 0
60     for i in d:
61         t = i['type']
62         if t == "key" or t == "keyevery" or t == "rec" or t == "res":
63             if len(chdb.searchCHFromChtxt(i['chtxt'])['ch']) < 3:
64                 ret = ret + 1
65     return ret
66 def deleteOldProgramBeforeTheseHours(dhour):
67     """
68     delete keys except recdblist.REC_MISS_ENCODE and recdblist.REC_KEYWORD_EVERY_SOME_DAYS before dhour hours from now.
69     """
70     rec10d.rec10db.delete_old_timeline(dhour)
71 def delete_old_auto_keyword(dhour):
72     rec10d.rec10db.delete_old_auto_timeline_keyword(dhour)
73 def delete_old_auto_bayes(dhour):
74     rec10d.rec10db.delete_old_auto_timeline_bayes(dhour)
75 def getAll():
76     return rec10d.rec10db.select_all_timeline()
77 def addRecLogProgram(title,chtxt,btime,etime,opt,exp,longexp,category):
78     rec10d.rec10db.add_in_timeline_log(chtxt,title,btime,etime,opt,exp,longexp,category)
79 def getAllJbkKeyword():
80     return rec10d.rec10db.select_all_in_auto_jbk_key()
81 def checkDuplicated(title,chtxt,epgbtime,epgetime):
82     tl=rec10d.rec10db.select_byepgtime_all_timeline(epgbtime,epgetime)
83     nel=rec10d.rec10db.select_bytime_all_timeline(epgbtime, epgetime)
84     dup=0
85     for t in tl:
86         if t["title"]==title and t["chtxt"]==chtxt:
87             dup=1
88         elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
89             dup=1
90     for t in nel:
91         if t["title"]==title and t["chtxt"]==chtxt:
92             dup=1
93         elif n_gram.trigram(t["title"],title)> 500 and t["chtxt"]==chtxt:
94             dup=1
95     return dup