Kodi Community Forum

Full Version: EstuaryPVR+ Skin MOD (Matrix)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9
The PVR artwork Module is now a standalone module (no script integration needed within the skin). Feel free to use it: https://github.com/b-jesch/script.module.pvr.artwork
(2022-02-03, 10:28)_BJ1 Wrote: [ -> ]The PVR artwork Module is now a standalone module (no script integration needed within the skin). Feel free to use it: https://github.com/b-jesch/script.module.pvr.artwork
Great stuff and many thanks! 
I did have a quick look at the git page last weekend, before it was standalone module and felt it could really assist my own project as well. So the changes you have made are a big bonus!.  Smile
I do have some quick questions:-
1) Since I also use the Skin Helper Script currently, are there likely to be any problems/conflicts with the Simple Cache? Can both be used at the same time?
2) Is the new artwork scraped from the TMDB shown immediately on PVR windows or is there a time delay showing this?
3) Reading the documentation, it mentions that previously defined folders are checked for hits. Is it therefore possible for me to specify a local artwork directory (not the download folder) to assist with returning artwork? If so, what would happen after the cache limit (Number of Days) is reached, ie would these local artworks be removed/deleted?  
4) I was looking at the labels and PVR windows available and wanted to know if if it was possible to show 'Next-Up' artwork? I was interested if your module could be used to display artwork on the PVR home page, particularly on the 'Last channel Played' and 'Recent Recordings' . The Skin Helper Script used to be able fetch artwork for all these items, but only using its web service which is now broken on Matrix.

  1. As the PVR artwork module use his own ID/prefix, you can use both at the same time.
  2. There is a time delay for the first time referrencing to TMDB (download meta + images), after that all data/images will read from cache/artwork directory. Delay is similar to Skin Helper.
  3. Yes, within the settings of the module. This could also be a remote directory (e.g. NAS). Once you have downloaded artwork, this will never be removed until you do it from within settings (Maintenance).
  4. No. Not possible atm
Regards
Version 0.2.1 just pushed to Git

Update includes:-
  • Main menu items added for EmbyCon Movies and TV Shows.
  • Ability to easily enable EmbyCon main menu items from the skin settings.
  • Ability to create custom Embycon category nodes on Embycon Home Screen.
More info available here: https://forum.kodi.tv/showthread.php?tid=366117&pid=3079503#pid3079503

ImageImage

Available to download from here: https://github.com/SplitEnz/skin.estuary.pvr.plus
Okay, so in my haste to quickly solve the problem of my slow library updates on the shield I completely overlooked the fact that not all users will want to install EmbyCon and will therefore be faced with an annoying pop-up asking if they would like to intsall it every time the skin is started. On that basis, I will be removing the EmbyCon menu items shortly.

However, for those users who did like the feature, it's still available here to download:-
EstuaryPVR+ Skin with EmbyCon Main Menu Items

I will try to create a separate branch on the git for this particular version, once I work out how to do that.
(2022-02-05, 18:32)Dumyat Wrote: [ -> ]4) I was looking at the labels and PVR windows available and wanted to know if if it was possible to show 'Next-Up' artwork? I was interested if your module could be used to display artwork on the PVR home page, particularly on the 'Last channel Played' and 'Recent Recordings' . The Skin Helper Script used to be able fetch artwork for all these items, but only using its web service which is now broken on Matrix.

Hello @Dumyat 

I've made a quick test with SHS.
With "script.skin.helper.widgets", you will also get PVR-artwork for "Recent recordings" and "Recently played channels" on the home screen.
Also without web service from SHS.

replace:
Code:
<param name="content_path" value="pvr://recordings/tv/active?view=flat"/>
with:
Code:
<param name="content_path" value="plugin://script.skin.helper.widgets/?action=recordings&mediatype=pvr&reload=$INFO[Window(Home).Property(widgetreload2)]"/>

replace:
Code:
<param name="content_path" value="pvr://channels/tv/*?view=lastplayed"/>
with:
Code:
<param name="content_path" value="plugin://script.skin.helper.widgets/?action=lastchannels&mediatype=pvr&reload=$INFO[Window(Home).Property(widgetreload2)]"/>

I hope I could help you with it.

Result:
Image
(2022-03-31, 05:51)Fuchs2468 Wrote: [ -> ]
(2022-02-05, 18:32)Dumyat Wrote: [ -> ] 
Hello @Dumyat 

