OSDN Git Service

add tsid channel information for complete BS support.
[rec10/rec10-git.git] / rec10 / trunk / src / ts2epg.py
index 0bbcfa6..00d18ea 100644 (file)
@@ -1,48 +1,67 @@
-#!/usr/bin/python
-# coding: UTF-8
-# Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
-#import sys # モジュール属性 argv を取得するため
-import os
-import configreader
-import tv2ts
-import re
-import chdb
-import time
-
-def write(pout,ch):
-    """
-    tsを取得してepgの入ったxmlとして書き出す
-    """
-    print "ts2epg処理"
-    bctype=chdb.chsearch(ch)['bctype']
-    print ch+":"+bctype
-    timet="180"
-    if re.search(u'cs',bctype):
-        mode="/CS"
-        timet="300"
-    elif re.search(u'bs',bctype):
-        mode="/BS"
-        timet="300"
-    else :
-        mode=chdb.bctypesearch(u'te'+ch)['ontv']
-    epgdump=configreader.getpath("epgdump")
-    if os.access(pout+".ts", os.F_OK):
-        os.remove(pout+".ts")
-    time.sleep(10)
-    print type(ch)
-    print ch
-    tv2ts.tv2tsmix(pout+".ts",ch,timet)
-    t=0
-    while not os.access(pout+".ts", os.F_OK):
-        time.sleep(10)
-        tv2ts.tv2tsmix(pout+".ts",ch,timet)
-        t=t+1
-        if t>10:
-            break
-    exe="export LANG=ja_JP.UTF-8 && nice -n 15 "+epgdump+" "+mode+" "+pout+".ts "+pout
-    print exe
-    os.system(exe)
-    time.sleep(10)
-        
-
+#!/usr/bin/python\r
+# coding: UTF-8\r
+# Rec10 TS Recording Tools\r
+# Copyright (C) 2009-2011 Yukikaze\r
+#import sys # モジュール属性 argv を取得するため\r
+import os\r
+import re\r
+import time\r
+import commands\r
+\r
+import chdb\r
+import configreader\r
+import tv2ts\r
+import recdblist\r
+\r
+def writeEpgXML(pout, ch):\r
+    """\r
+    tsを取得してepgの入ったxmlとして書き出す\r
+    """\r
+    timet = "90"\r
+    if re.search(u'CS', ch):\r
+        timet = "180"\r
+    elif len(ch)>2:\r
+        timet = "240"\r
+    writeEpgXMLTime(pout, ch ,timet)\r
+def writeLogoEpgXML(pout, ch):\r
+    """\r
+    tsを取得してepgの入ったxmlとして書き出す\r
+    """\r
+    timet = "600"\r
+    if re.search(u'CS', ch):\r
+        timet = "10"\r
+    elif len(ch)>2:\r
+        timet = "1200"\r
+    writeEpgXMLTime(pout, ch ,timet,islogo=1)\r
+def writeEpgXMLTime(pout, ch ,times,islogo=0):\r
+    """\r
+    指定された時間分tsを取得してepgの入ったxmlとして書き出す\r
+    """\r
+    if islogo==0:\r
+        recdblist.addCommonlogEX(u"通常","write_time(ts2epg.py)",u"Ts-EPG XML書き出し処理開始" ,u"CH:"+ch,log_level=500)\r
+    elif islogo==1:\r
+        recdblist.addCommonlogEX(u"通常","write_time(ts2epg.py)",u"Ts-EPG LOGO : XML書き出し処理開始" ,u"CH:"+ch,log_level=500)\r
+    timet = times\r
+    if re.search(u'CS', ch):\r
+        mode = "/CS"\r
+    elif len(ch)>2:\r
+        mode = "/BS"\r
+    else:\r
+        mode = str(chdb.searchCHFromBctype(u'te' + ch)['ch'])\r
+    epgdump = configreader.getConfPath("epgdump")\r
+    if os.access(pout + ".ts", os.F_OK):\r
+        os.remove(pout + ".ts")\r
+    time.sleep(10)\r
+    tv2ts.tv2b25ts(pout+ ".ts", ch, times,"0")\r
+    logoopt=""\r
+    if islogo==1:\r
+        logoopt="/LOGO "\r
+    os.chmod(pout+".ts",0755)\r
+    exe = "export LANG=ja_JP.UTF-8 && nice -n 15 " + epgdump + " " +logoopt+ mode + " " + pout + ".ts " + pout\r
+    recdblist.printutf8(exe)\r
+    recdblist.addCommonlogEX(u"通常", "write_time(ts2epg.py) "+str(ch), exe,"",log_level=500)\r
+    unicode(commands.getoutput(exe),'utf-8','ignore')\r
+    time.sleep(10)\r
+    if os.path.exists(pout+".ts"):\r
+        os.remove(pout+ ".ts")\r
+\r