@@ -40,10 +40,18 @@ def newest(categoria):
|
||||
log(categoria)
|
||||
itemlist = []
|
||||
item = Item()
|
||||
|
||||
try:
|
||||
if categoria == "movie": item.url = host + '/film/'
|
||||
elif categoria == "tvshow": item.url = host + '/serie/'
|
||||
elif categoria == "anime": item.url = host + '/anime/'
|
||||
if categoria == 'peliculas':
|
||||
item.contentType = 'movie'
|
||||
item.url = host + '/film/'
|
||||
elif categoria == "series":
|
||||
item.contentType = 'episode'
|
||||
item.url = host + '/serie/'
|
||||
elif categoria == "anime":
|
||||
item.contentType = 'episode'
|
||||
item.url = host + '/anime/'
|
||||
|
||||
item.action = "peliculas"
|
||||
itemlist = peliculas(item)
|
||||
|
||||
@@ -126,10 +134,11 @@ def episodios(item):
|
||||
|
||||
def findvideos(item):
|
||||
log()
|
||||
itemlist =[]
|
||||
matches, data = support.match(item, '<iframe class="metaframe rptss" src="([^"]+)"[^>]+>',headers=headers)
|
||||
for url in matches:
|
||||
html = httptools.downloadpage(url, headers=headers).data
|
||||
data += str(scrapertoolsV2.find_multiple_matches(html, '<meta name="og:url" content="([^"]+)">'))
|
||||
|
||||
return support.server(item, data)
|
||||
itemlist = support.server(item, data)
|
||||
return itemlist
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ def color(text, color):
|
||||
|
||||
|
||||
def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="", patron_block="",
|
||||
patronNext="", action="findvideos", addVideolibrary = True):
|
||||
patronNext="", action="findvideos", addVideolibrary = True, type_content_dict={}, type_action_dict={}):
|
||||
# patron: the patron to use for scraping page, all capturing group must match with listGroups
|
||||
# listGroups: a list containing the scraping info obtained by your patron, in order
|
||||
# accepted values are: url, title, thumb, quality, year, plot, duration, genre, rating, episode, lang
|
||||
@@ -114,6 +114,9 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
|
||||
# blacklist = 'Request a TV serie!'
|
||||
# return support.scrape(item, itemlist, patron, ['thumb', 'quality', 'url', 'title', 'year', 'plot', 'episode', 'lang'],
|
||||
# headers=headers, blacklist=blacklist)
|
||||
# 'type' is a check for typologies of content e.g. Film or TV Series
|
||||
# 'episode' is a key to grab episode numbers if it is separated from the title
|
||||
# IMPORTANT 'type' is a special key, to work need type_content_dict={} and type_action_dict={}
|
||||
|
||||
itemlist = []
|
||||
|
||||
@@ -194,6 +197,15 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data=""
|
||||
if scraped["rating"]:
|
||||
infolabels['rating'] = scrapertoolsV2.decodeHtmlentities(scraped["rating"])
|
||||
|
||||
if type_content_dict:
|
||||
for name, variants in type_content_dict.items():
|
||||
if scraped['type'] in variants:
|
||||
item.contentType = name
|
||||
if type_action_dict:
|
||||
for name, variants in type_action_dict.items():
|
||||
if scraped['type'] in variants:
|
||||
action = name
|
||||
|
||||
if scraped["title"] not in blacklist:
|
||||
it = Item(
|
||||
channel=item.channel,
|
||||
@@ -456,7 +468,11 @@ def match(item, patron='', patron_block='', headers='', url=''):
|
||||
return matches, data
|
||||
|
||||
|
||||
def videolibrary(itemlist, item, typography=''):
|
||||
def videolibrary(itemlist, item, typography='', function_level=1):
|
||||
# Simply add this function to add video library support
|
||||
# Function_level is useful if the function is called by another function.
|
||||
# If the call is direct, leave it blank
|
||||
|
||||
if item.contentType != 'episode':
|
||||
action = 'add_pelicula_to_library'
|
||||
extra = 'findvideos'
|
||||
@@ -465,9 +481,12 @@ def videolibrary(itemlist, item, typography=''):
|
||||
action = 'add_serie_to_library'
|
||||
extra = 'episodios'
|
||||
contentType = 'tvshow'
|
||||
|
||||
if not typography: typography = 'color kod bold'
|
||||
|
||||
title = typo(config.get_localized_string(30161) + ' ' + typography)
|
||||
if inspect.stack()[1][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[1][3] != 'findvideos' and contentType != 'movie':
|
||||
|
||||
if inspect.stack()[function_level][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[function_level][3] != 'findvideos' and contentType != 'movie':
|
||||
if config.get_videolibrary_support() and len(itemlist) > 0:
|
||||
itemlist.append(
|
||||
Item(channel=item.channel,
|
||||
@@ -479,6 +498,7 @@ def videolibrary(itemlist, item, typography=''):
|
||||
extra=extra,
|
||||
contentTitle=item.fulltitle))
|
||||
|
||||
return itemlist
|
||||
|
||||
def nextPage(itemlist, item, data, patron, function_level=1):
|
||||
# Function_level is useful if the function is called by another function.
|
||||
@@ -535,11 +555,13 @@ def server(item, data='', itemlist='', headers='', AutoPlay=True, CheckLinks=Tru
|
||||
def controls(itemlist, item, AutoPlay=True, CheckLinks=True):
|
||||
from core import jsontools
|
||||
from platformcode.config import get_setting
|
||||
|
||||
CL = get_setting('checklinks') or get_setting('checklinks', item.channel)
|
||||
autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY')
|
||||
channel_node = autoplay_node.get(item.channel, {})
|
||||
settings_node = channel_node.get('settings', {})
|
||||
AP = get_setting('autoplay') or settings_node['active']
|
||||
|
||||
if CL and not AP:
|
||||
if get_setting('checklinks', item.channel):
|
||||
checklinks = get_setting('checklinks', item.channel)
|
||||
@@ -553,7 +575,8 @@ def controls(itemlist, item, AutoPlay=True, CheckLinks=True):
|
||||
|
||||
if AutoPlay == True:
|
||||
autoplay.start(itemlist, item)
|
||||
videolibrary(itemlist, item)
|
||||
|
||||
videolibrary(itemlist, item, function_level=3)
|
||||
return itemlist
|
||||
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import xbmcaddon
|
||||
import xbmcgui
|
||||
|
||||
from channelselector import get_thumb
|
||||
from platformcode import config
|
||||
from platformcode import config, logger
|
||||
|
||||
|
||||
class KeyListener(xbmcgui.WindowXMLDialog):
|
||||
@@ -168,6 +168,9 @@ class Main(xbmcgui.WindowXMLDialog):
|
||||
|
||||
|
||||
def open_shortcut_menu():
|
||||
main = Main('ShortCutMenu.xml', config.get_runtime_path())
|
||||
XML = 'ShortCutMenu.xml'
|
||||
if config.get_setting('icon_set') == 'dark':
|
||||
XML = 'Dark' + XML
|
||||
main = Main(XML, config.get_runtime_path())
|
||||
main.doModal()
|
||||
del main
|
||||
|
||||
@@ -606,14 +606,14 @@ def set_context_commands(item, parent_item):
|
||||
|
||||
elif item.contentSerieName:
|
||||
# Descargar serie
|
||||
if item.contentType == "tvshow":
|
||||
if item.contentType == "tvshow" or 'episode' and item.action in ["episodios"]:
|
||||
context_commands.append((config.get_localized_string(60355), "XBMC.RunPlugin(%s?%s)" %
|
||||
(sys.argv[0], item.clone(channel="downloads", action="save_download",
|
||||
from_channel=item.channel,
|
||||
from_action=item.action).tourl())))
|
||||
|
||||
# Descargar episodio
|
||||
elif item.contentType == "episode":
|
||||
elif item.contentType == "tvshow" or 'episode' and item.action in ["findvideos"]:
|
||||
context_commands.append((config.get_localized_string(60356), "XBMC.RunPlugin(%s?%s)" %
|
||||
(sys.argv[0], item.clone(channel="downloads", action="save_download",
|
||||
from_channel=item.channel,
|
||||
|
||||
@@ -354,7 +354,7 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
return ok
|
||||
|
||||
def add_control_label(self, c):
|
||||
control = xbmcgui.ControlLabel(0, -100, self.controls_width, 30, "", alignment=4, font=self.font,
|
||||
control = xbmcgui.ControlLabel(0, -100, self.controls_width, 40, "", alignment=4, font=self.font,
|
||||
textColor=c["color"])
|
||||
|
||||
self.addControl(control)
|
||||
@@ -366,20 +366,20 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
c["control"] = control
|
||||
|
||||
def add_control_list(self, c):
|
||||
control = xbmcgui.ControlButton(0, -100, self.controls_width, self.height_control,
|
||||
control = xbmcgui.ControlButton(0, -100, self.controls_width + 20, self.height_control,
|
||||
c["label"], os.path.join(self.mediapath, 'Controls', 'MenuItemFO.png'),
|
||||
os.path.join(self.mediapath, 'Controls', 'MenuItemNF.png'),
|
||||
0, textColor=c["color"],
|
||||
10, textColor=c["color"],
|
||||
font=self.font)
|
||||
|
||||
label = xbmcgui.ControlLabel(0, -100, self.controls_width - 30, self.height_control,
|
||||
"", font=self.font, textColor=c["color"], alignment=4 | 1)
|
||||
label = xbmcgui.ControlLabel(0, -100, self.controls_width - 80, self.height_control,
|
||||
"", font=self.font, textColor=c["color"], alignment= 1 | 4)
|
||||
|
||||
upBtn = xbmcgui.ControlButton(0, -100, 20, 15, "",
|
||||
upBtn = xbmcgui.ControlButton(0, -100, 15, 7, "",
|
||||
focusTexture=os.path.join(self.mediapath, 'Controls', 'spinUp-Focus.png'),
|
||||
noFocusTexture=os.path.join(self.mediapath, 'Controls', 'spinUp-noFocus.png'))
|
||||
|
||||
downBtn = xbmcgui.ControlButton(0, -100 + 15, 20, 15, "",
|
||||
downBtn = xbmcgui.ControlButton(0, -100 + 15, 15, 7, "",
|
||||
focusTexture=os.path.join(self.mediapath, 'Controls', 'spinDown-Focus.png'),
|
||||
noFocusTexture=os.path.join(self.mediapath, 'Controls', 'spinDown-noFocus.png'))
|
||||
|
||||
@@ -431,14 +431,14 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
def add_control_bool(self, c):
|
||||
# Versiones antiguas no admite algunas texturas
|
||||
if xbmcgui.__version__ in ["1.2", "2.0"]:
|
||||
control = xbmcgui.ControlRadioButton(0 - 10, -100, self.controls_width + 10, self.height_control,
|
||||
control = xbmcgui.ControlRadioButton(0, -100, self.controls_width + 20, self.height_control,
|
||||
label=c["label"], font=self.font, textColor=c["color"],
|
||||
focusTexture=os.path.join(self.mediapath, 'Controls',
|
||||
'MenuItemFO.png'),
|
||||
noFocusTexture=os.path.join(self.mediapath, 'Controls',
|
||||
'MenuItemNF.png'))
|
||||
else:
|
||||
control = xbmcgui.ControlRadioButton(0 - 10, -100, self.controls_width + 10,
|
||||
control = xbmcgui.ControlRadioButton(0, -100, self.controls_width + 20,
|
||||
self.height_control, label=c["label"], font=self.font,
|
||||
textColor=c["color"],
|
||||
focusTexture=os.path.join(self.mediapath, 'Controls',
|
||||
@@ -491,11 +491,11 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
self.getControl(10005).getPosition()[1])
|
||||
|
||||
# Obtenemos las dimensiones del area de controles
|
||||
self.controls_width = self.getControl(10007).getWidth() - 20
|
||||
self.controls_height = self.getControl(10007).getHeight()
|
||||
self.controls_width = self.getControl(10007).getWidth() - 30
|
||||
self.controls_height = self.getControl(10007).getHeight() -100
|
||||
self.controls_pos_x = self.getControl(10007).getPosition()[0] + self.getControl(10001).getPosition()[0] + 10
|
||||
self.controls_pos_y = self.getControl(10007).getPosition()[1] + self.getControl(10001).getPosition()[1]
|
||||
self.height_control = 35
|
||||
self.height_control = 40
|
||||
self.font = "font12"
|
||||
|
||||
# En versiones antiguas: creamos 5 controles, de lo conrtario al hacer click al segundo control,
|
||||
@@ -619,7 +619,7 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
|
||||
if c["type"] != "list":
|
||||
if c["type"] == "bool":
|
||||
c["control"].setPosition(self.controls_pos_x - 10, c["y"])
|
||||
c["control"].setPosition(self.controls_pos_x, c["y"])
|
||||
else:
|
||||
c["control"].setPosition(self.controls_pos_x, c["y"])
|
||||
|
||||
@@ -629,8 +629,8 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
|
||||
c["label"].setPosition(self.controls_pos_x + self.controls_width - 30, c["y"])
|
||||
else:
|
||||
c["label"].setPosition(self.controls_pos_x, c["y"])
|
||||
c["upBtn"].setPosition(self.controls_pos_x + c["control"].getWidth() - 25, c["y"] + 3)
|
||||
c["downBtn"].setPosition(self.controls_pos_x + c["control"].getWidth() - 25, c["y"] + 18)
|
||||
c["upBtn"].setPosition(self.controls_pos_x + c["control"].getWidth() - 40, c["y"] + 15)
|
||||
c["downBtn"].setPosition(self.controls_pos_x + c["control"].getWidth() - 25, c["y"] + 15)
|
||||
|
||||
self.set_visible(c, True)
|
||||
|
||||
@@ -962,7 +962,7 @@ class ControlEdit(xbmcgui.ControlButton):
|
||||
self.label = ""
|
||||
self.text = ""
|
||||
self.textControl = xbmcgui.ControlLabel(self.getX(), self.getY(), self.getWidth(), self.getHeight(), self.text,
|
||||
font=kwargs["font"], textColor=kwargs["textColor"], alignment=4 | 1)
|
||||
font=kwargs["font"], textColor=kwargs["textColor"], alignment= 4 | 1)
|
||||
self.window.addControl(self.textControl)
|
||||
|
||||
def setLabel(self, val):
|
||||
|
||||
@@ -565,7 +565,8 @@ def set_content(content_type, silent=False):
|
||||
continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.themoviedb.org)'))
|
||||
if not continuar:
|
||||
msg_text = config.get_localized_string(60047)
|
||||
if continuar and not forced:
|
||||
|
||||
if continuar:
|
||||
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.themoviedb.org)', True)
|
||||
|
||||
# Instalar Universal Movie Scraper
|
||||
@@ -589,7 +590,7 @@ def set_content(content_type, silent=False):
|
||||
continuar = (install and continuar)
|
||||
if not continuar:
|
||||
msg_text = config.get_localized_string(70097)
|
||||
if continuar and not forced:
|
||||
if continuar:
|
||||
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.universal)', True)
|
||||
|
||||
else: # SERIES
|
||||
@@ -619,7 +620,7 @@ def set_content(content_type, silent=False):
|
||||
continuar = (install and xbmc.getCondVisibility('System.HasAddon(metadata.tvdb.com)'))
|
||||
if not continuar:
|
||||
msg_text = config.get_localized_string(70099)
|
||||
if continuar and not forced:
|
||||
if continuar:
|
||||
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvdb.com)', True)
|
||||
|
||||
# Instalar The Movie Database
|
||||
@@ -644,7 +645,7 @@ def set_content(content_type, silent=False):
|
||||
continuar = (install and continuar)
|
||||
if not continuar:
|
||||
msg_text = config.get_localized_string(60047)
|
||||
if continuar and not forced:
|
||||
if continuar:
|
||||
xbmc.executebuiltin('xbmc.addon.opensettings(metadata.tvshows.themoviedb.org)', True)
|
||||
|
||||
idPath = 0
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<window>
|
||||
<allowoverlays>false</allowoverlays>
|
||||
<allowoverlays>false</allowoverlays>
|
||||
<animation type="WindowOpen" reversible="false">
|
||||
<effect type="zoom" start="80" end="100" center="640,225" delay="160" tween="back" time="240" />
|
||||
<effect type="fade" delay="160" end="100" time="240" />
|
||||
</animation>
|
||||
<animation type="WindowClose" reversible="false">
|
||||
<effect type="zoom" start="100" end="80" center="640,225" easing="in" tween="back" time="240" />
|
||||
<effect type="fade" start="100" end="0" time="240" />
|
||||
</animation>
|
||||
<controls>
|
||||
<control type="group" id="10001">
|
||||
<posx>240</posx>
|
||||
@@ -10,16 +18,11 @@
|
||||
<control type="image">
|
||||
<width>800</width>
|
||||
<height>500</height>
|
||||
<texture>Windows/DialogBack.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<height>40</height>
|
||||
<width>800</width>
|
||||
<texture>Windows/dialogheader.png</texture>
|
||||
<texture>Shortcut/dialog-bg-solid.png</texture>
|
||||
</control>
|
||||
<control type="label" id="10002">
|
||||
<posy>10</posy>
|
||||
<posx>10</posx>
|
||||
<posy>15</posy>
|
||||
<posx>50</posx>
|
||||
<height>34</height>
|
||||
<width>725</width>
|
||||
<font>font12_title</font>
|
||||
@@ -29,18 +32,18 @@
|
||||
<label>$ADDON[plugin.video.kod 70000]</label>
|
||||
</control>
|
||||
<control type="button" id="10003">
|
||||
<posx>735</posx>
|
||||
<posy>15</posy>
|
||||
<width>50</width>
|
||||
<height>30</height>
|
||||
<posx>745</posx>
|
||||
<posy>25</posy>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
<texturefocus>Controls/DialogCloseButton-focus.png</texturefocus>
|
||||
<texturenofocus>Controls/DialogCloseButton.png</texturenofocus>
|
||||
</control>
|
||||
<control type="button" id="10004">
|
||||
<posx>155</posx>
|
||||
<posy>445</posy>
|
||||
<width>120</width>
|
||||
<height>30</height>
|
||||
<posx>40</posx>
|
||||
<posy>410</posy>
|
||||
<width>200</width>
|
||||
<height>50</height>
|
||||
<textwidth>110</textwidth>
|
||||
<texturefocus>Controls/KeyboardKey.png</texturefocus>
|
||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||
@@ -49,10 +52,10 @@
|
||||
<label>$ADDON[plugin.video.kod 70001]</label>
|
||||
</control>
|
||||
<control type="button" id="10005">
|
||||
<posx>325</posx>
|
||||
<posy>445</posy>
|
||||
<width>120</width>
|
||||
<height>30</height>
|
||||
<posx>300</posx>
|
||||
<posy>410</posy>
|
||||
<width>200</width>
|
||||
<height>50</height>
|
||||
<textwidth>110</textwidth>
|
||||
<texturefocus>Controls/KeyboardKey.png</texturefocus>
|
||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||
@@ -61,10 +64,10 @@
|
||||
<label>$ADDON[plugin.video.kod 70002]</label>
|
||||
</control>
|
||||
<control type="button" id="10006">
|
||||
<posx>495</posx>
|
||||
<posy>445</posy>
|
||||
<width>120</width>
|
||||
<height>30</height>
|
||||
<posx>560</posx>
|
||||
<posy>410</posy>
|
||||
<width>200</width>
|
||||
<height>50</height>
|
||||
<textwidth>110</textwidth>
|
||||
<texturefocus>Controls/KeyboardKey.png</texturefocus>
|
||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||
@@ -73,20 +76,15 @@
|
||||
<label>$ADDON[plugin.video.kod 70003]</label>
|
||||
</control>
|
||||
<control type="group" id="10007">
|
||||
<posy>45</posy>
|
||||
<posy>80</posy>
|
||||
<posx>20</posx>
|
||||
<width>745</width>
|
||||
<height>387</height>
|
||||
<control type="image">
|
||||
<width>745</width>
|
||||
<height>387</height>
|
||||
<texture>Windows/BackControls.png</texture>
|
||||
</control>
|
||||
<control type="label" id="100010">
|
||||
<posy>0</posy>
|
||||
<posy>30</posy>
|
||||
<posx>0</posx>
|
||||
<width>745</width>
|
||||
<height>387</height>
|
||||
<height>300</height>
|
||||
<font>font16</font>
|
||||
<textcolor>0xFFFFFFFF</textcolor>
|
||||
<align>center</align>
|
||||
@@ -95,17 +93,18 @@
|
||||
</control>
|
||||
</control>
|
||||
<control type="image" id="10008">
|
||||
<posy>45</posy>
|
||||
<posx>770</posx>
|
||||
<posy>80</posy>
|
||||
<posx>780</posx>
|
||||
<width>10</width>
|
||||
<height>387</height>
|
||||
<height>300</height>
|
||||
<textcolor>0xFFFFFFFF</textcolor>
|
||||
<texture>Controls/ScrollBack.png</texture>
|
||||
</control>
|
||||
<control type="image" id="10009">
|
||||
<posy>45</posy>
|
||||
<posx>770</posx>
|
||||
<posy>80</posy>
|
||||
<posx>780</posx>
|
||||
<width>10</width>
|
||||
<height>387</height>
|
||||
<height>300</height>
|
||||
<texture>Controls/ScrollBar.png</texture>
|
||||
</control>
|
||||
</control>
|
||||
|
||||
163
resources/skins/Default/720p/DarkShortCutMenu.xml
Normal file
@@ -0,0 +1,163 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<window>
|
||||
<depth>0.52</depth>
|
||||
<coordinates>
|
||||
<left>200</left>
|
||||
<top>250</top>
|
||||
</coordinates>
|
||||
<defaultcontrol always="true">32500</defaultcontrol>
|
||||
<animation type="WindowOpen" reversible="false">
|
||||
<effect type="zoom" start="80" end="100" center="440,110" delay="160" tween="back" time="240" />
|
||||
<effect type="fade" delay="160" end="100" time="240" />
|
||||
</animation>
|
||||
<animation type="WindowClose" reversible="false">
|
||||
<effect type="zoom" start="100" end="80" center="440,110" easing="in" tween="back" time="240" />
|
||||
<effect type="fade" start="100" end="0" time="240" />
|
||||
</animation>
|
||||
<controls>
|
||||
<control type="button">
|
||||
<left>-200</left>
|
||||
<top>-250</top>
|
||||
<width>1280</width>
|
||||
<height>720</height>
|
||||
<texturefocus colordiffuse="88FFFFFF">Shortcut/white.png</texturefocus>
|
||||
<texturenofocus colordiffuse="88FFFFFF">Shortcut/white.png</texturenofocus>
|
||||
<onclick>Action(close)</onclick>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>0</left>
|
||||
<top>0</top>
|
||||
<width>880</width>
|
||||
<height>220</height>
|
||||
<texture border="2" colordiffuse="FFEEEEEE">Shortcut/white.png</texture>
|
||||
</control>
|
||||
<control type="group">
|
||||
<control type="group">
|
||||
<control type="image">
|
||||
<left>-21</left>
|
||||
<top>0</top>
|
||||
<width>1011</width>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/dialogbutton-nofo.png</texture>
|
||||
</control>
|
||||
<control type="list" id="32500">
|
||||
<left>-130</left>
|
||||
<top>0</top>
|
||||
<width>880</width>
|
||||
<height>220</height>
|
||||
<onup>32501</onup>
|
||||
<ondown>61</ondown>
|
||||
<orientation>horizontal</orientation>
|
||||
<scrolltime>200</scrolltime>
|
||||
<pagecontrol>61</pagecontrol>
|
||||
<animation effect="slide" start="0,0" end="10,0" time="0" condition="true">Conditional</animation>
|
||||
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
|
||||
<itemlayout height="220" width="220">
|
||||
<!-- <top>2</top> -->
|
||||
<control type="image">
|
||||
<top>0</top>
|
||||
<left>0</left>
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/button-nofo.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>30</left>
|
||||
<top>149</top>
|
||||
<width>306</width>
|
||||
<height>75</height>
|
||||
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>35</left>
|
||||
<top>35</top>
|
||||
<width>150</width>
|
||||
<height>150</height>
|
||||
<texture>$INFO[ListItem.Property(thumb)]</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<align>center</align>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>329</left>
|
||||
<top>24</top>
|
||||
<width>50</width>
|
||||
<height>50</height>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<texture>$INFO[ListItem.Overlay]</texture>
|
||||
</control>
|
||||
</itemlayout>
|
||||
<focusedlayout height="220" width="220">
|
||||
<control type="group">
|
||||
<depth>0.10</depth>
|
||||
<control type="image">
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/button-nofo.png</texture>
|
||||
<animation effect="fade" start="0" end="100" time="0">Unfocus</animation>
|
||||
<animation effect="fade" start="100" end="0" time="0">Focus</animation>
|
||||
</control>
|
||||
<control type="image">
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture colordiffuse="FF0082C2">Shortcut/button-fo.png</texture>
|
||||
<animation effect="fade" start="100" end="0" time="0">Unfocus</animation>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>5</left>
|
||||
<top>24</top>
|
||||
<width>50</width>
|
||||
<height>50</height>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<texture>$INFO[ListItem.Overlay]</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>23</left>
|
||||
<top>149</top>
|
||||
<width>298</width>
|
||||
<height>75</height>
|
||||
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>35</left>
|
||||
<top>35</top>
|
||||
<width>150</width>
|
||||
<height>150</height>
|
||||
<texture>$INFO[ListItem.Property(thumb)]</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<align>center</align>
|
||||
</control>
|
||||
<control type="textbox">
|
||||
<left>0</left>
|
||||
<top>146</top>
|
||||
<width>220</width>
|
||||
<height>74</height>
|
||||
<font>font12</font>
|
||||
<label>$INFO[ListItem.Label]</label>
|
||||
<align>center</align>
|
||||
<aligny>center</aligny>
|
||||
</control>
|
||||
</control>
|
||||
</focusedlayout>
|
||||
</control>
|
||||
<control type="scrollbar" id="61">
|
||||
<left>-120</left>
|
||||
<top>220</top>
|
||||
<width>880</width>
|
||||
<height>10</height>
|
||||
<texturesliderbackground colordiffuse="FFEEEEEE">Shortcut/white.png</texturesliderbackground>
|
||||
<texturesliderbar colordiffuse="FFCCCCCCS">Shortcut/white.png</texturesliderbar>
|
||||
<texturesliderbarfocus colordiffuse="FF0082C2">Shortcut/white.png</texturesliderbarfocus>
|
||||
<textureslidernib>-</textureslidernib>
|
||||
<textureslidernibfocus>-</textureslidernibfocus>
|
||||
<showonepage>false</showonepage>
|
||||
<orientation>horizontal</orientation>
|
||||
<onleft>32500</onleft>
|
||||
<onright>32500</onright>
|
||||
<ondown>32500</ondown>
|
||||
<onup>32500</onup>
|
||||
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
|
||||
</control>
|
||||
</control>
|
||||
</control>
|
||||
</controls>
|
||||
</window>
|
||||
@@ -2,96 +2,48 @@
|
||||
<window>
|
||||
<depth>0.52</depth>
|
||||
<coordinates>
|
||||
<left>147</left>
|
||||
<top>180</top>
|
||||
<left>200</left>
|
||||
<top>250</top>
|
||||
</coordinates>
|
||||
<defaultcontrol always="true">32500</defaultcontrol>
|
||||
<animation type="WindowOpen" reversible="false">
|
||||
<effect type="zoom" start="80" end="100" center="960,540" delay="160" tween="back" time="240" />
|
||||
<effect type="zoom" start="80" end="100" center="440,110" delay="160" tween="back" time="240" />
|
||||
<effect type="fade" delay="160" end="100" time="240" />
|
||||
</animation>
|
||||
<animation type="WindowClose" reversible="false">
|
||||
<effect type="zoom" start="100" end="80" center="960,540" easing="in" tween="back" time="240" />
|
||||
<effect type="zoom" start="100" end="80" center="440,110" easing="in" tween="back" time="240" />
|
||||
<effect type="fade" start="100" end="0" time="240" />
|
||||
</animation>
|
||||
<controls>
|
||||
<control type="image">
|
||||
<left>0</left>
|
||||
<top>0</top>
|
||||
<width>969</width>
|
||||
<height>283</height>
|
||||
<texture border="2">Shortcut/dialog-bg-solid.png</texture>
|
||||
<control type="button">
|
||||
<left>-200</left>
|
||||
<top>-250</top>
|
||||
<width>1280</width>
|
||||
<height>720</height>
|
||||
<texturefocus colordiffuse="88232323">Shortcut/white.png</texturefocus>
|
||||
<texturenofocus colordiffuse="88232323">Shortcut/white.png</texturenofocus>
|
||||
<onclick>Action(close)</onclick>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>0</left>
|
||||
<top>0</top>
|
||||
<width>969</width>
|
||||
<height>70</height>
|
||||
<texture colordiffuse="FF12B2E7" border="2">Shortcut/white70.png</texture>
|
||||
</control>
|
||||
<!-- <control type="label" id="30000">
|
||||
<textoffsetx>70</textoffsetx>
|
||||
<left>-30</left>
|
||||
<top>0</top>
|
||||
<width>969</width>
|
||||
<height>70</height>
|
||||
<font>font20_title</font>
|
||||
<label>Kodi on Demand - $ADDON[plugin.video.kod 30998]</label>
|
||||
<align>left</align>
|
||||
<aligny>center</aligny>
|
||||
<shadowcolor>black</shadowcolor>
|
||||
</control> -->
|
||||
<control type="button">
|
||||
<left>-1920</left>
|
||||
<top>-1080</top>
|
||||
<width>5760</width>
|
||||
<height>3240</height>
|
||||
<texturefocus>-</texturefocus>
|
||||
<texturenofocus>-</texturenofocus>
|
||||
<onclick>Action(close)</onclick>
|
||||
</control>
|
||||
<control type="button">
|
||||
<description>button overlay to avoid closing in dialog area</description>
|
||||
<left>0</left>
|
||||
<top>0</top>
|
||||
<width>969</width>
|
||||
<height>283</height>
|
||||
<texturefocus>-</texturefocus>
|
||||
<texturenofocus>-</texturenofocus>
|
||||
<onclick>noop</onclick>
|
||||
</control>
|
||||
<control type="radiobutton" id="32501">
|
||||
<left>969</left>
|
||||
<top>11</top>
|
||||
<width>48</width>
|
||||
<height>48</height>
|
||||
<radiowidth>48</radiowidth>
|
||||
<radioheight>48</radioheight>
|
||||
<texturefocus>-</texturefocus>
|
||||
<texturenofocus>-</texturenofocus>
|
||||
<label></label>
|
||||
<animation effect="slide" end="-70,0" time="0" condition="true">Conditional</animation>
|
||||
<textureradioofffocus colordiffuse="EEFFFFFF">Shortcut/close.png</textureradioofffocus>
|
||||
<textureradiooffnofocus colordiffuse="EEFFFFFF">Shortcut/close.png</textureradiooffnofocus>
|
||||
<textureradioonfocus colordiffuse="EEFFFFFF">Shortcut/close.png</textureradioonfocus>
|
||||
<textureradioonnofocus colordiffuse="EEFFFFFF">Shortcut/logo.png</textureradioonnofocus>
|
||||
<onclick>Action(close)</onclick>
|
||||
<onup>32500</onup>
|
||||
<ondown>32500</ondown>
|
||||
<width>880</width>
|
||||
<height>220</height>
|
||||
<texture border="2" colordiffuse="FF232323">Shortcut/white.png</texture>
|
||||
</control>
|
||||
<control type="group">
|
||||
<control type="group">
|
||||
<control type="image">
|
||||
<left>-21</left>
|
||||
<top>50</top>
|
||||
<top>0</top>
|
||||
<width>1011</width>
|
||||
<height>253</height>
|
||||
<texture border="40">Shortcut/dialogbutton-nofo.png</texture>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/dialogbutton-nofo.png</texture>
|
||||
</control>
|
||||
<control type="list" id="32500">
|
||||
<left>-139</left>
|
||||
<top>55</top>
|
||||
<width>980</width>
|
||||
<left>-130</left>
|
||||
<top>0</top>
|
||||
<width>880</width>
|
||||
<height>220</height>
|
||||
<onup>32501</onup>
|
||||
<ondown>61</ondown>
|
||||
@@ -100,14 +52,14 @@
|
||||
<pagecontrol>61</pagecontrol>
|
||||
<animation effect="slide" start="0,0" end="10,0" time="0" condition="true">Conditional</animation>
|
||||
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
|
||||
<itemlayout height="225" width="323">
|
||||
<top>2</top>
|
||||
<itemlayout height="220" width="220">
|
||||
<!-- <top>2</top> -->
|
||||
<control type="image">
|
||||
<top>5</top>
|
||||
<left>10</left>
|
||||
<width>347</width>
|
||||
<height>260</height>
|
||||
<texture border="40">Shortcut/button-nofo.png</texture>
|
||||
<top>0</top>
|
||||
<left>0</left>
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/button-nofo.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>30</left>
|
||||
@@ -117,10 +69,10 @@
|
||||
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>95</left>
|
||||
<top>23</top>
|
||||
<width>160</width>
|
||||
<height>130</height>
|
||||
<left>35</left>
|
||||
<top>35</top>
|
||||
<width>150</width>
|
||||
<height>150</height>
|
||||
<texture>$INFO[ListItem.Property(thumb)]</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<align>center</align>
|
||||
@@ -133,39 +85,21 @@
|
||||
<aspectratio>keep</aspectratio>
|
||||
<texture>$INFO[ListItem.Overlay]</texture>
|
||||
</control>
|
||||
<control type="textbox">
|
||||
<left>25</left>
|
||||
<top>146</top>
|
||||
<width>300</width>
|
||||
<height>74</height>
|
||||
<label>[COLOR grey]$INFO[ListItem.Label][/COLOR]</label>
|
||||
<shadowcolor>text_shadow</shadowcolor>
|
||||
<font>font12</font>
|
||||
<align>center</align>
|
||||
<aligny>center</aligny>
|
||||
</control>
|
||||
</itemlayout>
|
||||
<focusedlayout height="225" width="323">
|
||||
<focusedlayout height="220" width="220">
|
||||
<control type="group">
|
||||
<depth>0.10</depth>
|
||||
<animation type="Focus" reversible="false">
|
||||
<effect type="zoom" center="auto" start="100" end="108" time="250" tween="sine" />
|
||||
</animation>
|
||||
<animation type="UnFocus" reversible="false">
|
||||
<effect type="zoom" center="auto" start="108" end="100" time="150" tween="sine" />
|
||||
</animation>
|
||||
<top>2</top>
|
||||
<control type="image">
|
||||
<width>340</width>
|
||||
<height>245</height>
|
||||
<texture border="40">Shortcut/button-nofo.png</texture>
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture>Shortcut/button-nofo.png</texture>
|
||||
<animation effect="fade" start="0" end="100" time="0">Unfocus</animation>
|
||||
<animation effect="fade" start="100" end="0" time="0">Focus</animation>
|
||||
</control>
|
||||
<control type="image">
|
||||
<width>340</width>
|
||||
<height>237</height>
|
||||
<texture border="40" colordiffuse="FF12B2E7">Shortcut/button-fo.png</texture>
|
||||
<width>220</width>
|
||||
<height>220</height>
|
||||
<texture colordiffuse="FF0082C2">Shortcut/button-fo.png</texture>
|
||||
<animation effect="fade" start="100" end="0" time="0">Unfocus</animation>
|
||||
</control>
|
||||
<control type="image">
|
||||
@@ -184,18 +118,18 @@
|
||||
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
|
||||
</control>
|
||||
<control type="image">
|
||||
<left>95</left>
|
||||
<top>23</top>
|
||||
<width>160</width>
|
||||
<height>130</height>
|
||||
<left>35</left>
|
||||
<top>35</top>
|
||||
<width>150</width>
|
||||
<height>150</height>
|
||||
<texture>$INFO[ListItem.Property(thumb)]</texture>
|
||||
<aspectratio>keep</aspectratio>
|
||||
<align>center</align>
|
||||
</control>
|
||||
<control type="textbox">
|
||||
<left>25</left>
|
||||
<left>0</left>
|
||||
<top>146</top>
|
||||
<width>300</width>
|
||||
<width>220</width>
|
||||
<height>74</height>
|
||||
<font>font12</font>
|
||||
<label>$INFO[ListItem.Label]</label>
|
||||
@@ -206,13 +140,13 @@
|
||||
</focusedlayout>
|
||||
</control>
|
||||
<control type="scrollbar" id="61">
|
||||
<left>-122</left>
|
||||
<top>280</top>
|
||||
<width>972</width>
|
||||
<height>15</height>
|
||||
<texturesliderbackground colordiffuse="FFE6E6E6">Shortcut/white.png</texturesliderbackground>
|
||||
<texturesliderbar colordiffuse="FF12D2E7">Shortcut/white.png</texturesliderbar>
|
||||
<texturesliderbarfocus colordiffuse="FF12B2E7">Shortcut/white.png</texturesliderbarfocus>
|
||||
<left>-120</left>
|
||||
<top>220</top>
|
||||
<width>880</width>
|
||||
<height>10</height>
|
||||
<texturesliderbackground colordiffuse="FF232323">Shortcut/white.png</texturesliderbackground>
|
||||
<texturesliderbar colordiffuse="FF1f1f1f">Shortcut/white.png</texturesliderbar>
|
||||
<texturesliderbarfocus colordiffuse="FF0082C2">Shortcut/white.png</texturesliderbarfocus>
|
||||
<textureslidernib>-</textureslidernib>
|
||||
<textureslidernibfocus>-</textureslidernibfocus>
|
||||
<showonepage>false</showonepage>
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
<zorder>1</zorder>
|
||||
<controls>
|
||||
<control type="image">
|
||||
<animation type="WindowOpen" reversible="false">
|
||||
<effect type="slide" start="-200" end="0" time="80"/>
|
||||
<animation type="WindowOpen" reversible="true">
|
||||
<effect type="slide" start="-200" end="0" time="250"/>
|
||||
</animation>
|
||||
<left>0</left>
|
||||
<top>0</top>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 912 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 863 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 902 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.6 KiB |