I've made a quick test with SHS.
With "script.skin.helper.widgets", you will also get PVR-artwork for "Recent recordings" and "Recently played channels" on the home screen.
Also without web service from SHS.
Great stuff. I will give it a try later today.
I noticed in the screen shot, the artwork seems to be poster format. Is there a way to get landscape or fanart images?
(2022-03-31, 10:55)Dumyat Wrote: [ -> ]Great stuff. I will give it a try later today.
I noticed in the screen shot, the artwork seems to be poster format. Is there a way to get landscape or fanart images?

Hello Dumyat

Yes you could change it.
But the whole skin would have to be rewritten.
That's why I have been using "Titan-Mod" for years because of its "PVR view" and its individual adaptability.

Examples:
ImageImage

Image
(2022-04-02, 05:00)Fuchs2468 Wrote: [ -> ]
(2022-03-31, 10:55)Dumyat Wrote: [ -> ]Great stuff. I will give it a try later today.
I noticed in the screen shot, the artwork seems to be poster format. Is there a way to get landscape or fanart images?
Hello Dumyat
Yes you could change it.
But the whole skin would have to be rewritten.
That's why I have been using "Titan-Mod" for years because of its "PVR view" and its individual adaptability.
Okay. That's great to know and thanks for the examples.
Yeah, having PVR views with artwork is quite tricky, even more so when you try to nail down on specific artwork types.
I didn't get a chance yesterday to have a look. Will spend some time looking either today or tomorrow.
Thanks again for the tip  Smile
Next release will include a major update to the way the current OSD and OSD Info Panels look.

In future, both of these dialogs will be more aligned with the look and feel of the default Estuary skin.
They will still include the extra stuff like Music Disc Art, Artist Clearlogo, Clearart for movies and TV shows and the actor list dialog.
Hope to have something to release within the next couple of days or so...
Version 0.2.2 just pushed to Git

This is major update and includes:-
  • New look for OSD and OSD info panels that are more aligned with the default Estuary skin and functionality.
  • Ability to switch from Colourised OSD to default Estuary black via new OSD option on the skin settings.
  • Removal of addon icons from OSD panel when playing.
  • Removal of Black colour theme.
Hope you like the changes and new look.

ImageImageImageImageImageImage
Great stuff, I like the black version thanks.
(2022-04-03, 21:23)Dumyat Wrote: [ -> ]Version 0.2.2 just pushed to Git
I think you have to look at PVR radio again.

Image

And a title display would not be bad that is missing with you ("prv.plus").
Here examples of me as I have solved that at Titan-Mod.

xml:
<variable name="MusicScrollingTitles">
        <value condition="Player.HasAudio + !Pvr.IsPlayingRadio">$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]</value>
        <value condition="Player.HasAudio + RDS.HasRds + !VideoPlayer.HasEpg + !RDS.HasRadioTextPlus">$INFO[RDS.GetLine(0),, • ]$INFO[RDS.GetLine(0),, • ]$INFO[RDS.GetLine(0),, • ]$INFO[RDS.GetLine(0),, • ]</value>
        <value condition="Player.HasAudio + RDS.HasRds + VideoPlayer.HasEpg + String.IsEmpty(RDS.Artist)">$INFO[MusicPlayer.ChannelName,, • ]$INFO[Player.Title,, • ]$INFO[MusicPlayer.ChannelName,, • ]$INFO[Player.Title,, • ]$INFO[MusicPlayer.ChannelName,, • ]$INFO[Player.Title,, • ]</value>
        <value condition="Player.HasAudio + RDS.HasRds + !String.IsEmpty(RDS.Artist)">$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]</value>
        <value>$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]$INFO[MusicPlayer.Artist,, • ]$INFO[MusicPlayer.Title,, • ]</value>
    </variable>

<variable name="OSDLabel4">   <!-- added for specific MUSIC INFO , ALBUM NAME YEAR GENRE  -->
        <value condition="Player.HasAudio + RDS.HasRds + String.IsEmpty(RDS.ProgStyle)">RDS-Info: $INFO[RDS.GetLine(0)][CR]******</value>
        <value condition="Player.HasAudio + RDS.HasRds + !String.IsEmpty(RDS.ProgStyle)">RDS-Info: $INFO[RDS.GetLine(0)][CR]Genre: $INFO[RDS.ProgStyle]</value>
        <value condition="Player.HasAudio + !Pvr.IsPlayingRadio">$VAR[OSDmusicinfo]</value>
        <value condition="Player.HasAudio + Pvr.IsPlayingRadio + !RDS.HasRds"> [CR] </value>
        <value condition="Player.HasAudio + String.IsEmpty(MusicPlayer.Artist) + !String.IsEmpty(MusicPlayer.ChannelName)">$INFO[MusicPlayer.ChannelName]</value>
        <value condition="Player.HasAudio + String.IsEmpty(MusicPlayer.Artist) + String.IsEmpty(MusicPlayer.ChannelName) + !String.IsEmpty(Window(Home).Property(SkinHelper.Player.AddonName))">$INFO[Window(Home).Property(SkinHelper.Player.AddonName)]</value>
    </variable>

