merging mythboxee4 into existing repo
|
@ -1,14 +0,0 @@
|
|||
<app>
|
||||
<id>com.erikkristensen.mythboxee</id>
|
||||
<name>MythBoxee Beta</name>
|
||||
<version>3.23.1.beta</version>
|
||||
<description>Watch all your MythTV recordings from Boxee.</description>
|
||||
<thumb>http://erikkristensen.com/project/mythboxee/mythboxee_logo.jpg</thumb>
|
||||
<media>video</media>
|
||||
<copyright>Erik Kristensen</copyright>
|
||||
<email>erik@erikkristensen.com</email>
|
||||
<type>skin</type>
|
||||
<startWindow>launch</startWindow>
|
||||
<platform>all</platform>
|
||||
<minversion>0.9.20</minversion>
|
||||
</app>
|
|
@ -1,27 +0,0 @@
|
|||
import mc
|
||||
import mythboxee
|
||||
|
||||
# Get Access to the Apps Local Config
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
|
||||
# For Debugging
|
||||
#config.SetValue("verified", "1")
|
||||
#config.SetValue("server", "192.168.1.210")
|
||||
|
||||
# Pull out some of the variables we need
|
||||
server = config.GetValue("server")
|
||||
verified = config.GetValue("verified")
|
||||
|
||||
# If the server hasn't been defined, we need to get it.
|
||||
if not server:
|
||||
mythboxee.GetServer()
|
||||
|
||||
# If server is set, and at this point it has been verified
|
||||
# then launch the application
|
||||
if config.GetValue("verified") == "1":
|
||||
mc.ActivateWindow(14000)
|
||||
|
||||
# Load all the show data from the MythTV Backend Server
|
||||
mythboxee.LoadShows()
|
||||
else:
|
||||
mc.ShowDialogOk("MythBoxee Error", "You must enter the full path to the MythBoxee script or MythBoxee was unable to verify the URL provided.")
|
|
@ -1,245 +0,0 @@
|
|||
import mc
|
||||
import re
|
||||
from operator import itemgetter, attrgetter
|
||||
from xml.dom import minidom
|
||||
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
|
||||
if not config.GetValue("SortBy"):
|
||||
config.SetValue("SortBy", "Original Air Date")
|
||||
if not config.GetValue("SortDir"):
|
||||
config.SetValue("SortDir", "Descending")
|
||||
|
||||
|
||||
titles = []
|
||||
recordings = []
|
||||
idbanners = {}
|
||||
shows = {}
|
||||
|
||||
def LoadShows():
|
||||
del titles[:]
|
||||
del recordings[:]
|
||||
idbanners.clear()
|
||||
shows.clear()
|
||||
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
|
||||
print "MythBoxee (LoadShows): Accessing MythTV Backend [" + "http://" + config.GetValue("server") + ":6544/Myth/GetRecorded" + "]"
|
||||
|
||||
domXml = minidom.parse("http://" + config.GetValue("server") + ":6544/Myth/GetRecorded")
|
||||
|
||||
programs = domXml.getElementsByTagName("Program")
|
||||
channels = domXml.getElementsByTagName("Channel")
|
||||
|
||||
x=0
|
||||
for dom in programs:
|
||||
title = str(dom.getAttribute("title"))
|
||||
subtitle = str(dom.getAttribute("subTitle"))
|
||||
try:
|
||||
description = str(programs[x].childNodes[0].data)
|
||||
except AttributeError:
|
||||
description = "No Description"
|
||||
airdate = str(dom.getAttribute("airdate"))
|
||||
starttime = str(dom.getAttribute("startTime"))
|
||||
endtime = str(dom.getAttribute("endTime"))
|
||||
category = str(dom.getAttribute("category"))
|
||||
chanid = str(channels[x].getAttribute("chanId"))
|
||||
channame = str(channels[x].getAttribute("channelName"))
|
||||
callsign = str(channels[x].getAttribute("callSign"))
|
||||
|
||||
if title not in titles:
|
||||
titles.append(title)
|
||||
idbanners[title] = GetSeriesIDBanner(title)
|
||||
shows[title] = []
|
||||
|
||||
single = [title,subtitle,description,chanid,airdate,starttime,endtime]
|
||||
recordings.append(single)
|
||||
|
||||
shows[title].append(single)
|
||||
|
||||
x=x+1
|
||||
|
||||
titles.sort()
|
||||
|
||||
print "MythBoxee (LoadShows): Titles: " + ", ".join(titles)
|
||||
|
||||
items = mc.ListItems()
|
||||
for title in titles:
|
||||
item = mc.ListItem( mc.ListItem.MEDIA_UNKNOWN )
|
||||
item.SetLabel(title)
|
||||
item.SetThumbnail(idbanners[title][1])
|
||||
item.SetProperty("seriesid", idbanners[title][0])
|
||||
items.append(item)
|
||||
|
||||
mc.GetWindow(14000).GetList(13).SetItems(items)
|
||||
|
||||
|
||||
def LoadSingleShow():
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
ilist = mc.GetActiveWindow().GetList(13)
|
||||
item = ilist.GetItem(ilist.GetFocusedItem())
|
||||
name = item.GetLabel()
|
||||
config.SetValue("seriesid", item.GetProperty("seriesid"))
|
||||
config.SetValue("show", name)
|
||||
mc.ActivateWindow(14001)
|
||||
|
||||
SetSortables()
|
||||
GetSetSeriesDetails(name, item.GetProperty("seriesid"))
|
||||
LoadSeriesEpisodes(name)
|
||||
|
||||
|
||||
def SetSortables():
|
||||
sortable = ['Original Air Date', 'Recorded Date', 'Title']
|
||||
items = mc.ListItems()
|
||||
for sorttype in sortable:
|
||||
item = mc.ListItem( mc.ListItem.MEDIA_UNKNOWN )
|
||||
item.SetLabel(sorttype)
|
||||
items.append(item)
|
||||
|
||||
mc.GetActiveWindow().GetList(2014).SetItems(items)
|
||||
mc.GetActiveWindow().GetList(2014).SetSelected(0, True)
|
||||
|
||||
sortableby = ['Ascending', 'Descending']
|
||||
items = mc.ListItems()
|
||||
for sorttype in sortableby:
|
||||
item = mc.ListItem( mc.ListItem.MEDIA_UNKNOWN )
|
||||
item.SetLabel(sorttype)
|
||||
items.append(item)
|
||||
|
||||
mc.GetActiveWindow().GetList(2015).SetItems(items)
|
||||
mc.GetActiveWindow().GetList(2015).SetSelected(1, True)
|
||||
|
||||
|
||||
def SortBySeriesEpisodes():
|
||||
sortByItems = sortByItemNumber = mc.GetWindow(14001).GetList(2014).GetSelected()
|
||||
sortDirectionItems = sortDirectionItemNumber = mc.GetWindow(14001).GetList(2015).GetSelected()
|
||||
|
||||
mc.GetActiveWindow().GetList(2014).UnselectAll()
|
||||
mc.GetActiveWindow().GetList(2014).SetSelected(mc.GetActiveWindow().GetList(2014).GetFocusedItem(), True)
|
||||
|
||||
config.SetValue("SortBy", mc.GetActiveWindow().GetList(2014).GetItem(mc.GetActiveWindow().GetList(2014).GetFocusedItem()).GetLabel())
|
||||
|
||||
LoadSeriesEpisodes(config.GetValue("name"))
|
||||
|
||||
|
||||
def SortDirSeriesEpisodes():
|
||||
sortByItems = sortByItemNumber = mc.GetWindow(14001).GetList(2014).GetSelected()
|
||||
|
||||
mc.GetActiveWindow().GetList(2015).UnselectAll()
|
||||
mc.GetActiveWindow().GetList(2015).SetSelected(mc.GetActiveWindow().GetList(2015).GetFocusedItem(), True)
|
||||
|
||||
config.SetValue("SortDir", mc.GetActiveWindow().GetList(2015).GetItem(mc.GetActiveWindow().GetList(2015).GetFocusedItem()).GetLabel())
|
||||
|
||||
LoadSeriesEpisodes(config.GetValue("name"))
|
||||
|
||||
def GetSeriesIDBanner(name):
|
||||
print "MythBoxee (GetSeriesIDBanner): " + name + " [" + "http://www.thetvdb.com/api/GetSeries.php?seriesname=" + name.replace(" ", "%20") + "]"
|
||||
sg = mc.Http()
|
||||
sg.SetUserAgent('MythBoxee v3.0.beta')
|
||||
html = sg.Get(str("http://www.thetvdb.com/api/GetSeries.php?seriesname=" + name.replace(" ", "%20")))
|
||||
series = re.compile("<seriesid>(.*?)</seriesid>").findall(html)
|
||||
banners = re.compile("<banner>(.*?)</banner>").findall(html)
|
||||
show = []
|
||||
try:
|
||||
show.append(series[0])
|
||||
show.append("http://www.thetvdb.com/banners/" + banners[0])
|
||||
except IndexError:
|
||||
show.append("00000")
|
||||
show.append("mb_artwork_error.png")
|
||||
|
||||
return show
|
||||
|
||||
|
||||
def GetSetSeriesDetails(name, seriesid):
|
||||
sg = mc.Http()
|
||||
sg.SetUserAgent('MythBoxee v3.0.beta')
|
||||
html = sg.Get("http://thetvdb.com/api/6BEAB4CB5157AAE0/series/" + seriesid + "/")
|
||||
overview = re.compile("<Overview>(.*?)</Overview>").findall(html)
|
||||
poster = re.compile("<poster>(.*?)</poster>").findall(html)
|
||||
items = mc.ListItems()
|
||||
item = mc.ListItem( mc.ListItem.MEDIA_UNKNOWN )
|
||||
item.SetLabel(name)
|
||||
item.SetTitle(name)
|
||||
try:
|
||||
item.SetDescription(overview[0])
|
||||
item.SetProperty("description", overview[0])
|
||||
except:
|
||||
item.SetDescription("No Description")
|
||||
item.SetProperty("description", "No Description")
|
||||
try:
|
||||
item.SetThumbnail("http://www.thetvdb.com/banners/" + poster[0])
|
||||
except:
|
||||
item.SetThumbnail("mb_poster_error.png")
|
||||
items.append(item)
|
||||
|
||||
mc.GetWindow(14001).GetList(21).SetItems(items)
|
||||
|
||||
|
||||
def LoadSeriesEpisodes(name):
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
config.SetValue("name", name)
|
||||
showitems = mc.ListItems()
|
||||
|
||||
sortBy = config.GetValue("SortBy")
|
||||
sortDir = config.GetValue("SortDir")
|
||||
|
||||
print "MythBoxee (LoadSeriesEpisodes): " + name
|
||||
|
||||
if sortBy == "Original Air Date" and sortDir == "Ascending":
|
||||
episodes = sorted(shows[name], key=itemgetter(4))
|
||||
elif sortBy == "Original Air Date" and sortDir == "Descending":
|
||||
episodes = sorted(shows[name], key=itemgetter(4), reverse=True)
|
||||
elif sortBy == "Recorded Date" and sortDir == "Ascending":
|
||||
episodes = sorted(shows[name], key=itemgetter(5))
|
||||
elif sortBy == "Recorded Date" and sortDir == "Descending":
|
||||
episodes = sorted(shows[name], key=itemgetter(5), reverse=True)
|
||||
elif sortBy == "Title" and sortDir == "Ascending":
|
||||
episodes = sorted(shows[name], key=itemgetter(1))
|
||||
elif sortBy == "Title" and sortDir == "Descending":
|
||||
episodes = sorted(shows[name], key=itemgetter(1), reverse=True)
|
||||
else:
|
||||
episodes = shows[name]
|
||||
|
||||
for title,subtitle,desc,chanid,airdate,starttime,endtime in episodes:
|
||||
showitem = mc.ListItem( mc.ListItem.MEDIA_VIDEO_EPISODE )
|
||||
showitem.SetLabel(subtitle)
|
||||
showitem.SetTitle(subtitle)
|
||||
showitem.SetTVShowTitle(name)
|
||||
showitem.SetDescription(desc)
|
||||
date = airdate.split("-")
|
||||
showitem.SetProperty("starttime", starttime)
|
||||
showitem.SetDate(int(date[0]), int(date[1]), int(date[2]))
|
||||
showitem.SetThumbnail("http://" + config.GetValue("server") + ":6544/Myth/GetPreviewImage?ChanId=" + chanid + "&StartTime=" + starttime.replace("T", "%20"))
|
||||
showitem.SetPath("http://" + config.GetValue("server") + ":6544/Myth/GetRecording?ChanId=" + chanid + "&StartTime=" + starttime.replace("T", "%20"))
|
||||
showitems.append(showitem)
|
||||
|
||||
mc.GetActiveWindow().GetList(2013).SetItems(showitems)
|
||||
|
||||
|
||||
|
||||
def GetServer():
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
server = config.GetValue("server")
|
||||
response = mc.ShowDialogKeyboard("Enter IP Address of MythTV Backend Server", server, False)
|
||||
url = "http://" + response + ":6544/Myth/GetConnectionInfo"
|
||||
if VerifyServer(url) == True:
|
||||
config.SetValue("server", response)
|
||||
|
||||
def VerifyServer(url):
|
||||
config = mc.GetApp().GetLocalConfig()
|
||||
http = mc.Http()
|
||||
data = http.Get(url)
|
||||
if http.GetHttpResponseCode() == 200:
|
||||
config.SetValue("verified", "1")
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,156 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<window type="window" id="14000">
|
||||
<defaultcontrol>13</defaultcontrol>
|
||||
<allowoverlay>yes</allowoverlay>
|
||||
<onload lang="python"><![CDATA[
|
||||
import mythboxee
|
||||
]]></onload>
|
||||
<controls>
|
||||
<control type="visualisation" id ="5001">
|
||||
<width>1280</width>
|
||||
<height>720</height>
|
||||
<visible>Control.IsVisible(2000)</visible>
|
||||
</control>
|
||||
<control type="image">
|
||||
<width>1280</width>
|
||||
<height>720</height>
|
||||
<texture>mb_bg.png</texture>
|
||||
<animation effect="fade" start="85" end="85" time="0" condition="true">Conditional</animation>
|
||||
</control>
|
||||
<control type="grouplist" id="1000">
|
||||
<posy>11</posy>
|
||||
<posx>216</posx>
|
||||
<itemgap>20</itemgap>
|
||||
<ondown>2000</ondown>
|
||||
<orientation>horizontal</orientation>
|
||||
</control>
|
||||
|
||||
<!-- SHOW LIST -->
|
||||
|
||||
<control type="panel" id="13">
|
||||
<posx>22</posx>
|
||||
<posy>82</posy>
|
||||
<width>1280</width>
|
||||
<height>592</height>
|
||||
<onleft>-</onleft>
|
||||
<onright>-</onright>
|
||||
<onup>-</onup>
|
||||
<ondown>-</ondown>
|
||||
<itemlayout width="420" height="120">
|
||||
<control type="image">
|
||||
<description>background</description>
|
||||
<posx>0</posx>
|
||||
<posy>0</posy>
|
||||
<width>400</width>
|
||||
<height>100</height>
|
||||
<texture border="5">mb_item_big.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>380</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordersize>3</bordersize>
|
||||
<bordertexture>mb_thumb_bg.png</bordertexture>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>show title</description>
|
||||
<posx>10</posx>
|
||||
<posy>75</posy>
|
||||
<width>152</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFFEFEFE</textcolor>
|
||||
</control>
|
||||
<!--
|
||||
<control type="label">
|
||||
<description>videos</description>
|
||||
<posx>275</posx>
|
||||
<posy>76</posy>
|
||||
<width>152</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<label>Recordings: $INFO[ListItem.property(custom:videos)]</label>
|
||||
<font>font14</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
</control>
|
||||
-->
|
||||
</itemlayout>
|
||||
<focusedlayout width="420" height="120">
|
||||
<control type="togglebutton">
|
||||
<description>background</description>
|
||||
<posx>0</posx>
|
||||
<posy>0</posy>
|
||||
<width>400</width>
|
||||
<height>100</height>
|
||||
<texturefocus border="5">mb_item_big_hover.png</texturefocus>
|
||||
<texturenofocus border="5">mb_item_big_hover.png</texturenofocus>
|
||||
<alttexturefocus border="5">mb_item_big.png</alttexturefocus>
|
||||
<alttexturenofocus border="5">mb_item_big.png</alttexturenofocus>
|
||||
<usealttexture>!Control.HasFocus(13)</usealttexture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>106</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordertexture>mb_thumb_bg.png</bordertexture>
|
||||
<bordersize>3</bordersize>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail hover</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>380</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordertexture>mb_thumb_hover_bg.png</bordertexture>
|
||||
<bordersize>3</bordersize>
|
||||
<visible>Control.HasFocus(13)</visible>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>show title</description>
|
||||
<posx>10</posx>
|
||||
<posy>75</posy>
|
||||
<width>152</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFFEFEFE</textcolor>
|
||||
<scroll>true</scroll>
|
||||
</control>
|
||||
<!--
|
||||
<control type="label">
|
||||
<description>videos</description>
|
||||
<posx>275</posx>
|
||||
<posy>76</posy>
|
||||
<width>152</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<label>Recordings: $INFO[ListItem.property(custom:videos)]</label>
|
||||
<font>font14</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<scroll>true</scroll>
|
||||
</control>
|
||||
-->
|
||||
</focusedlayout>
|
||||
<content type="action">
|
||||
<onclick lang="python"><![CDATA[mythboxee.LoadSingleShow()]]></onclick>
|
||||
</content>
|
||||
</control>
|
||||
</controls>
|
||||
</window>
|
|
@ -1,459 +0,0 @@
|
|||
<?xml version="1.0"?>
|
||||
<window type="window" id="14001">
|
||||
<defaultcontrol always="true">2013</defaultcontrol>
|
||||
<allowoverlay>no</allowoverlay>
|
||||
<onload lang="python"><![CDATA[
|
||||
import mythboxee
|
||||
]]></onload>
|
||||
<controls>
|
||||
<control type="image">
|
||||
<width>1280</width>
|
||||
<height>720</height>
|
||||
<texture>mb_bg.png</texture>
|
||||
<animation effect="fade" start="85" end="85" time="0" condition="true">Conditional</animation>
|
||||
</control>
|
||||
<control type="grouplist" id="2000">
|
||||
<posy>9</posy>
|
||||
<posx>1110</posx>
|
||||
<itemgap>20</itemgap>
|
||||
<ondown>2013</ondown>
|
||||
<orientation>horizontal</orientation>
|
||||
</control>
|
||||
|
||||
<control type="group" id="2012">
|
||||
<description>details box</description>
|
||||
<posx>28</posx>
|
||||
<posy>81</posy>
|
||||
<onleft>-</onleft>
|
||||
<onright>2013</onright>
|
||||
<onup>-</onup>
|
||||
<ondown>-</ondown>
|
||||
<control type="image">
|
||||
<description>details box's background</description>
|
||||
<posx>0</posx>
|
||||
<posy>0</posy>
|
||||
<width>283</width>
|
||||
<height>597</height>
|
||||
<texture>mb_show.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail</description>
|
||||
<posx>15</posx>
|
||||
<posy>10</posy>
|
||||
<width>253</width>
|
||||
<height>350</height>
|
||||
<texture>$INFO[Container(21).ListItem.Thumb]</texture>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<fadetime>500</fadetime>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>show title</description>
|
||||
<posx>22</posx>
|
||||
<posy>370</posy>
|
||||
<width>228</width>
|
||||
<height>30</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<scroll>true</scroll>
|
||||
<label>$INFO[Container(21).ListItem.Label]</label>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFFEFEFE</textcolor>
|
||||
<wrapmultiline>true</wrapmultiline>
|
||||
</control>
|
||||
<!--
|
||||
<control type="label">
|
||||
<description>recordings</description>
|
||||
<visible>!stringcompare(Container(21).ListItem.property(custom:category),movie)</visible>
|
||||
<posx>22</posx>
|
||||
<posy>400</posy>
|
||||
<width>228</width>
|
||||
<height>20</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<scroll>true</scroll>
|
||||
<label>Recordings: $INFO[Container(21).ListItem.property(custom:videos)]</label>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<wrapmultiline>false</wrapmultiline>
|
||||
</control>
|
||||
-->
|
||||
<control type="textbox">
|
||||
<visible>!stringcompare(Container(21).ListItem.property(custom:category),movie)</visible>
|
||||
<description>description</description>
|
||||
<posx>22</posx>
|
||||
<posy>400</posy>
|
||||
<width>228</width>
|
||||
<height>160</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<scroll>true</scroll>
|
||||
<label>$INFO[Container(21).ListItem.property(description)]</label>
|
||||
<font>font16</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<autoscroll delay="3000" time="2000" repeat="10000">Control.HasFocus(2013)</autoscroll>
|
||||
</control>
|
||||
<!--
|
||||
<control type="label">
|
||||
<visible>stringcompare(Container(21).ListItem.property(custom:category),movie)</visible>
|
||||
<description>videos</description>
|
||||
<posx>22</posx>
|
||||
<posy>400</posy>
|
||||
<width>228</width>
|
||||
<height>20</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<scroll>true</scroll>
|
||||
<label>Recordings: $INFO[Container(21).ListItem.property(custom:videos)]</label>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<wrapmultiline>false</wrapmultiline>
|
||||
</control>
|
||||
-->
|
||||
<control type="textbox">
|
||||
<description>description</description>
|
||||
<visible>stringcompare(Container(21).ListItem.property(custom:category),movie)</visible>
|
||||
<posx>22</posx>
|
||||
<posy>400</posy>
|
||||
<width>228</width>
|
||||
<height>160</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<scroll>true</scroll>
|
||||
<label>$INFO[Container(21).ListItem.property(description)]</label>
|
||||
<font>font16</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<autoscroll delay="3000" time="2000" repeat="10000">Control.HasFocus(2013)</autoscroll>
|
||||
</control>
|
||||
</control>
|
||||
|
||||
<!-- end SHOW DETAILS -->
|
||||
|
||||
<!-- begin EPISODES LIST -->
|
||||
|
||||
<control type="list" id="2013">
|
||||
<posx>345</posx>
|
||||
<posy>82</posy>
|
||||
<width>700</width>
|
||||
<height>592</height>
|
||||
<onleft>2012</onleft>
|
||||
<onright>2014</onright>
|
||||
<onup>2000</onup>
|
||||
<ondown>-</ondown>
|
||||
<animation condition="Control.IsVisible(14)" type="Conditional" reversible="false">
|
||||
<effect end="100" start="0" time="200" type="fade" />
|
||||
</animation>
|
||||
<itemlayout width="700" height="85">
|
||||
<control type="image">
|
||||
<description>background</description>
|
||||
<posx>0</posx>
|
||||
<posy>0</posy>
|
||||
<width>700</width>
|
||||
<height>82</height>
|
||||
<texture border="5">mb_item_big.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>106</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordersize>3</bordersize>
|
||||
<bordertexture>mb_thumb_bg.png</bordertexture>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>episode title</description>
|
||||
<posx>128</posx>
|
||||
<posy>6</posy>
|
||||
<width>440</width>
|
||||
<height>30</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFFEFEFE</textcolor>
|
||||
<wrapmultiline>true</wrapmultiline>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>original air date</description>
|
||||
<posx>690</posx>
|
||||
<posy>5</posy>
|
||||
<width>240</width>
|
||||
<height>10</height>
|
||||
<align>right</align>
|
||||
<aligny>top</aligny>
|
||||
<label>Air Date: $INFO[ListItem.Date]</label>
|
||||
<font>font12</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>description</description>
|
||||
<posx>128</posx>
|
||||
<posy>31</posy>
|
||||
<width>560</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<label>$INFO[ListItem.property(description)]</label>
|
||||
<font>font14</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<wrapmultiline>true</wrapmultiline>
|
||||
</control>
|
||||
</itemlayout>
|
||||
<focusedlayout width="700" height="85">
|
||||
<control type="togglebutton">
|
||||
<description>background</description>
|
||||
<posx>0</posx>
|
||||
<posy>0</posy>
|
||||
<width>700</width>
|
||||
<height>82</height>
|
||||
<texturefocus border="5">mb_item_big_hover.png</texturefocus>
|
||||
<texturenofocus border="5">mb_item_big_hover.png</texturenofocus>
|
||||
<alttexturefocus border="5">mb_item_big.png</alttexturefocus>
|
||||
<alttexturenofocus border="5">mb_item_big.png</alttexturenofocus>
|
||||
<usealttexture>!Control.HasFocus(2013)</usealttexture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>106</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordertexture>mb_thumb_bg.png</bordertexture>
|
||||
<bordersize>3</bordersize>
|
||||
</control>
|
||||
<control type="image">
|
||||
<description>thumbnail hover</description>
|
||||
<posx>10</posx>
|
||||
<posy>10</posy>
|
||||
<width>106</width>
|
||||
<height>62</height>
|
||||
<info>Listitem.Thumb</info>
|
||||
<aspectratio>scale</aspectratio>
|
||||
<bordertexture>mb_thumb_hover_bg.png</bordertexture>
|
||||
<bordersize>3</bordersize>
|
||||
<visible>Control.HasFocus(2013)</visible>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>episode title</description>
|
||||
<posx>128</posx>
|
||||
<posy>6</posy>
|
||||
<width>440</width>
|
||||
<height>30</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16b</font>
|
||||
<textcolor>FFFEFEFE</textcolor>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>original air date</description>
|
||||
<posx>690</posx>
|
||||
<posy>5</posy>
|
||||
<width>240</width>
|
||||
<height>10</height>
|
||||
<align>right</align>
|
||||
<aligny>top</aligny>
|
||||
<label>Air Date: $INFO[ListItem.Date]</label>
|
||||
<font>font12</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
</control>
|
||||
<control type="label">
|
||||
<description>description</description>
|
||||
<posx>128</posx>
|
||||
<posy>31</posy>
|
||||
<width>560</width>
|
||||
<height>60</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<label>$INFO[ListItem.property(description)]</label>
|
||||
<font>font14</font>
|
||||
<textcolor>FFCCCCCC</textcolor>
|
||||
<wrapmultiline>true</wrapmultiline>
|
||||
</control>
|
||||
</focusedlayout>
|
||||
<content type="action">
|
||||
<onfocus lang="python"><![CDATA[mythboxee.ShowEpisodeDetails()]]></onfocus>
|
||||
</content>
|
||||
</control>
|
||||
|
||||
<!-- end EPISODES LIST -->
|
||||
|
||||
<!-- begin SORT LIST -->
|
||||
|
||||
<control type="label">
|
||||
<posx>1079</posx>
|
||||
<posy>75</posy>
|
||||
<label>SORT:</label>
|
||||
<font>font14b</font>
|
||||
<aligny>top</aligny>
|
||||
<textcolor>FF999999</textcolor>
|
||||
</control>
|
||||
|
||||
<control type="list" id="2014">
|
||||
<posx>1070</posx>
|
||||
<posy>100</posy>
|
||||
<width>164</width>
|
||||
<height>100</height>
|
||||
<onleft>2013</onleft>
|
||||
<onright>-</onright>
|
||||
<onup>-</onup>
|
||||
<ondown>2015</ondown>
|
||||
<itemlayout width="164" height="27">
|
||||
<control type="label">
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FF999999</textcolor>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
</itemlayout>
|
||||
<focusedlayout width="164" height="27">
|
||||
<control type="label">
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FFFFFFFF</textcolor>
|
||||
<visible>Control.HasFocus(2014)</visible>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
<control type="label">
|
||||
<visible>!Control.HasFocus(2014)</visible>
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FF999999</textcolor>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
</focusedlayout>
|
||||
<content type="action">
|
||||
<onclick lang="python"><![CDATA[mythboxee.SortBySeriesEpisodes()]]></onclick>
|
||||
</content>
|
||||
</control>
|
||||
|
||||
<!-- end SORT LIST -->
|
||||
|
||||
<control type="label">
|
||||
<posx>1079</posx>
|
||||
<posy>200</posy>
|
||||
<label>SORT DIRECTION:</label>
|
||||
<font>font14b</font>
|
||||
<aligny>top</aligny>
|
||||
<textcolor>FF999999</textcolor>
|
||||
</control>
|
||||
|
||||
<control type="list" id="2015">
|
||||
<posx>1070</posx>
|
||||
<posy>225</posy>
|
||||
<width>164</width>
|
||||
<height>100</height>
|
||||
<onleft>2013</onleft>
|
||||
<onright>-</onright>
|
||||
<onup>2014</onup>
|
||||
<ondown>-</ondown>
|
||||
<itemlayout width="164" height="27">
|
||||
<control type="label">
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FF999999</textcolor>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
</itemlayout>
|
||||
<focusedlayout width="164" height="27">
|
||||
<control type="label">
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FFFFFFFF</textcolor>
|
||||
<visible>Control.HasFocus(2015)</visible>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
<control type="label">
|
||||
<visible>!Control.HasFocus(2015)</visible>
|
||||
<description>title</description>
|
||||
<posx>9</posx>
|
||||
<posy>0</posy>
|
||||
<width>146</width>
|
||||
<height>25</height>
|
||||
<align>left</align>
|
||||
<aligny>top</aligny>
|
||||
<info>ListItem.Label</info>
|
||||
<font>font16</font>
|
||||
<textcolor>FF999999</textcolor>
|
||||
<selectedcolor>FFFFFFFF</selectedcolor>
|
||||
</control>
|
||||
</focusedlayout>
|
||||
<content type="action">
|
||||
<onclick lang="python"><![CDATA[mythboxee.SortDirSeriesEpisodes()]]></onclick>
|
||||
</content>
|
||||
</control>
|
||||
|
||||
<!-- begin SHOW DETAILS CONTAINER -->
|
||||
|
||||
<control type="list" id="21">
|
||||
<posx>1</posx>
|
||||
<posy>1</posy>
|
||||
<width>1</width>
|
||||
<height>1</height>
|
||||
<itemlayout width="1" height="1">
|
||||
</itemlayout>
|
||||
<focusedlayout width="1" height="1">
|
||||
</focusedlayout>
|
||||
</control>
|
||||
|
||||
<!-- end SHOW DETAILS CONTAINER -->
|
||||
<!--
|
||||
<control type="multiimage" id="30">
|
||||
<description>loading control</description>
|
||||
<visible>Container(21).IsLoading | Container(13).IsLoading | Container(20).IsLoading</visible>
|
||||
<animation effect="fade" time="200">VisibleChange</animation>
|
||||
<posx>538</posx>
|
||||
<posy>306</posy>
|
||||
<width>200</width>
|
||||
<height>200</height>
|
||||
<imagepath>loading</imagepath>
|
||||
<timeperimage>80</timeperimage>
|
||||
<fadetime>10</fadetime>
|
||||
<pauseatend>0</pauseatend>
|
||||
<randomize>false</randomize>
|
||||
<loop>yes</loop>
|
||||
<aspectratio>keep</aspectratio>
|
||||
</control>
|
||||
-->
|
||||
|
||||
</controls>
|
||||
</window>
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 558 B |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 116 B |
Before Width: | Height: | Size: 113 B |