3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
7 from decimal import Decimal
14 def __init__(self, dbname, user, passwd, host="localhost", port=3306):
18 self.dbpasswd = passwd
21 con = MySQLdb.connect(user=user, passwd=passwd)
23 cur.execute('CREATE DATABASE ' + dbname + " DEFAULT CHARACTER SET utf8")
28 db = self.connect_db()
31 CREATE TABLE timeline \
33 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\
39 deltatime VARCHAR(5),\
42 UNIQUE uni (type,chtxt,title,btime,deltaday)\
47 self.new_epg_timeline("")
48 self.new_in_timeline_log()
49 self.new_in_auto_bayes_key()
50 self.new_in_auto_jbk_key()
52 self.new_in_settings()
53 self.new_auto_timeline_bayes()
54 self.new_auto_timeline_keyword()
59 con = MySQLdb.connect(db=self.dbname, host=self.dbhost, port=self.dbport, user=self.dbusr, passwd=self.dbpasswd, charset="utf8")
61 cur.execute('set names utf8;')
63 def close_db(self, db):
67 db = self.connect_db()
69 db[1].execute('drop table epg_ch')
77 ontv VARCHAR(30) PRIMARY KEY,\
89 def add_epg_ch(self, bctype, ontv, chtxt, ch, csch, updatetime):
90 db = self.connect_db()
93 VALUES (%s,%s,%s,%s,%s,"",%s,%s,%s)', \
94 (bctype, ontv, chtxt, ch, csch, updatetime, "1","1"))
96 def select_by_ontv_epg_ch(self, ontv):
97 db = self.connect_db()
98 dbexe = db[1].execute("\
99 SELECT bctype,ontv,chtxt,ch,csch,updatetime \
106 dls = db[1].fetchall()
110 r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S")
113 def select_by_chtxt_epg_ch(self, chtxt):
114 db = self.connect_db()
115 dbexe = db[1].execute("\
116 SELECT bctype,ontv,chtxt,ch,csch,updatetime \
123 dls = db[1].fetchall()
127 r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S")
130 def select_by_bctype_epg_ch(self, bctype):
131 db = self.connect_db()
132 dbexe = db[1].execute("\
133 SELECT bctype,ontv,chtxt,ch,csch,updatetime,status \
135 WHERE bctype = %s", \
140 dls = db[1].fetchall()
143 #recdblist.printutf8(dl)
145 r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S")
149 def select_by_ch_epg_ch(self, ch):
150 db = self.connect_db()
151 dbexe = db[1].execute("\
153 bctype,ontv,chtxt,ch,csch,updatetime \
160 dls = db[1].fetchall()
164 r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S")
167 def select_all_epg_ch(self):
168 db = self.connect_db()
169 dbexe = db[1].execute("\
170 SELECT bctype,ontv,chtxt,ch,csch,updatetime \
176 dls = db[1].fetchall()
180 r[5] = r[5].strftime("%Y-%m-%d %H:%M:%S")
183 def set_new_status(self,dhour):
184 db = self.connect_db()
185 dbexe = db[1].execute("UPDATE epg_ch \
189 updatetime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR) \
194 def select_get_update_epg_ch(self, dhour):
195 db = self.connect_db()
196 dbexe = db[1].execute("SELECT bctype,chtxt,status FROM epg_ch \
199 updatetime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR) \
205 ORDER BY status DESC")
207 #recdblist.printutf8(dbexe)
209 ret = db[1].fetchall()
212 def update_by_bctype_epg_ch(self, bctype):
213 db = self.connect_db()
219 WHERE bctype = %s", (bctype,))
221 def update_by_bctype_and_chtxt_epg_ch(self, bctype, chtxt):
222 db = self.connect_db()
228 WHERE bctype = %s AND chtxt = %s", (bctype, chtxt))
230 def update_status_by_bctype_epg_ch(self, bctype, status):
231 db = self.connect_db()
236 WHERE bctype = %s", \
240 def update_chname_by_ontv_epg_ch(self,ontv,chname):
241 db = self.connect_db()
250 def add_auto_proc_tmp(self,type,title,chtxt):
251 db = self.connect_db()
253 INSERT IGNORE into auto_proc_tmp \
255 values (%s,%s,%s)',(type,title,chtxt))
258 def new_auto_proc_tmp(self):
259 db = self.connect_db()
261 db[1].execute('drop table auto_proc_tmp')
266 CREATE TABLE auto_proc_tmp \
269 title VARCHAR(100) PRIMARY KEY,\
271 UNIQUE unibayeskey(title)\
276 def update_auto_proc(self):
277 db = self.connect_db()
279 db[1].execute('INSERT INTO auto_proc SELECT * FROM auto_proc_tmp')
283 def new_auto_proc(self):
284 db = self.connect_db()
286 db[1].execute('drop table auto_proc')
291 CREATE TABLE auto_proc \
294 title VARCHAR(100) PRIMARY KEY,\
296 UNIQUE unibayeskey(title)\
301 def drop_in_settings(self):
302 db = self.connect_db()
304 db[1].execute('drop table in_settings')
308 def new_in_settings(self):
309 db = self.connect_db()
312 CREATE TABLE in_settings \
316 auto_opt VARCHAR(20),\
317 auto_del_tmp TINYINT\
319 db[1].execute("INSERT IGNORE into in_settings VALUE (0,0,\"G\",1)")
323 def select_all_in_settings(self):
324 db = self.connect_db()
325 dbexe = db[1].execute("\
326 SELECT auto_jbk,auto_bayes,auto_del_tmp,auto_opt \
332 dls = db[1].fetchall()
342 def add_in_timeline_log(self , chtxt="", title="", btime="", etime="", opt="", exp="", longexp="", category=""):
343 db = self.connect_db()
345 INSERT IGNORE into in_timeline_log \
346 (chtxt,title,btime,etime,opt,exp,longexp,category) \
347 values (%s,%s,%s,%s,%s,%s,%s,%s)', \
348 ( chtxt, title, btime, etime, opt,exp,longexp,category))
351 def del_in_timeline_log(self, title="", chtxt="", btime=""):
355 db = self.connect_db()
357 DELETE FROM in_timeline_log \
358 WHERE title = %s AND chtxt = %s AND btime = %s", \
359 (title, chtxt, btime))
362 def new_in_timeline_log(self):
363 db = self.connect_db()
366 CREATE TABLE in_timeline_log \
368 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\
376 category VARCHAR(100),\
377 UNIQUE uni (chtxt,title,btime,category)\
382 def select_chtxt_by_title_timeline_log(self,title):
383 db = self.connect_db()
384 dbexe = db[1].execute("\
386 FROM in_timeline_log \
387 WHERE title LIKE \"%"+title+"%\"\
389 ORDER by sum(1) DESC limit 1")
390 retdb=db[1].fetchall()
397 def add_timeline(self, type="", chtxt="", title="", btime="", etime="", deltatime="", deltaday="", opt=""):
398 db = self.connect_db()
400 INSERT IGNORE into timeline \
401 (type,chtxt,title,btime,etime,deltatime,deltaday,opt) \
402 values (%s,%s,%s,%s,%s,%s,%s,%s)', \
403 (type, chtxt, title, btime, etime, deltatime, deltaday, opt))
406 def del_timeline(self, type="", title="", chtxt="", btime=""):
410 db = self.connect_db()
412 DELETE FROM timeline \
413 WHERE type = %s AND title = %s AND chtxt = %s AND btime = %s", \
414 (type, title, chtxt, btime))
417 def select_all_timeline(self):
418 db = self.connect_db()
420 dbr = db[1].execute("\
421 SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt \
423 dbl = db[1].fetchall()
426 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in dbl:
431 btime = btime.strftime("%Y-%m-%d %H:%M:%S")
432 etime = etime.strftime("%Y-%m-%d %H:%M:%S")
436 ret['deltatime'] = ""
438 if deltatime == None:
443 ret['deltatime'] = deltatime
444 elif typet == 'keyevery':
445 ret['deltatime'] = deltatime
446 ret['deltaday'] = deltaday
450 def select_bytime_timeline(self, dminutes):
451 db = self.connect_db()
453 #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
454 dbr = db[1].execute("SELECT \
455 type, chtxt, title, btime, etime, deltatime ,deltaday ,opt \
457 WHERE btime BETWEEN DATE_SUB(now(),INTERVAL " + dminutes + " MINUTE ) AND \
458 DATE_ADD(now(),INTERVAL " + dminutes + " MINUTE )")
459 dbl = db[1].fetchall()
461 #recdblist.printutf8(dbl)
463 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in dbl:
468 btime = btime.strftime("%Y-%m-%d %H:%M:%S")
469 etime = etime.strftime("%Y-%m-%d %H:%M:%S")
473 if deltatime == None or deltatime == "":
475 if deltaday == None or deltaday == "":
477 if typet == recdblist.REC_KEYWORD:
478 ret['deltatime'] = deltatime
479 elif typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS:
480 ret['deltatime'] = deltatime
481 ret['deltaday'] = deltaday
484 def select_bytime_all_timeline(self,btime,etime):
485 db = self.connect_db()
487 #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
488 dbr = db[1].execute("SELECT \
489 type, chtxt, title, btime, etime, deltatime ,deltaday ,opt \
491 WHERE btime > %s AND \
492 etime < %s",(btime,etime))
493 dbl = db[1].fetchall()
495 #recdblist.printutf8(dbl)
497 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in dbl:
502 btime = btime.strftime("%Y-%m-%d %H:%M:%S")
503 etime = etime.strftime("%Y-%m-%d %H:%M:%S")
507 if deltatime == None or deltatime == "":
509 if deltaday == None or deltaday == "":
511 if typet == recdblist.REC_KEYWORD:
512 ret['deltatime'] = deltatime
513 elif typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS:
514 ret['deltatime'] = deltatime
515 ret['deltaday'] = deltaday
518 def count_schedule_timeline(self, btime, etime):
521 return [te num,bs/cs num]
523 db = self.connect_db()
524 dbexe = "SELECT type,epg_ch.bctype,timeline.chtxt,title FROM timeline INNER JOIN epg_ch ON timeline.chtxt=epg_ch.chtxt"
525 dbexe = dbexe + " WHERE ((NOT(( timeline.etime <= %s )OR( timeline.btime >= %s ))) OR ((timeline.btime = %s) AND (timeline.etime = %s) ) )"
528 db[1].execute(dbexe, (btime, etime,btime,etime))
529 for typet, bctypet, chtxtt, titlet in db[1].fetchall():
530 if (typet == recdblist.REC_RESERVE) or (typet == recdblist.REC_FINAL_RESERVE) or (typet == recdblist.REC_KEYWORD) or (typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS):
531 if bctypet.find("cs") > -1:
533 elif bctypet.find("bs") > -1:
535 elif bctypet.find("te") > -1:
539 def select_bytime_bychtxt_all_timeline(self,btime,etime,chtxt):
540 db = self.connect_db()
542 #dbr=db[1].execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime WHERE btime < DATE_SUB(now(),INTERVAL "+dminutes+" MINUTE ) AND btime > DATE_ADD(now(),INTERVAL "+dminutes+" MINUTE )")
543 dbr = db[1].execute("SELECT \
544 type, chtxt, title, btime, etime, deltatime ,deltaday ,opt \
546 WHERE btime > %s AND \
548 AND chtxt=%s ",(btime,etime,chtxt))
549 dbl = db[1].fetchall()
551 #recdblist.printutf8(dbl)
553 for typet, chtxt, title, btime, etime, deltatime, deltaday, opt in dbl:
558 btime = btime.strftime("%Y-%m-%d %H:%M:%S")
559 etime = etime.strftime("%Y-%m-%d %H:%M:%S")
563 if deltatime == None or deltatime == "":
565 if deltaday == None or deltaday == "":
567 if typet == recdblist.REC_KEYWORD:
568 ret['deltatime'] = deltatime
569 elif typet == recdblist.REC_KEYWORD_EVERY_SOME_DAYS:
570 ret['deltatime'] = deltatime
571 ret['deltaday'] = deltaday
574 def delete_old_timeline(self, dhour):
575 db = self.connect_db()
577 DELETE FROM timeline \
579 btime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR )")
582 def new_in_auto_jbk_key(self):
583 db = self.connect_db()
586 CREATE TABLE in_auto_jbk_key \
588 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\
589 keyword VARCHAR(200),\
590 UNIQUE unijbk (keyword)\
595 def add_in_auto_jbk_key(self,key):
596 db = self.connect_db()
598 INSERT IGNORE into in_auto_jbk_key \
604 def select_all_in_auto_jbk_key(self):
605 db = self.connect_db()
606 dbexe = db[1].execute("\
608 FROM in_auto_jbk_key \
612 ret = db[1].fetchall()
615 def drop_in_status(self):
616 db = self.connect_db()
618 db[1].execute('drop table in_status')
622 def new_in_status(self):
623 db = self.connect_db()
626 CREATE TABLE in_status \
628 ts2avi TINYINT DEFAULT 0,\
629 terec TINYINT DEFAULT 0,\
630 bscsrec TINYINT DEFAULT 0,\
631 b252ts TINYINT DEFAULT 0,\
632 installed TINYINT DEFAULT 0\
634 db[1].execute("INSERT IGNORE into in_status VALUE (0,0,0,0,0)")
638 def select_all_in_status(self):
639 db = self.connect_db()
640 dbexe = db[1].execute("\
641 SELECT ts2avi,terec,bscsrec,b252ts \
647 dls = db[1].fetchall()
658 def change_ts2avi_in_status(self,i):
663 db = self.connect_db()
665 UPDATE in_status SET ts2avi=ts2avi+%s",i)
667 def change_terec_in_status(self,i):
672 db = self.connect_db()
674 UPDATE in_status SET terec=terec+%s",i)
676 def change_bscsrec_in_status(self,i):
681 db = self.connect_db()
683 UPDATE in_status SET bscsrec=bscsrec+%s",i)
685 def change_b252ts_in_status(self,i):
690 db = self.connect_db()
692 UPDATE in_status SET b252ts=b252ts+%s",i)
694 def select_installed_in_status(self):
695 db = self.connect_db()
696 dbexe = db[1].execute("\
697 SELECT ts2avi,terec,bscsrec,b252ts,installed \
703 dls = db[1].fetchall()
709 def change_installed_in_status(self):
713 db = self.connect_db()
715 UPDATE in_status SET installed=1")
717 def new_epg_timeline(self, bctype):
718 db = self.connect_db()
721 DELETE FROM epg_timeline \
722 WHERE bctype = %s", \
728 CREATE TABLE epg_timeline \
731 channel VARCHAR(100) NOT NULL,\
737 category VARCHAR(100),\
738 UNIQUE unitv(bctype,channel,start,stop,title)\
744 def add_epg_timeline(self, bctype, channel, start, stop, title, desc,longdesc, category):
745 db = self.connect_db()
747 INSERT IGNORE INTO epg_timeline \
748 VALUES (%s,%s,%s,%s,%s,%s,%s,%s)', \
749 (bctype, channel, start, stop, title, desc,longdesc,category))
752 def add_multi_epg_timeline(self, tvlists):
754 tvlists is (bctype,channel,start,stop,title,desc,longdesc,category) lists.
756 db = self.connect_db()
758 INSERT IGNORE INTO epg_timeline \
759 (bctype,channel,start,stop,title,exp,longexp,category) \
760 values(%s,%s,%s,%s,%s,%s,%s,%s)', \
763 def select_by_time_ngram_epg_timeline(self, btime, etime, chtxt):
764 db = self.connect_db()
767 epg_ch.chtxt,title,start,stop,exp,longexp,category \
770 WHERE epg_ch.ontv=epg_timeline.channel \
777 dbcmd = db[1].execute(dbexe, (btime, etime, chtxt))
780 retall = db[1].fetchall()
783 def select_by_time_keyword_auto_suggest_epg_timeline(self,keyword,btime,etime):
784 db = self.connect_db()
787 epg_ch.chtxt,title,start,stop,exp,longexp,category \
790 WHERE epg_ch.ontv=epg_timeline.channel \
797 ( title LIKE \'%%"+keyword+"%%\' ) \
799 ( exp LIKE \'%%"+keyword+"%%\' ) \
801 ( longexp LIKE \'%%"+keyword+"%%\' ) \
803 dbcmd = db[1].execute(dbexe,(btime, etime))
806 retall = db[1].fetchall()
809 def new_in_auto_bayes_key(self):
810 db = self.connect_db()
812 db[1].execute('CREATE TABLE in_auto_bayes_key \
814 keychar VARCHAR(10),\
816 ratio_rec DECIMAL(32,14),\
817 ratio_all DECIMAL(32,14),\
818 UNIQUE unibayeskey(keychar,chtxt)\
820 db[1].execute('CREATE INDEX keycharindex ON in_auto_bayes_key(keychar)')
825 def add_in_auto_bayes_key(self,key,chtxt,ratio_rec,ratio_all):
826 db = self.connect_db()
827 ratio_rec=str(ratio_rec)
828 ratio_all=str(ratio_all)
830 INSERT IGNORE INTO in_auto_bayes_key \
831 (keychar,chtxt,ratio_rec,ratio_all) \
832 values (%s,%s,%s,%s)',\
833 (key,chtxt,ratio_rec,ratio_all))
835 def add_num_in_auto_bayes_key(self,chtxt,add_rec_num,add_all_num):
836 db = self.connect_db()
837 add_rec_num=str(add_rec_num)
838 add_all_num=str(add_all_num)
840 UPDATE in_auto_bayes_key SET ratio_rec=CONVERT(ratio_rec+%s,DECIMAL(32,14)),ratio_all=CONVERT(ratio_all+%s,DECIMAL(32,14)) WHERE keychar=\"NUM\" AND chtxt=%s",\
841 (add_rec_num,add_all_num,chtxt))
843 def change_in_auto_bayes_key(self,key,chtxt,new_ratio_rec,new_ratio_all):
846 db = self.connect_db()
848 UPDATE in_auto_bayes_key SET ratio_rec=%s,ratio_all=%s WHERE keychar=%s AND chtxt=%s",(str(new_ratio_rec),str(new_ratio_all),key,chtxt)\
851 def change_ratio_all_reduce_in_auto_bayes_key(self,chtxt,beforenum,newnum):
852 beforenum=str(beforenum)
854 db = self.connect_db()
856 UPDATE in_auto_bayes_key SET ratio_all=CONVERT(ratio_all*%s/(%s+%s),DECIMAL(32,14)) WHERE chtxt=%s AND NOT (keychar=\"NUM\")",(beforenum,newnum,beforenum,chtxt)\
859 def change_ratio_all_in_auto_bayes_key(self,key,chtxt,beforenum,addnum):
860 db = self.connect_db()
862 beforenum=str(beforenum)
863 db[1].execute("INSERT INTO in_auto_bayes_key (keychar,chtxt,ratio_rec,ratio_all) \
864 VALUES (%s,%s,%s,%s)\
865 ON DUPLICATE KEY UPDATE \
866 ratio_all=CONVERT((ratio_all*%s+%s)/%s,DECIMAL(32,14))",(key,chtxt,"0",str(Decimal(addnum)/beforenumf),beforenum,chtxt,key))
868 def change_multi_ratio_all_in_auto_bayes_key(self,chtxt,beforenum,list):
870 list={key:addnum}のリスト
873 beforenum=str(beforenum)
874 db = self.connect_db()
875 for i,j in list.items():
876 retl=(i,chtxt,"0",str(Decimal(j)/beforenumf),beforenum,str(j),beforenum)
877 db[1].execute("INSERT INTO in_auto_bayes_key (keychar,chtxt,ratio_rec,ratio_all) \
878 VALUES (%s,%s,%s,%s)\
879 ON DUPLICATE KEY UPDATE \
880 ratio_all=CONVERT((ratio_all*%s+%s)/%s,DECIMAL(32,14))",retl)
882 def change_ratio_rec_reduce_in_auto_bayes_key(self,chtxt,beforenum,newnum):
883 beforenum=str(beforenum)
885 db = self.connect_db()
887 UPDATE in_auto_bayes_key SET ratio_rec=CONVERT(ratio_rec*%s/(%s+%s),DECIMAL(32,14)) WHERE chtxt=%s AND NOT (keychar=\"NUM\")",(beforenum,newnum,beforenum,chtxt)\
890 def change_ratio_rec_in_auto_bayes_key(self,key,chtxt,beforenum,addnum):
891 db = self.connect_db()
893 beforenum=str(beforenum)
894 db[1].execute("INSERT INTO in_auto_bayes_key (keychar,chtxt,ratio_rec,ratio_all) \
895 VALUES (%s,%s,%s,%s)\
896 ON DUPLICATE KEY UPDATE \
897 ratio_rec=CONVERT((ratio_rec*%s+%s)/%s,DECIMAL(32,14))",(key,chtxt,str(Decimal(addnum)/beforenumf),"0",beforenum,chtxt,key))
899 def change_multi_ratio_rec_in_auto_bayes_key(self,chtxt,beforenum,list):#self,key,chtxt,beforenum,addnum):
901 beforenum=str(beforenum)
902 db = self.connect_db()
903 for i,j in list.items():
904 retl=(i,chtxt,str(Decimal(j)/beforenumf),"0",beforenum,str(j),beforenum)
905 db[1].execute("INSERT INTO in_auto_bayes_key (keychar,chtxt,ratio_rec,ratio_all) \
906 VALUES (%s,%s,%s,%s)\
907 ON DUPLICATE KEY UPDATE \
908 ratio_rec=CONVERT((ratio_rec*%s+%s)/%s,DECIMAL(32,14))",retl)
910 def select_by_key_in_auto_bayes_key(self,key,chtxt):
911 db = self.connect_db()
912 dbexe = db[1].execute("\
913 SELECT keychar,chtxt,ratio_rec,ratio_all \
914 FROM in_auto_bayes_key \
915 WHERE keychar = %s AND chtxt = %s", \
919 dls = db[1].fetchall()
926 def new_auto_timeline_keyword(self):
927 db = self.connect_db()
930 CREATE TABLE auto_timeline_keyword \
932 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\
937 UNIQUE uni (chtxt,title,btime,etime)\
941 def add_auto_timeline_keyword(self,chtxt="", title="", btime="", etime=""):
942 db = self.connect_db()
944 INSERT IGNORE into auto_timeline_keyword \
945 (chtxt,title,btime,etime) \
946 values (%s,%s,%s,%s)', \
947 (chtxt, title, btime, etime))
950 def delete_old_auto_timeline_keyword(self, dhour):
951 db = self.connect_db()
953 DELETE FROM auto_timeline_keyword \
955 btime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR )")
957 def new_auto_timeline_bayes(self):
958 db = self.connect_db()
961 CREATE TABLE auto_timeline_bayes \
963 id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,\
969 UNIQUE uni (chtxt,title,btime,etime)\
973 def add_auto_timeline_bayes(self,chtxt="", title="", btime="", etime="",point=""):
974 db = self.connect_db()
976 INSERT IGNORE into auto_timeline_bayes \
977 (chtxt,title,btime,etime,point) \
978 values (%s,%s,%s,%s,%s)', \
979 (chtxt, title, btime, etime,point))
981 def delete_old_auto_timeline_bayes(self, dhour):
982 db = self.connect_db()
984 DELETE FROM auto_timeline_bayes \
986 btime < DATE_SUB(now(),INTERVAL " + dhour + " HOUR )")