OSDN Git Service

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