OSDN Git Service

implement recque system.
[rec10/rec10-git.git] / rec10 / trunk / src / recque.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009-2010 Yukikaze
5 import datetime
6 import os
7 import os.path
8 import glob
9 import time
10 import traceback
11
12 import configreader
13 import recdblist
14 import recdb
15 def writeRecQue(parentpath,chtxt,title,opts):
16     f=open(os.path.join(parentpath,title+".recq"),"w")
17     optt=opts.replace("E","")
18     optt=optt.replace("D","")
19     optt=optt.replace("R","")
20     str="99"+","+datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")+","+configreader.getenv("iff")+","+chtxt+","+title+","+optt
21     f.write(str.encode('utf-8'))
22     f.close()
23
24 def readRecQue(recquepath):
25     f=open(os.path.join(parentpath,title+".recq"),"r")
26     line = unicode(f.readline(),'utf-8')
27     title=""
28     opts=""
29     chtxt=""
30     while line:
31         linec=line.split(",")
32         if len(linec)>3:
33             if linec[0]=="99":
34                 title=linec[4]
35                 opts=linec[5]
36                 chtxt=linec[2]+u"_"+linec[3]
37                 break
38         line = unicode(f.readline(),'utf-8')
39     dbkey=""
40     if opts.find("E"):
41         dbkey=""
42         opts=opts.replace("E","")
43     if opts.find("D"):
44         dbkey=recdblist.REC_ENCODE_QUE
45         opts=opts.replace("D","")
46     if opts.find("R"):
47         dbkey=recdblist.REC_TS_DECODE_QUE
48         opts=opts.replace("E","")
49     bt=datetime.datetime.now()+datetime.timedelta(minutes=5)
50     et=bt+datetime.timedelta(minutes=30)
51     btime=bt.strftime("%Y-%m-%d %H:%M:%S")
52     etime=et.strftime("%Y-%m-%d %H:%M:%S")
53     if len(dbkey)>2:
54         recdb.rec_reckey(dbkey, title, chtxt, btime, etime, opts)
55 def searchRecQue(folderpath):
56     for file in glob.glob(os.path.join(folderpath,"*.recq")):
57         dtime = time.time()-os.path.getmtime(avipath)
58         dtime = int(dtime)
59         if dtime > 300:
60             try:
61                 readRecQue(os.path.join(folderpath, file))
62                 os.remove(os.path.join(folderpath, file))
63             except Exception, inst:
64                 recdblist.Commonlogex("Error", "searchRecQue(recque.py)", str(type(inst)), str(inst)+traceback.format_exc(),log_level=200)
65