From d9cafafcdf94fc36170d2b9eded210ec31f2b629 Mon Sep 17 00:00:00 2001 From: noisymime Date: Mon, 11 Feb 2008 21:33:45 +0000 Subject: [PATCH] - Multiple minor fixes - Addition of TV DB controller to perform TV related database lookups - Added check for ~/.mythtv/mysql.txt --- modules/myth_tv_player/myth_tv_player.py | 7 +- modules/myth_tv_player/tv_db_controller.py | 100 +++++++++++++++++++++ myth/MythMySQL.py | 3 + myth/MythMySQL.pyc | Bin 3348 -> 3514 bytes 4 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 modules/myth_tv_player/tv_db_controller.py diff --git a/modules/myth_tv_player/myth_tv_player.py b/modules/myth_tv_player/myth_tv_player.py index 9732f72..a4a414a 100644 --- a/modules/myth_tv_player/myth_tv_player.py +++ b/modules/myth_tv_player/myth_tv_player.py @@ -6,6 +6,7 @@ import clutter from clutter import cluttergst from modules.myth_tv_player.MythBackendConn import MythBackendConnection +from modules.myth_tv_player.tv_db_controller import tv_db_controller #from Menu import Menu from VideoController import VideoController @@ -15,10 +16,14 @@ class Module: def __init__(self, glossMgr, dbMgr): self.stage = glossMgr.get_stage() self.glossMgr = glossMgr + self.dbMgr = dbMgr self.setup_ui() self.videoController = VideoController(glossMgr) - self.dbMgr = dbMgr + self.dbController = tv_db_controller(dbMgr) + self.dbController.get_current_show(1033) + channels = self.dbController.get_channels() + self.isRunning = False def setup_ui(self): diff --git a/modules/myth_tv_player/tv_db_controller.py b/modules/myth_tv_player/tv_db_controller.py new file mode 100644 index 0000000..6e85a35 --- /dev/null +++ b/modules/myth_tv_player/tv_db_controller.py @@ -0,0 +1,100 @@ +import time +import datetime + +class tv_db_controller: + title = "TV" + + def __init__(self, dbMgr): + self.dbMgr = dbMgr + + def get_channels(self): + sql = "SELECT * FROM channel WHERE channum <> ''" + results = self.dbMgr.run_sql(sql) + + channels = [] + + for entry in results: + tmpChannel = channel() + tmpChannel.import_from_mythObject(entry) + channels.append(tmpChannel) + + def get_current_show(self, chanID): + timeString = time.strftime( "%Y-%m-%d %H:%M:%S" ) + tim = time.strptime(time.ctime()) + myDateTime = datetime.datetime(*tim[0:6]) + sql = "SELECT * FROM program WHERE chanid = %s AND starttime < '%s' AND endtime > '%s'" % (str(chanID), myDateTime, myDateTime) + #print sql + result = self.dbMgr.run_sql(sql) + + tmpShow = show() + if len(result) > 0: + tmpShow.import_from_mythObject(result[0]) + return tmpShow + +class channel: + + def __init__(self): + pass + + def import_from_mythObject(self, mythObject): + self.chanID = mythObject[0] + self.channum = mythObject[1] + self.freqid = mythObject[2] + self.sourceid = mythObject[3] + self.callsign = mythObject[4] + self.name = mythObject[5] + self.icon = mythObject[6] + self.finetune = mythObject[7] + self.videofilters = mythObject[8] + self.xmltvid = mythObject[9] + self.recpriority = mythObject[10] + self.contrast = mythObject[11] + self.brightness = mythObject[12] + self.colour = mythObject[13] + self.hue = mythObject[14] + self.tvformat = mythObject[15] + self.commfree = mythObject[16] + self.visible = mythObject[17] + self.outputfilters = mythObject[18] + self.useonairguide = mythObject[19] + self.mplexid = mythObject[20] + self.serviceid = mythObject[21] + self.atscsrcid = mythObject[22] + self.tmoffset = mythObject[23] + self.atsc_major_chan = mythObject[24] + self.atsc_minor_chan = mythObject[25] + self.last_record = mythObject[26] + +class show: + + def __init__(self): + pass + + def import_from_mythObject(self, mythObject): + self.chanID = mythObject[0] + self.channum = mythObject[1] + self.freqid = mythObject[2] + self.sourceid = mythObject[3] + self.callsign = mythObject[4] + self.name = mythObject[5] + self.icon = mythObject[6] + self.finetune = mythObject[7] + self.videofilters = mythObject[8] + self.xmltvid = mythObject[9] + self.recpriority = mythObject[10] + self.contrast = mythObject[11] + self.brightness = mythObject[12] + self.colour = mythObject[13] + self.hue = mythObject[14] + self.tvformat = mythObject[15] + self.commfree = mythObject[16] + self.visible = mythObject[17] + self.outputfilters = mythObject[18] + self.useonairguide = mythObject[19] + self.mplexid = mythObject[20] + self.serviceid = mythObject[21] + self.atscsrcid = mythObject[22] + self.tmoffset = mythObject[23] + self.atsc_major_chan = mythObject[24] + self.atsc_minor_chan = mythObject[25] + self.last_record = mythObject[26] \ No newline at end of file diff --git a/myth/MythMySQL.py b/myth/MythMySQL.py index 653508e..09fd097 100644 --- a/myth/MythMySQL.py +++ b/myth/MythMySQL.py @@ -30,6 +30,9 @@ class mythDB(): def read_config(self): conf_file = os.path.expanduser("~/.mythtv/mysql.txt") if not os.path.exists(conf_file): + print "ERROR: No config file found at ~.mythtv/mysql.txt!" + print "No connection to MythTV Database can be made. Quitting" + clutter.main_quit() return False f=open(conf_file, 'r') diff --git a/myth/MythMySQL.pyc b/myth/MythMySQL.pyc index d5d75558f8d72c189e60a18e9a994eb7cce3b43b..55d09b439b10acd4aac6329d51881f0f2e2d7d3b 100644 GIT binary patch delta 551 zcmZ{gK}%af6ot=CUXquWq_qlKt;KO+TP;Rf#6_TV)1n})G#1mHJTotGBze!68>uCl zMZiBW?WVi#x>Vjq#QqF_hfo*YIzy?VP=+~oxaT`(F<-|{A7$d-1@G|J(Q)P?LDTwA zV(RHQNG7njB$Gzifl8qd5T~&kl9?HF3DVJX$%nlZMr9gX32eupZW79c%%D%$chGep zt?ybt8Zo|EWHG9;wyz7Ud$5K7IPbq)?iQE3;g;_d=5K-d8}JTSKx>kyRe`+~39LRV z=m*Ytul*9h+j4oOToUgiQH{cys*9Rx1fmvoLMeO}2gT+dZ}RS3bFbZM6!|kxwiit7 zFCPX~R#7N867LN5aZSAO+28QnfvEbS*a$?^mqAf{=qP3t)|pInM;QT=E;&ndPxqbK zG4stpwb5Y?b~tO^O<#rUEtAqmPJI7~4bUJBQOX=IZlsop=Hrv}8KtLO|sT>**>d#?Zh delta 435 zcmZ{dKT88K9ERUt?qAdEf%FimB6g9sh%JhfItX@B5V433T9*t~Z1rf67Or+E_yLSd zzk#dVCT?zyf}cZhaW$bj6zPyB@VpPn^W4L%mwW~3oxA%d?~~EA`euv$6iC{rwMgF% zVuD~8F!UHY?}!UIbq|1;W`0n(QqLg3Gts9a6sl