<variable name="OSDLabel5">   <!-- added MUSIC INFO , ARTIST - TITLE -->
        <value condition="Player.HasAudio + !Pvr.IsPlayingRadio">$INFO[MusicPlayer.Artist][CR]• $INFO[MusicPlayer.Title] •</value>
        <value condition="Player.HasAudio + RDS.HasRds + !String.IsEmpty(RDS.Artist)">$INFO[MusicPlayer.ChannelName][CR]$INFO[RDS.Artist] - $INFO[MusicPlayer.Title]</value>
        <value condition="Player.HasAudio + RDS.HasRds + String.IsEmpty(RDS.Artist)">$INFO[MusicPlayer.ChannelName][CR]$INFO[Player.Title]</value>
        <value condition="Player.HasAudio + Pvr.IsPlayingRadio + !RDS.HasRds">$INFO[MusicPlayer.Artist][CR]• $INFO[MusicPlayer.Title] •</value>
        <value condition="Player.HasAudio + !String.IsEmpty(MusicPlayer.Artist)">$INFO[MusicPlayer.Artist]</value>
        <value condition="Player.HasAudio + String.IsEmpty(MusicPlayer.Artist) + !String.IsEmpty(MusicPlayer.ChannelName)">$INFO[MusicPlayer.ChannelName]</value>
        <value condition="Player.HasAudio + String.IsEmpty(MusicPlayer.Artist) + String.IsEmpty(MusicPlayer.ChannelName) + !String.IsEmpty(Window(Home).Property(SkinHelper.Player.AddonName))">$INFO[Window(Home).Property(SkinHelper.Player.AddonName)]</value>
    </variable>

<variable name="OSDmusicinfo">
        <value condition="!String.IsEmpty(MusicPlayer.Album) + !String.IsEmpty(MusicPlayer.Year) + !String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Album,$LOCALIZE[558]: ,]$INFO[MusicPlayer.Year, (,)][CR]$INFO[MusicPlayer.Genre,$LOCALIZE[515]: ,]</value>
        <value condition="!String.IsEmpty(MusicPlayer.Album) + String.IsEmpty(MusicPlayer.Year) + !String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Album,$LOCALIZE[558]: ,][CR]$INFO[MusicPlayer.Genre,$LOCALIZE[515]: ,]</value>
        <value condition="!String.IsEmpty(MusicPlayer.Album) + !String.IsEmpty(MusicPlayer.Year) + String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Album,$LOCALIZE[558]: ,][CR]$INFO[MusicPlayer.Year,$LOCALIZE[345]: ,] </value>
        <value condition="!String.IsEmpty(MusicPlayer.Album) + String.IsEmpty(MusicPlayer.Year) + String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Album,$LOCALIZE[558]: ,][CR] </value>
        <value condition="String.IsEmpty(MusicPlayer.Album) + !String.IsEmpty(MusicPlayer.Year) + !String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Year,$LOCALIZE[345]: ,][CR]$INFO[MusicPlayer.Genre,$LOCALIZE[515]: ,]</value>
        <value condition="String.IsEmpty(MusicPlayer.Album) + String.IsEmpty(MusicPlayer.Year) + !String.IsEmpty(MusicPlayer.Genre)"> [CR]$INFO[MusicPlayer.Genre,$LOCALIZE[515]: ,]</value>
        <value condition="String.IsEmpty(MusicPlayer.Album) + !String.IsEmpty(MusicPlayer.Year) + String.IsEmpty(MusicPlayer.Genre)">$INFO[MusicPlayer.Year,$LOCALIZE[345]: ,][CR]</value>
        <value condition="String.IsEmpty(MusicPlayer.Album) + String.IsEmpty(MusicPlayer.Year) + String.IsEmpty(MusicPlayer.Genre)"> [CR] </value>
    </variable>

Image

Image

I mean with title display is missing at PRV radio, the lower menu.
It should be more like music playback.
Because info about the program is not really relevant at PRV radio.
(2022-04-04, 04:16)Fuchs2468 Wrote: [ -> ]
(2022-04-03, 21:23)Dumyat Wrote: [ -> ]Version 0.2.2 just pushed to Git
I think you have to look at PVR radio again.
Thanks for taking the time to give some feedback.
Yeah, I knew about the 'RDS Radio' label, but since I don't receive RDS Radio I wasn't sure what info it actually showed. So I just left it with the default values and thought I'd wait for somebody to let me there was a problem.....Which you have!  Wink Label is now correctly placed (I used Next title to test).
I also knew about the IMDB ratings appearing for live Radio. However, rather oddly when I tried removing these last week using !MusicPlayer.Content(LiveTV), neither would disappear. Just forgot to follow up on it. Have now fixed with a temp fix at the moment as per below:-

Image
I've also changed the label on the bottom panel for 'Now' item to the same variable as used for the top left label. 
Making this panel the same layout as music for live radio is probably fairly straight forward enough.
Can you tell me what the 2 labels above RDS label on the top info panel in your screen shot actually represent? On the default Estuary skin, there is very little code mentioned for this info panel so was wondering what these labels were:-
xml:
<control type="group">
            <visible>!Window.IsVisible(playerprocessinfo)</visible>
            <visible>[Player.ShowInfo | Window.IsActive(fullscreeninfo)] + VideoPlayer.Content(LiveTV)</visible>
            <visible>Player.ShowInfo | Window.IsActive(fullscreeninfo) | !Player.Seeking | !Player.DisplayAfterSeek | !Player.Forwarding | !Player.Rewinding | !Player.Paused</visible>
            <animation effect="fade" start="0" end="100" time="300" delay="250">Visible</animation>
            <animation effect="fade" start="100" end="0" time="100">Hidden</animation>
            <animation effect="slide" end="0,-20" time="150" condition="VideoPlayer.Content(LiveTV)">conditional</animation>
            <bottom>0</bottom>
            <height>380</height>
            <control type="label">
                <left>20</left>
                <width>290</width>
                <top>-80</top>
                <height>25</height>
                <label>$INFO[VideoPlayer.ChannelNumberLabel]</label>
                <shadowcolor>black</shadowcolor>
                <align>center</align>
                <font>WeatherTemp</font>
                <aligny>center</aligny>
            </control>
            <control type="image">
                <left>0</left>
                <width>100%</width>
                <height>240</height>
                <texture>dialogs/dialog-bg-nobo.png</texture>
            </control>
            <control type="image">
                <left>20</left>
                <top>20</top>
                <width>200</width>
                <height>200</height>
                <aspectratio aligny="center">keep</aspectratio>
                <texture>$INFO[Player.Icon]</texture>
            </control>
            <control type="textbox">
                <left>240</left>
                <top>10</top>
                <right>20</right>
                <height>160</height>
                <label fallback="19055">$INFO[VideoPlayer.Plot]</label>
                <align>justify</align>
                <autoscroll delay="5000" repeat="7500" time="5000"></autoscroll>
                <visible>String.IsEmpty(PVR.EpgEventIcon)</visible>
            </control>
            <control type="textbox">
                <left>240</left>
                <top>10</top>
                <right>240</right>
                <height>160</height>
                <label fallback="19055">$INFO[VideoPlayer.Plot]</label>
                <align>justify</align>
                <autoscroll delay="5000" repeat="7500" time="5000"></autoscroll>
                <visible>!String.IsEmpty(PVR.EpgEventIcon)</visible>
            </control>
            <control type="image">
                <right>20</right>
                <top>20</top>
                <width>200</width>
                <height>200</height>
                <aspectratio aligny="center">keep</aspectratio>
                <texture fallback="DefaultTVShows.png">$INFO[PVR.EpgEventIcon]</texture>
                <visible>!String.IsEmpty(PVR.EpgEventIcon)</visible>
            </control>
            <control type="label">
                <left>240</left>
                <top>180</top>
                <right>20</right>
                <height>25</height>
                <label>$VAR[OSDNextLabelVar]</label>
                <visible>VideoPlayer.HasEpg + !RDS.HasRadioText</visible>
            </control>
            <control type="label">
                <left>240</left>
                <top>180</top>
                <height>25</height>
                <label>[COLOR grey]$LOCALIZE[14304]: [/COLOR]$INFO[RDS.GetLine(0)]</label>
                <visible>RDS.HasRadioText</visible>
            </control>
        </control>

I'm presuming OSD and info panel for Movies, TV shows and Music all worked as expected?
Hello @Dumyat 

I have revised your "Includes_PVR.xml", now it works very well.
Genre is now displayed correctly if there is no RDS genre, EPG Genre is displayed.
If there is no RDS Artist, EPG Info is displayed ("$INFO[VideoPlayer.Plot]"), otherwise artist and title will be displayed.
I have acquired your icons from music playback at the PVR title display.
If you like it you can use it.

Here is the XML file: Includes_PVR.xml 

ImageImage

ImageImage
Pages: 1 2 3 4 5 6 7 8 9