OSDN Git Service

change chlist.
[rec10/rec10-git.git] / rec10 / trunk / src / chdata.py
1 #!/usr/bin/python
2 # coding: UTF-8
3 # Rec10 TS Recording Tools
4 # Copyright (C) 2009 Yukikaze
5 import os.path
6 import xml.dom.minidom
7
8 import rec10d
9
10 path = str(os.path.dirname(os.path.abspath(__file__))) + "/"
11
12 def chadd(bctype, ontv, chtxt, ch, csch):#すべて文字列
13     """
14     ChannelDBに指定したデータを追加する
15     bctype:放送種別,bs/cs/te10などが入る。
16     番組表データがbs,csは一括でとれるためbs,cs内で区別はなし
17     te(地上波)は各チャンネルごとに設定する必要があるためteに
18     チャンネルの数字を足したものにする
19     """
20     rec10d.rec10db.add_epg_ch(bctype, ontv, chtxt, ch, csch, u"2009-04-01 00:00:00")
21 def chlistadd(cl):
22     if len(cl)>0:
23         for c in cl:
24             chadd(c[0],c[1],c[2],c[3],c[4])
25 def new_chdata(bs,cs):
26     rec10d.rec10db.new_epg_ch()
27     chlistadd(getChList(os.path.join(path,"chlist.xml")))
28     if bs==1:
29         #bs放送の設定 全国共通のはず
30         chlistadd(getChList(os.path.join(path,"chlist_bs.xml")))
31     if cs==1:
32         #CS放送(スカパーe2)主に基本パックには言ってるものを中心に
33         chlistadd(getChList(os.path.join(path,"chlist_cs.xml")))
34 def new_chdata_all():
35     new_chdata(1,1)
36     #チャンネルの設定
37     #chadd(u'放送種別',u'ontvコード(ontvのサイトなどで調べられる)',u'略称(何でもよい)',u'チャンネル(物理チャンネル)',u'CS放送の場合の内訳')
38
39     #地上波の設定 東京都(筆者は東京で受信していないため正しいかどうか分かりません)
40
41 def getChList(xmlpath):
42     dom=xml.dom.minidom.parse(file(xmlpath))
43     chlist=[]
44     for ch in dom.getElementsByTagName('channel'):
45         bctype=ch.getAttribute("bctype")
46         chd=ch.getAttribute("ch")
47         csch=ch.getAttribute("csch")
48         chtxt=ch.getAttribute("chtxt")
49         ontv=ch.getAttribute("ontvcode")
50         chlist.append([bctype,ontv,chtxt,chd,csch])
51     return chlist
52 if __name__ == "__main__":
53     new_chdata()