(2019-09-09, 00:50)malvinas2 Wrote: I updated the skin, main changes are: - Regarding videoextras it is just working with the Titan skin (sic!) as I couldn't convince the addon to work with Estuary; so if anyone has got an idea, let me know about it.
Provided that the options "Enable Database Support" and "Allow caching of extras on startup" are enabled (which they are by default), a mediaflag icon appears, indicating that the selected movie/tvshow contains Extras.
- trailer: for playing locally available trailers script.skin.helper.service has been replaced by listitem.trailer and playmedia. This solution is more reliable, but on the other hand it brings up the disadvantage that these commands just work for movie trailers, not for tv-show trailers. Some skins provide workarounds for this problem, to keep it simple (and because I am not using trailers for tvshows...) I haven't implemented something like this. On the contrary for the function of auto-trailers the existing solution is used, in this case it seems to work better than playmedia. If this sounds like a paradox, yes it is...
for trailers
i use hidden button with actions inside the focusedlayout of wished views
- makes usage of fallback conditions easy and just takes ms to check
- i recommend using embuary.helper to check against and set property, as it's also usefull for other stuff as a skinhelper.service replacement
- if you want you can also use that
simple script (check readme.md)
xml:
<include name="AutoTrailerButton">
<control type="button">
<visible>false</visible>
<onfocus>RunScript(script.embuary.helper,action=lookforfile,file='"$INFO[listitem.path]$INFO[listitem.FolderName,,-trailer.mp4]"',prop=trailer_avail)</onfocus>
<onfocus condition="!Player.HasVideo">SetProperty(trailer_trailerwillplaying,true,home)</onfocus>
<onfocus condition="!Skin.HasSetting(Library_NoOnlineLookupTrailer) + !Player.HasVideo + Skin.HasSetting(DetailsAutoTrailer)">AlarmClock(trailer_delay,RunScript(script.skin.helper.service,action=playtraileryoutube,mode=windowed,title=$VAR[TVShowTitle],local=true),00:03,silent)</onfocus>
<onfocus condition="Skin.HasSetting(Library_NoOnlineLookupTrailer) + !Player.HasVideo + Skin.HasSetting(DetailsAutoTrailer)">AlarmClock(trailer_delay,PlayMedia($INFO[listitem.path]$INFO[ListItem.FolderName,,-trailer.mp4],1),00:03,silent)</onfocus>
<onunfocus condition="System.HasAlarm(trailer_delay)">CancelAlarm(trailer_delay,true)</onunfocus>
<onunfocus condition="Player.HasVideo + ![VideoPlayer.Content(movies) | VideoPlayer.Content(episodes) | VideoPlayer.Content(musicvideos) | VideoPlayer.Content(livetv)]">PlayerControl(Stop)</onunfocus>
<onunfocus condition="!String.IsEmpty(Window(home).Property(trailer_avail))">ClearProperty(trailer_avail,home)</onunfocus>
<onunfocus condition="!String.IsEmpty(Window(home).Property(trailer_trailerwillplaying))">ClearProperty(trailer_trailerwillplaying)</onunfocus>
</control>
</include>
click 'up' to play, if wished, set this to actions in depending view group
( - if no trailer localy stored, or scraped it'll still use skinhelper method
- go fullscreen click 'up' if video is playing
- to stop click 'down' )
<include name="trailer_onup">
<onup condition="!Player.HasVideo">SetProperty(trailer_trailerwillplaying,true,home)</onup>
<onup condition="!Player.HasVideo + !String.IsEmpty(Window(home).Property(trailer_avail))">PlayMedia($INFO[listitem.path]$INFO[ListItem.FolderName,,-trailer.mp4],1)</onup>
<onup condition="!Player.HasVideo + [!String.IsEmpty(ListItem.Trailer) + String.IsEmpty(Window(home).Property(trailer_avail))]">PlayMedia($INFO[ListItem.Trailer],1)</onup>
<onup condition="!Player.HasVideo + [[String.IsEmpty(Window(home).Property(trailer_avail)) + String.IsEmpty(ListItem.Trailer)] | ListItem.IsCollection | String.Contains(ListItem.Path,http)]">RunScript(script.skin.helper.service,action=playtraileryoutube,mode=windowed,title=$INFO[ListItem.Title],local=true)</onup>
<ondown condition="Player.HasVideo">Stop</ondown>
<onup condition="Player.HasVideo">fullscreen</onup>
<ondown condition="!String.IsEmpty(Window(home).Property(trailer_trailerwillplaying))">ClearProperty(trailer_trailerwillplaying)</ondown>
</include>
for extras, i use a container, with content in dialogvideoinfo (just unable to get thumbs for extras)
and visible conditions
xml:
<visible>[container.content(movies) | String.IsEqual(ListItem.DBTYPE,movie)] + [Integer.IsGreater(Container(8609).NumItems,0) | Container(8609).IsUpdating]</visible>
xml:
<content>$INFO[listitem.path,,extras]</content>
<content>$INFO[listitem.path,,VIDEO_TS\extras]</content>
<content>$INFO[listitem.path,,BDMV\Extras\]</content>