mirror of
https://github.com/nikdoof/mythview.git
synced 2025-12-17 04:49:21 +00:00
Now shows the next program on each channel.
This commit is contained in:
@@ -24,12 +24,13 @@ class MythNowNext:
|
|||||||
else:
|
else:
|
||||||
self.db = MythDB()
|
self.db = MythDB()
|
||||||
|
|
||||||
def get_nownext(self):
|
def get_all(self):
|
||||||
c = self.db.cursor()
|
c = self.db.cursor()
|
||||||
|
|
||||||
c.execute(""" SELECT channel.chanid, channel.icon, cast(channel.channum as signed) as channum,
|
c.execute(""" SELECT channel.chanid, channel.icon, cast(channel.channum as signed) as channum,
|
||||||
channel.name, program.title,
|
channel.name, program.title as now,
|
||||||
time_to_sec(timediff(time(program.endtime), time(now()) )) as timetoend
|
(SELECT program.title as next FROM program WHERE program.starttime >= NOW( ) AND program.chanid = channel.chanid LIMIT 1) as next,
|
||||||
|
time_to_sec(timediff(time(program.endtime), time(now()) )) as now_end
|
||||||
FROM channel, program
|
FROM channel, program
|
||||||
WHERE program.chanid = channel.chanid
|
WHERE program.chanid = channel.chanid
|
||||||
AND program.starttime <= NOW( )
|
AND program.starttime <= NOW( )
|
||||||
@@ -44,3 +45,4 @@ class MythNowNext:
|
|||||||
return rows
|
return rows
|
||||||
else:
|
else:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,9 @@ try:
|
|||||||
except:
|
except:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
import time
|
||||||
|
import datetime
|
||||||
|
|
||||||
from mythicon import MythIcon
|
from mythicon import MythIcon
|
||||||
from mythnownext import MythNowNext
|
from mythnownext import MythNowNext
|
||||||
from MythTV import *
|
from MythTV import *
|
||||||
@@ -48,7 +51,8 @@ class MythViewUI:
|
|||||||
self.window.connect("destroy", gtk.main_quit)
|
self.window.connect("destroy", gtk.main_quit)
|
||||||
self.wTree.signal_autoconnect({"on_btnRefresh_clicked" : self.btnRefresh_clicked})
|
self.wTree.signal_autoconnect({"on_btnRefresh_clicked" : self.btnRefresh_clicked})
|
||||||
|
|
||||||
self.channelStore = gtk.ListStore(int, int, gtk.gdk.Pixbuf, str, str)
|
self.statusbar = self.wTree.get_widget("MainStatusBar")
|
||||||
|
self.channelStore = gtk.ListStore(int, int, gtk.gdk.Pixbuf, str, str, str)
|
||||||
|
|
||||||
# Setup the TreeView
|
# Setup the TreeView
|
||||||
def addTreeColumn(title, ctype, visible,size):
|
def addTreeColumn(title, ctype, visible,size):
|
||||||
@@ -67,6 +71,7 @@ class MythViewUI:
|
|||||||
addTreeColumn("Icon", gtk.CellRendererPixbuf(), True, 0)
|
addTreeColumn("Icon", gtk.CellRendererPixbuf(), True, 0)
|
||||||
addTreeColumn("Name", gtk.CellRendererText(), True, 0)
|
addTreeColumn("Name", gtk.CellRendererText(), True, 0)
|
||||||
addTreeColumn("Now", gtk.CellRendererText(), True, 0)
|
addTreeColumn("Now", gtk.CellRendererText(), True, 0)
|
||||||
|
addTreeColumn("Next", gtk.CellRendererText(), True, 0)
|
||||||
|
|
||||||
self.UpdateTree()
|
self.UpdateTree()
|
||||||
|
|
||||||
@@ -74,9 +79,9 @@ class MythViewUI:
|
|||||||
|
|
||||||
def UpdateTree(self):
|
def UpdateTree(self):
|
||||||
|
|
||||||
print "Refresh Fired"
|
self.statusbar.push(0,"Refreshing...")
|
||||||
|
|
||||||
rows = MythNowNext(self.mythtv).get_nownext()
|
rows = MythNowNext(self.mythtv).get_all()
|
||||||
|
|
||||||
self.channelStore.clear()
|
self.channelStore.clear()
|
||||||
|
|
||||||
@@ -93,10 +98,17 @@ class MythViewUI:
|
|||||||
hours, mins = divmod(mins, 60)
|
hours, mins = divmod(mins, 60)
|
||||||
return '%02d:%02d:%02d' % (hours, mins, secs)
|
return '%02d:%02d:%02d' % (hours, mins, secs)
|
||||||
|
|
||||||
now = "%s\n%s remaning" % (row[4], humanize_time(row[5]))
|
now = "%s\n%s remaning" % (row[4], humanize_time(row[6]))
|
||||||
|
|
||||||
self.channelStore.append([row[0], row[2], icon, row[3], now])
|
|
||||||
|
|
||||||
|
t = datetime.datetime.now()
|
||||||
|
next_starttime = t + datetime.timedelta(seconds=row[6])
|
||||||
|
|
||||||
|
next = "%s\nStarts: %s" % (row[5], next_starttime.strftime("%I:%M%P"))
|
||||||
|
|
||||||
|
self.channelStore.append([row[0], row[2], icon, row[3], now, next])
|
||||||
|
|
||||||
|
self.statusbar.pop(0)
|
||||||
self.channelTree.set_model(self.channelStore)
|
self.channelTree.set_model(self.channelStore)
|
||||||
|
|
||||||
def FillCellIcon(self, column, cell, model, iter):
|
def FillCellIcon(self, column, cell, model, iter):
|
||||||
@@ -111,6 +123,8 @@ class MythViewUI:
|
|||||||
cell.set_property('text', model.get_value(iter, 3))
|
cell.set_property('text', model.get_value(iter, 3))
|
||||||
if column.get_title() == 'Now':
|
if column.get_title() == 'Now':
|
||||||
cell.set_property('text', model.get_value(iter, 4))
|
cell.set_property('text', model.get_value(iter, 4))
|
||||||
|
if column.get_title() == 'Next':
|
||||||
|
cell.set_property('text', model.get_value(iter, 5))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user