OSDN Git Service

try to ready to use mysql.
[rec10/rec10-git.git] / rec10 / trunk / src / dbSQLite.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
5 #import sys
6 #import os
7 import sqlite3
8 import recdb
9 #db.execute('create table rectime
10 #(type TEXT,chtxt TEXT,title TEXT,btime TEXT,etime TEXT,deltatime TEXT,deltaday TEXT,opt TEXT,id INTEGER PRIMARY KEY,UNIQUE(type,chtxt,title,btime,deltaday))')
11 path=str(os.path.dirname(os.path.abspath(__file__)))+"/"
12 dbpath=path+"ch.db"
13 def __inif__(self,value):
14     dbpath=value
15     db=sqlite3.connect(dbpath)
16     try:
17         db.execute('create table rectime (type TEXT,chtxt TEXT,title TEXT,btime TEXT,etime TEXT,deltatime TEXT,deltaday TEXT,opt TEXT,id INTEGER PRIMARY KEY,UNIQUE(type,chtxt,title,btime,deltaday))')
18     except:
19         ""
20 def connect_db(tout=10):
21     global dbpath
22     """
23     dbへの接続(timeoutは秒)
24
25     """
26     return sqlite3.connect(dbpath,timeout=tout*1000)
27 def close_db(db):
28     db.close()
29 def add_rectime(type="",chtxt="",title="",btime="",etime="",deltatime="",deltaday="",opt=""):
30     db=connect_db(60)
31     t=0
32     while t<10
33         try:
34             db.execute('insert into rectime values (?,?,?,datetime(?),datetime(?),?,?,?)',(type,chtxt,title,btime,etime,deltatime,deltaday,opt)
35             break
36         except sqlite3.OperationalError:
37             t=t+1
38             time.sleep(1)
39     db.commit()
40     close_db(db)
41 def del_rectime(type="",title="",chtxt="",btime=""):
42     db=connect_db(60)
43     t=0
44     while t<10
45         try:
46             db.execute("delete from rectime where type = ? AND title = ? AND chtxt = ? AND btime = datetime(?)",(type,title,chtxt,btime))
47             break
48         except sqlite3.OperationalError:
49             t=t+1
50             time.sleep(1)
51     db.commit()
52     close_db(db)
53 def select_all_rectime():
54     db=connect_db(60)
55     recdata=[]
56     for typet, chtxt, title, btime, etime, deltatime ,deltaday ,opt in db.execute("SELECT type, chtxt, title, btime, etime, deltatime ,deltaday ,opt FROM rectime"):
57         ret={}
58         ret['type']=typet
59         ret['chtxt']=chtxt
60         ret['title']=title.encode('utf-8')
61         ret['btime']=btime
62         ret['etime']=etime
63         ret['opt']=opt
64         if deltatime==None:
65             deltatime="3"
66         if deltaday==None:
67             deltaday="7"
68         if typet=='key':
69             ret['deltatime']=deltatime
70         elif typet=='keyevery':
71             ret['deltatime']=deltatime
72             ret['deltaday']=deltaday
73         recdata.append(ret)
74     close_db(db)
75     return recdata
76 def select_bytime_rectime(dhour):
77     db=connect_db(60)
78     recdatum=[]
79     for typet, chtxt, title, btime, etime, deltatime ,deltaday ,opt in db.execute("SELECT type, chtxt, title, DATETIME(btime), DATETIME(etime), deltatime ,deltaday ,opt FROM rectime WHERE btime < datetime(\'now\',\'localtime\',\'+"+dhour+" hours\') AND btime >datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')"):
80         ret={}
81         ret['type']=typet
82         ret['chtxt']=chtxt
83         ret['title']=title.encode('utf-8')
84         ret['btime']=btime
85         ret['etime']=etime
86         ret['opt']=opt
87         if deltatime==None or deltatime=="":
88             deltatime="3"
89         if deltaday==None or deltaday=="":
90             deltaday="7"
91         if typet=='key':
92             ret['deltatime']=deltatime
93         elif typet=='keyevery':
94             ret['deltatime']=deltatime
95             ret['deltaday']=deltaday
96         recdatum.append(ret)
97     close_db(db)
98     return recdatum
99 def delete_old_rectime(dhour):
100     db=connect_db(60)
101     db.execute("DELETE FROM rectime WHERE NOT ( type = ? OR type = ? ) AND btime < datetime(\'now\',\'localtime\',\'-"+dhour+" hours\')",(recdb.REC_MISS_ENCODE,recdb.REC_KEYWORD_EVERY_SOME_DAYS))
102     db.commit()
103     close_db(db)
104 def new_tv(bctype):
105     db=connect_db(60)
106     try:
107         db.execute("delete from tv where bctype = ?",bctype)
108     except:
109         ""
110     try:
111         db.execute('create table tv (bctype TEXT,channel TEXT NOT NULL,start TEXT,stop  TEXT,title TEXT,desc  TEXT)')
112     except:
113         ""
114     db.commit()
115     close_db(db)
116 def add_tv(bctype,channel,start,stop,title,desc):
117     db=connect_db(60)
118     t=0
119     while t<10
120         try:
121             db.execute('insert into tv values (?,?,?,?,?,?)',(bctype,channel,start,stop,title,desc))
122             break
123         except sqlite3.OperationalError:
124             t=t+1
125             time.sleep(1)
126     db.commit()
127     close_db(db)
128 def new_ch(bctype):
129     db=connect_db(60)
130     try:
131         db.execute("delete from ch where bctype = ?",bctype)
132     except:
133         ""
134     try:
135         db.execute('create table ch (bctype TEXT,channel TEXT NOT NULL,display TEXT)')
136     except:
137         ""
138     db.commit()
139     close_db(db)
140 def add_ch(bctype,channel,display):
141     db=connect_db(60)
142     t=0
143     while t<10
144         try:
145             db.execute('insert into tv values (?,?,?)',(bctype,channel,display))
146             break
147         except sqlite3.OperationalError:
148             t=t+1
149             time.sleep(1)
150     db.commit()
151     close_db(db)