#!/usr/bin/python
# coding: UTF-8
# Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
-import sqlite3
-import os
-#CS放送では複数のチャンネルを指定する必要があるためチャンネル名をテキストデータで持っておき(chtxt)、必要に応じて変換する
-#ontvはepgデータなどで指定されている名前
-#ここの設定は愛知県の設定(+CS放送スカパーe2 +BS)
-dbpath = str(os.path.dirname(os.path.abspath(__file__))) + "/" + "ch.db"
-#db=sqlite3.connect(dbpath)
-db = sqlite3.connect(dbpath)
-try:
-
- db.execute('drop table chdata')
- db.commit()
-except:
- test = ""
-
-try:
- db.execute('create table chdata (bctype TEXT,ontv TEXT,chtxt TEXT,ch TEXT,csch TEXT,station TEXT,station_name TEXT,updatetime TEXT)')
-except:
- ""
-db.commit()
-
-#except:
-# print "テーブル作成に失敗しました"
-# db.commit()
-#db.commit()
-db.close()
-def chadd(bctype, ontv, chtxt, ch, csch,station,station_name):#すべて文字列
- """
- ChannelDBに指定したデータを追加する
- bctype:放送種別,bs/cs/te10などが入る。
- 番組表データがbs,csは一括でとれるためbs,cs内で区別はなし
- te(地上波)は各チャンネルごとに設定する必要があるためteに
- チャンネルの数字を足したものにする
- """
- db = sqlite3.connect(dbpath)
- value = "(\'" + bctype + "\',\'" + ontv + "\',\'" + chtxt + "\',\'" + ch + "\',\'" + csch +"\',\'"+station_name+ "\',\'" +station+ "\',datetime(\'2009-04-01 00:00:00\'))"
- print value
- value = unicode(value)
- db.execute('insert into chdata values ' + value)
- db.commit()
- db.close()
-#db.commit
-
-#チャンネルの設定
-#chadd('放送種別','ontvコード(ontvのサイトなどで調べられる)','略称(何でもよい)','チャンネル(物理チャンネル)','CS放送の場合の内訳','iEPGデジタルのstation','iEPGのstation')
-#iEPGDigitalはテレビ王国のサイトでiEPGはサイトによってまちまちのようなので自分の使うサイトに即したものにしてください
-#指定しない場合はnoneなどにしておけば動作はします(自動でチャンネルを設定する部分が動かないためチャンネルをRec10WEBから指定する必要があります。)
-#CS放送(スカパーe2)主に基本パックには言ってるものを中心に
-chadd('cs', '1204.ontvjapan.com', 'natiogeo', 'CS6', '343','CSDT343','none')
-chadd('cs', '1070.ontvjapan.com', 'bbc', 'CS12', '353','CSDT353','BBCワールド')
-chadd('cs', '1069.ontvjapan.com', 'cnn', 'CS12', '354','CSDT354','CNNインターナショナル')
-chadd('cs', '1045.ontvjapan.com', 'kids', 'CS22', '330','CSDT330','キッズステーション')
-chadd('cs', '1007.ontvjapan.com', 'movieplus', 'CS18', '240','CSDT240','ムービープラス')
-chadd('cs', '1016.ontvjapan.com', 'fox', 'CS4', '312','CSDT312','FOX')
-chadd('cs', '1014.ontvjapan.com', 'axn', 'CS6', '311','CSDT311','AXN')
-chadd('cs', '1201.ontvjapan.com', 'atx', 'CS16', '333','CSDT333','アニメシアターX')
-chadd('cs', '1050.ontvjapan.com', 'hisch', 'CS16', '342','CSDT342','LET’sTRY')
-chadd('cs', '1047.ontvjapan.com', 'animax', 'CS20', '332','CSDT332','AXNアニマックス')
-chadd('cs', '1062.ontvjapan.com', 'disch', 'CS20', '340','CSDT340','ディスカバリーチャンネル')
-chadd('cs', '1193.ontvjapan.com', 'anipla', 'CS20', '341','CSDT341','アニマルプラネット')
-chadd('cs', '1008.ontvjapan.com', 'neco', 'CS6', '223','CSDT223','SPTV261')
-chadd('cs', '1015.ontvjapan.com', 'family', 'CS22', '293','CSDT293','ファミリー劇場')
-chadd('cs', '1009.ontvjapan.com', 'yo-ga', 'CS6', '224','CSDT224','シネフィル・イマジカ')
-chadd('cs2', '1217.ontvjapan.com', 'thecinema', 'CS10', '228','CSDT228','none')
-chadd('cs2', '1086.ontvjapan.com', 'nihoneiga', 'CS2', '239','CSDT239','日本映画専門チャンネル')
-
-#bs放送の設定 全国共通のはず
-chadd('bs', '3001.ontvjapan.com', 'bs-nhk-1', '101', '0','BSDT101','NHK衛星第一')
-chadd('bs', '3002.ontvjapan.com', 'bs-nhk-2', '102', '0','BSDT102','NHK衛星第二')
-chadd('bs', '3003.ontvjapan.com', 'bs-nhk-hi', '103', '0','BSDT103','NHKハイビジョン')
-chadd('bs', '3004.ontvjapan.com', 'bs-nittere', '141', '0','BSDT141','BS日テレ')
-chadd('bs', '3005.ontvjapan.com', 'bs-asahi', '151', '0','BSDT151','BS朝日')
-chadd('bs', '3006.ontvjapan.com', 'bs-tbs', '161', '0','BSDT161','BS−i')
-chadd('bs', '3007.ontvjapan.com', 'bs-japan', '171', '0','BSDT171','BSジャパン')
-chadd('bs', '3008.ontvjapan.com', 'bs-fuji', '181', '0','BSDT181','BSフジ')
-chadd('bs', '3013.ontvjapan.com', 'bs-11', '211', '0','BSDT211','')
-
-#地上波の設定 愛知県向け
-chadd('te13', '0442.ontvjapan.com', 'nhk-k', '13', '0','DFS00C08','NHK教育')
-chadd('te20', '0432.ontvjapan.com', 'nhk-s', '20', '0','DFS08400','NHK総合')
-chadd('te22', '0404.ontvjapan.com', 'me-tere', '22', '0','DFS00C20','名古屋テレビ')
-chadd('te18', '0405.ontvjapan.com', 'cbc', '18', '0','DFS00C18','中京テレビ')
-chadd('te21', '0406.ontvjapan.com', 'toukai', '21', '0','DFS00C10','東海テレビ')
-chadd('te19', '0407.ontvjapan.com', 'chukyo', '19', '0','DFS00C28','中京テレビ')
-chadd('te23', '0420.ontvjapan.com', 'aichi', '23', '0','DFS08430','テレビ愛知')
-
-
+# Copyright (C) 2009-2010 Yukikaze
+import os.path
+import configreader
+import xml.dom.minidom
+
+import rec10d
+
+path = str(os.path.dirname(os.path.abspath(__file__))) + "/"
+
+def chadd(bctype, chtxt, ch, csch):#すべて文字列
+ rec10d.rec10db.add_epg_ch(bctype,chtxt, ch, csch, u"2010-01-01 00:00:00")
+def chlistadd(cl):
+ if len(cl)>0:
+ for c in cl:
+ chadd(c[0],c[1],c[2],c[3])
+def new_chdata(bs,cs):
+ rec10d.rec10db.new_epg_ch()
+ chlistadd(getChList(os.path.join(path,"chlist.xml")))
+ if bs==1:
+ #bs放送の設定 全国共通のはず
+ chlistadd(getChList(os.path.join(path,"chlist_bs.xml")))
+ if cs==1:
+ #CS放送(スカパーe2)主に基本パックに入ってるものを中心に
+ chlistadd(getChList(os.path.join(path,"chlist_cs.xml")))
+def new_chdata_all():
+ bs=0
+ cs=0
+ try:
+ bs=int(configreader.getenv("bs"))
+ cs=int(configreader.getenv("cs"))
+ except:
+ ""
+ new_chdata(bs,cs)
+def getChList(xmlpath):
+ dom=xml.dom.minidom.parse(file(xmlpath))
+ chlist=[]
+ for ch in dom.getElementsByTagName('channel'):
+ bctype=ch.getAttribute("bctype")
+ chd=ch.getAttribute("ch")
+ csch=ch.getAttribute("csch")
+ chtxt=ch.getAttribute("chtxt")
+ ontv=ch.getAttribute("ontvcode")
+ chlist.append([bctype,ontv,chtxt,chd,csch])
+ return chlist
+if __name__ == "__main__":
+ new_chdata_all()
\ No newline at end of file