Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] ListItem.Property(base_xxx) seems not working anymore from TMDb Helper 5.4.8 #1281

Closed
4 tasks done
Nanomani opened this issue Nov 25, 2024 · 4 comments
Closed
4 tasks done
Labels
bug Something isn't working

Comments

@Nanomani
Copy link

Describe the bug

I use in "DialogContextMenu.xml" some code to show the local poster (or plot from Kodi db).

    <variable name="Image_Poster_Context_Menu">
        <value condition="!String.IsEmpty(Container(99950).ListItem.Property(base_poster))">$INFO[Container(99950).ListItem.Property(base_poster)]</value>
        <value condition="!String.IsEmpty(Container(99950).ListItem.Art(poster))">$INFO[Container(99950).ListItem.Art(poster)]</value>
        <value condition="!String.IsEmpty(Container(99950).ListItem.Art(tvshow.poster))">$INFO[Container(99950).ListItem.Art(tvshow.poster)]</value>
        <value>fallback/fallback.png</value>
    </variable>

So this has always worked without issue from now.
But from TMDb Helper 5.4.8 when I open "context menu" for a local movie I see the poster from TMDb online.

I have make some test with :

  • Kodi stable v21.1 windows x64
  • Kodi v22 nightly windows x64
  • thumbnail, TMDb database, texture.db deleted

The behaviour is always the same.
(of course "Get additional details from the local Kodi Library database" is enable in TMDb Helper settings)

I have make a test with your skin AH2 what use methode container in "DialogContextMenu.xml"
The behaviour is the same too.

I don't know if all this is normal?
I may have missed something...

Steps To Reproduce

what is expected :

  1. Use skin AH2
  2. insall TMDB Helper 5.2.25 from Kodi repo
  3. Set a custom poster for a local movie A stored in Kodi db
  4. Open context menu for the movie A
  5. The poster show must be the "custom" poster

behaviour with lastest TMDb Helper Addon

  1. then install the latest TMDB Helper 5.4.29
  2. restart Kodi
  3. Select movie A from widgets or views layout
  4. Open context menu for the movie A
  5. The poster show is come from TMDb online

Debug log

https://paste.kodi.tv/ohudokikey.kodi

Screenshots and Additional Info

From Movie A :

01

Context menu with TMDb Helper 5.2.25 :

2024-11-25_190824

Context menu with TMDb Helper 5.4.9 :

2024-11-25_191055

Checklist

  • I have searched the issues and this bug has not been reported.
  • I have updated TMDbHelper to the most recent version.
  • I have described the bug and included steps to reproduce the issue
  • I have uploaded my debug log.
@Nanomani Nanomani added the bug Something isn't working label Nov 25, 2024
@jurialmunkey
Copy link
Owner

How this is handled has now changed and is defined skin side as to which properties are required.

See af2 for an example of how it is implemented
https://github.com/jurialmunkey/skin.arctic.fuse.2/blob/omega/extras/tmdbhelper/baseitem.json

@Nanomani
Copy link
Author

Nanomani commented Nov 26, 2024

Thanks for your quick answers.
I'd never have found the solution myself.

Whaow it is a big move :)
From my very quick test it is works well like that.

If I all understand "Service Monitor" must be always disable.
Container method can't be use anymore.

I would to know if this new way is definitively or it is a tempory workaround because there is some bug with Kodi.

In other way I would to know if I must change all necessary code in my skin right now (no problem with that ) or if I must be just patient and wait that bug with Kodi was fixed.

I hope to be understable. google translate isn't always magic :)
Anyway like always thanks a lot for your time.

PS : this post can be closed

@jurialmunkey
Copy link
Owner

I'd never have found the solution myself.

It's not documented yet because I only just added it

Whaow it is a big move :)

It should give a lot more control because it lets you define which properties you need from the base item and what fallbacks to use.

If I all understand "Service Monitor" must be always disable.

No, there is no need to disable the service monitor. It needs to be enabled to use the base item properties. The base item properties are in addition to the properties the service retrieves from TMDb API.

Container method can't be use anymore.

It can still be used.

The problem with the container method has always existed since its introduction.

It is because the underlying Kodi interface it uses is slightly unstable and can occassionally cause a crash, especially when using ReloadSkin()

The only reason I switched to window properties for AF2 is because I decided that I preferred the stability more. However, if you find the container method is stable enough for you, then you can continue to use it.

@Nanomani
Copy link
Author

Nanomani commented Nov 26, 2024

It's not documented yet because I only just added it

No problem I don't blame you. Like you said all of this is new :)

It should give a lot more control because it lets you define which properties you need from the base item and what fallbacks to use.

more control is always welcome :)

No, there is no need to disable the service monitor. It needs to be enabled to use the base item properties. The base item properties are in addition to the properties the service retrieves from TMDb API.
It can still be used.

Thanks for your explaind very clear

The problem with the container method has always existed since its introduction.
It is because the underlying Kodi interface it uses is slightly unstable and can occassionally cause a crash, especially when using ReloadSkin()

I understand some of the behavior or crash better now.

The only reason I switched to window properties for AF2 is because I decided that I preferred the stability more.

More stability is always welcome

However, if you find the container method is stable enough for you, then you can continue to use it.

Not really. Specialy from some week with Libreeelec and Android.
Perhaps this will better with Python 3.13.x :
LibreELEC/LibreELEC.tv#9374

With Windows is less dramatic but Indeed there some crash when using ReloadSkin().
So my choice is clearly already done :)

So after migrate the code for an old skin from Embuary.Helper and Embuary.Info, etc.. to TMDb Helper, script.skinvariables, script.texturemaker, this new approach shouldn't be too difficult to adapt from I have seen here :

jurialmunkey/skin.arctic.fuse.2@b044f84

Thanks you so much

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants