Fanart Grabber - script for skinners

  Thread Rating:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #16
(2013-07-02 01:38)nessus Wrote:  First of all i wanna thank you again for all your efforts on creating this Addon. Now about the testing results...

The testing was done with the script running at startup and with the "FanArt" property only.

PHP Code:
<onload>RunScript(script.grab.fanart,mode=random,mediatype=movies,refresh=10)</onload

PHP Code:
<control type="multiimage">
 ..................
  <
imagepath background="true">$INFO[Window(Home).Property(script.grab.fanart.FanArt)]</imagepath>
 ..................
</
control

Movies
- Random fanart is working fine.
- Recent fanart it doesn't work and it shows random Movies fanarts.
Looking at XBMC log file says that the script found the correct number of items which matches the total number of movies in the library. The number is the same with both of "mode" parameters (recent/random).

TV Shows
- Random fanart is working fine.
- Recent fanart it doesn't work and it shows random TV SHows fanarts.
Looking at XBMC log file says that the script found the correct number of items which matches the total number of TV Shows in the library if the "mode" parameter is set to "random". When the "mode" parameter is set to "recent" the log says that the script found 1000 of items, while the total number of TV Shows in the library is 38. Note that 1000 is the maximum number that i have set in my Advancedsettings.xml file for the Recently Added items in Video lIbrary.

Music
- Random fanart is working fine.
- Recent fanart it doesn't work and it doesn't shows anything.
Looking at XBMC log file says that the script found the correct number of items which matches the total number of Artist in the library if the "mode" parameter is set to "random". When the "mode" parameter is set to "recent" the log says that the script found 0 items while there are 178 Artists in my Music library.


General
- The script it doesn't update depending on the "mediatype" until you restart XBMC. This behavior is the same even if you change the "mediatype" from Addon's settings.
- When the script is starts it fills the XBMC log with the title names of all fanarts the it finds. That means that if have e.g 1000+ movies in your library, at some point you will have 1000+ entry's in the log file.


Let me know if you need a full debug log.


Suggestions
- IMHO the addon doesn't need to have any settings. They will confuse users if the skinners they set the properties.
- I know that this addon has gone more far away and offers more than we ask for, but it will be nice if we could use the script more than one time with a different "mediatype" property in the same window. What i mean is run the script in some way which will give us the ability to use the window property's in some way like this...

Movies Fanart
PHP Code:
<control type="multiimage">
...................
  <
imagepath background="true">$INFO[Window(Home).Property(script.grab.fanart.MoviesFanArt)]</imagepath>
 ..................
</
control


TVShows Fanart
PHP Code:
<control type="multiimage">
 ..................
  <
imagepath background="true">$INFO[Window(Home).Property(script.grab.fanart.TVShowsFanArt)]</imagepath>
 ..................
</
control


Τhanks again for all your work.


Cheers
Nessus

Thanks for testing this further. I made some changes to fix what you were seeing, but please read my explanations below before testing again.

Recent VS Random:

I've fixed this to pull only 10 recent items as opposed to the tons it was pulling before. Please keep in mind though that this is still presenting a random item from within the "recent" items list. You will not see them sequentially as they were added. For TV Shows you'll get the fanart based on the RecentlyAddedEpisodes list. If you added a lot of the same show, there is a chance these will all be the same.

For the random mode it will pull in all the items of a given media type and display them randomly.

Logging:

All the logging you are seeing is not permanent, just meant to help in testing. I've flagged some of the more spammy entries with the "debug" flag so they only show up when debugging is enabled now.

Settings:

As a finished product I agree that it does not need user settings. For now though they are available as they make testing a lot easier!

Media Type:

I've removed the media type variable, it is no longer necessary. I've implemented the additional properties so at any time you can reference "Video, Movie, TV, or Music" and get a valid entry. See the README for the exact property names. Also, now that there are specific movie, tv, music settings we can include more specific properties if skinners would like them. I'm thinking Episode Names and things like that.

Quick note for anyone testing this. For the most "slideshow-like" experience the random mode using the Video.Fanart property is probably the best choice. This will display fanart for all scanned TV/Movies as a random slideshow.
find quote
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #17
Update on this.

I've been using this on my home install with a modded reFocus build. So far so good. There was an issue with a python line having the wrong indentation - causing threads to be created indefinitely and crashing xbmc. Simple matter to fix, just didn't notice it when rewriting functions. The most current version from github appears to be working great.
find quote
nessus Offline
Skilled Skinner
Posts: 831
Joined: Apr 2009
Reputation: 23
Post: #18
Thanks for the update Robweber. Unfortunately i didn't had the time to test it.
I will soon as i find some time and will report back.

Cheers
Nessus
find quote
MassIV Offline
Skilled Skinner
Posts: 1,029
Joined: Mar 2012
Reputation: 34
Post: #19
Looks good, I'd use it as dependency if you submitted.
Would you consider adding poster and plot?
find quote
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #20
(2013-07-15 22:33)MassIV Wrote:  Looks good, I'd use it as dependency if you submitted.
Would you consider adding poster and plot?

I will get this submitted to the xbmc.org repo very soon. I was hoping for a little more feedback from testers since just the limited tests on my setup probably aren't the best use case. I will admit though this addon has been working great for me the past few weeks.

I added a few more properties, including poster and plot, to the code. Please see the first post on this page, or the README file on github to see what they are.
find quote
Balinus Offline
Skilled Skinner
Posts: 1,121
Joined: Jul 2011
Reputation: 19
Location: Montréal
Post: #21
Interesting!

I'll add it to Simplicity as a dependence. No time for testing though. Might have some time in a couple of weeks, but I guess you'll have finished testing it.

Keep up the good work!
find quote
SpaceMonkey Offline
Posting Freak
Posts: 1,162
Joined: Aug 2008
Reputation: 24
Location: Finland
Post: #22
Nice idea for an add-on. A one problem though, script.grab.fanart.Music.FanArt returns fanarts for movies.
find quote
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #23
Would you mind posting a debug log? It will have some log information. I checked the code and this property is being set from the music array built directly from the json query that pulls the audio information.
find quote
SpaceMonkey Offline
Posting Freak
Posts: 1,162
Joined: Aug 2008
Reputation: 24
Location: Finland
Post: #24
Let me play around more first. I was using a multi-image control but a regular image control seems to be much better.
find quote
hsus Offline
Junior Member
Posts: 45
Joined: Oct 2013
Reputation: 0
Post: #25
Hi I'm not realy a skin developer but trying to contribute to one of my favorite skins, I've tried adding
Code:
        <onload>RunScript(script.grab.fanart,mode=random,refresh=10)</onload>
&
Code:
        <include>home_Slideshows</include>
to the home.xml and
Code:
<include name="home_Slideshows">
                        <control type="multiimage">
                        <visible>true</visible>
                          <imagepath background="true">$INFO[Window(Home).Property(script.grab.fanart.Video.FanArt)]</imagepath>
                        <timeperimage>5000</timeperimage>
                          <fadetime>500</fadetime>
                        <loop>yes</loop>
                          <aspectratio>center</aspectratio>        
                        <width>1280</width>
                          <height>720</height>
                        </control>
</include>
to the includes.xml but it just shows up as black, what am I missing here?
find quote
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #26
I think you're using the wrong type of image control. It should just be a regular image control. Here is the code I'm using in a custom version of the reFocus skin I like to use:

Code:
<control type="largeimage" id="1">
   <texture>$INFO[Window(Home).Property(script.grab.fanart.Video.FanArt)]</texture>
   <visible>true</visible>
   <include>home_Slideshow</include>
   <include>screen_Dimensions</include>
</control>

As the addon changes the fanart the property will update itself and the image will change.
find quote
hsus Offline
Junior Member
Posts: 45
Joined: Oct 2013
Reputation: 0
Post: #27
Dependencies not met for Gotham, issue with gotham or the add-on? (I do realize that gotham compatibility isn't to be expected though if it's easily fixable, thought I might as well ask)
find quote
robweber Offline
Posting Freak
Posts: 908
Joined: Sep 2009
Reputation: 27
Post: #28
Good catch. I think it is probably just the xbmc.python version. Right now it is set to 2.0.0 which is old, even for Frodo. Gotham needs 2.12.0 according to the version chart (http://wiki.xbmc.org/index.php?title=Add...y_versions). If you change this value in the addon.xml file I'm fairly certain it will start working.

Haven't started coding my addons for changes to Gotham yet but will probably start soon as the feature freeze data was Nov 10.
find quote
Martijn Offline
Team Kodi
Posts: 11,630
Joined: Jul 2011
Reputation: 168
Location: Dawn of time
Post: #29
(2013-11-11 16:19)robweber Wrote:  Good catch. I think it is probably just the xbmc.python version. Right now it is set to 2.0.0 which is old, even for Frodo. Gotham needs 2.12.0 according to the version chart (http://wiki.xbmc.org/index.php?title=Add...y_versions). If you change this value in the addon.xml file I'm fairly certain it will start working.

Haven't started coding my addons for changes to Gotham yet but will probably start soon as the feature freeze data was Nov 10.

2.12.0 is only if you rely on newer python API functions. other than that 2.1.0 should be fine for Frodo/Gotham

Always read the XBMC online-manual, FAQ and search the forums before posting.
Do NOT e-mail Team-XBMC members asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting, make sure you read this first

For your mediacenter artwork go to
[Image: fanarttv.png]
find quote
SpaceMonkey Offline
Posting Freak
Posts: 1,162
Joined: Aug 2008
Reputation: 24
Location: Finland
Post: #30
I'm giving the script another go but still having some problems.

System: OSX, 12.2, mysql

First of all, launch method: <onload>RunScript(script.grab.fanart,mode=random,refresh=9)</onload>

Image control:

Code:
<control type="image">
            <posx>0</posx>
            <posy>0</posy>
            <width>1280</width>
            <height>720</height>
            <aspectratio>scale</aspectratio>
            <fadetime>500</fadetime>
            <texture background="true">$VAR[HomeFanartPath]</texture>
            <visible>Container(9000).HasFocus(2) | Container(9000).HasFocus(10) | Container(9000).HasFocus(11) | Container(9000).HasFocus(3) | Container(9000).HasFocus(90)</visible>
        </control>

Variable:

Code:
<variable name="HomeFanartPath">
        <value condition="Container(9000).HasFocus(2)">$INFO[Window(Home).Property(script.grab.fanart.Video.FanArt)]</value>
        <value condition="Container(9000).HasFocus(10)">$INFO[Window(Home).Property(script.grab.fanart.Movie.FanArt)]</value>
        <value condition="Container(9000).HasFocus(11)">$INFO[Window(Home).Property(script.grab.fanart.TV.FanArt)]</value>
        <value condition="Container(9000).HasFocus(3) | Container(9000).HasFocus(90)">$INFO[Window(Home).Property(script.grab.fanart.Music.FanArt)]</value>
    </variable>

Problems:

- Music fanarts are not populated at all, from debug log: 17:50:30 T:2960388096 NOTICE: script.grab.fanart: found 0 music files. All the files are scanned to library and appear normally in library views. If i ran the sql query against the database artist information is being returned.

Code:
17:50:29 T:2960388096   DEBUG: GetArtistsByWhere query: SELECT artistview.* FROM artistview  WHERE (artistview.idArtist IN (SELECT album_artist.idArtist FROM album_artist WHERE album_artist.boolFeatured = 0)) and artistview.strArtist != ''

I even nuked the whole music database and started from stretch but it still won't work

- $INFO[Window(Home).Property(script.grab.fanart.Video.FanArt)] and $INFO[Window(Home).Property(script.grab.fanart.TV.FanArt)] always return the same fan art. I would like to have the video.fanart randomise between movie and tv show fan art and i believe that's how it's supposed to work.

- Would another fanart property be possible where it completely randomises the result, so the result could be either movie, tvshow or music fan art? This could be used as a global background in a skin.
find quote
Post Reply