MikeSiLVO / skin.aeon.nox.silvo

A skin for Kodi
Other
123 stars 93 forks source link

[issue] not selectable poster without image shown as first item in last added movies widget #174

Closed chpasha closed 1 year ago

chpasha commented 1 year ago

Hello, I see a poster without image that cannot be selected, shown as first item in recently added movies widget. I have kodi 20.1.0 with Aeon Nox Silvo Skin (9.0.0). I understand that the issue can be specific to my library, but maybe you could make a guess, what causing it. Or is it a feature and not a bug?

IMG_20230404_142451

MikeSiLVO commented 1 year ago

Why is everything blacked out?

There isn't enough information provided to even hazard a guess 🤷‍♂️

chpasha commented 1 year ago

Which information do you need? Kodi.log? I've just cut the top part of the screen with the top panel and widget and "anonymized" a couple of posters to the right of the first position - I hoped, you can make guess how is it possible that there is a non-selectable poster at first position, the screenshot just proves that it is there

MikeSiLVO commented 1 year ago

A log might help but also a copy of your script-skinshortcuts-includes.xml file.

chpasha commented 1 year ago

Here you go. I actually checked the behaviour in Estuary - it has no issue of that kind. I also noticed, that directly after boot "in progress tv shows" shows the same no image poster, but then it is replaced with actual poster, so it looks like some placeholder until real images are loaded aeon.zip

MikeSiLVO commented 1 year ago

That image is only supposed to be seen when a widget is empty. Its based on whether the item has a label or not. Something seems off tho since the image in the skin does not have a transparent background but the pic you provided does.

Hard to know anything further without a full clear screenshot with nothing blocked out and a debug log. You provided just a regular log, not a debug.

chpasha commented 1 year ago

I think I found (perhaps a not very reliable) way to reproduce the issue. I've forgotten to mention, that I use mysql database for library. Today I went into Videos -> Movies -> Recently added and noticed, that some movies have no title (they appear as empty lines in List view but with poster and plot). After setting a couple of titles manually (not for all, just couple of them) the non-selectable poster has gone. So I went into database and set the title to null (column c00 in table movies) for a couple of most recently added (those that appear first from left to right in panel) and the non-selectable poster was there again. So you can try to reproduce the issue by setting movie titles to null - I don't know though why it is null for movies, that were successfully added into library including posters and plot (maybe it is a bug of the scraper)

P. S. column c16 of the movie table does contain correct titles, so maybe it is an expected behaviour for c00 to be empty - I don't know which fields in terms of kodi those columns correspond to, but it is probably not hard to find out. Is it possible, that you use a wrong title field or at least don't use the fallback field if the main is empty? Because if Estuary is not affected, they might be using the fields in a more clever way

MikeSiLVO commented 1 year ago

Its based on whether the item has a label or not.

Of course setting all the labels to empty would make it appear. That's literally how it works.

Estuary comparison isn't valid here since they do not display widgets the same way. Estuary has no need for an empty widget item in order to navigate to a second widget that is not empty when using a remote.

All items should have a label when added to the library. That's why I chose ListItem(1).Label being empty as the visible for the NotAvaible.png. Everything should have a label. It is the name of the movie, tv show, season, or episode.

chpasha commented 1 year ago

Of course setting all the labels to empty would make it appear. That's literally how it works.

I have a feeling, that we are talking past each other :-) - that non-selectable poster appears as an extra item at first position and looks like an unexpected side effect to me. Why setting a couple of titles to empty would cause an extra item to appear in the widget panel? Those movies without titles are shown correctly with posters (I have labels disabled regardless if present or not). Speaking about "empty labels" - the column "c00" that is sometimes empty, is according to the wiki "Local Movie Title", column c16 - "Original Movie Title" and that column is never empty, so your condition looks not quite correct to me - it should be smth. like "localTitle or originalTitle" (sorry I don't know how those fields are named in kodi api, their wiki is down right now :-( )

MikeSiLVO commented 1 year ago

We are talking past each other cause you do not seem to understand what I am telling you.

For starters quite a few of your assumptions are incorrect. c00 should not be empty so that is an issue on your end. c16 original title is for when a movie has a different name in other countries. An example is Drunken Master from 1978 its Original Title is Zui quan, that is what that database entry is for.

I am using a visible condition based on something every item in your library should have. ListItem.OriginalTitle is for movies only so if I use that then all Widgets containing TV Shows, Seasons, Episodes, Artists, Music Videos, etc... Will now display NotAvailble.png!

You don't actually expect me to change how things function based on your unique MySQL setup, which appears to not be configured correctly, do you?

chpasha commented 1 year ago

You don't actually expect me to change how things function

Aeon Nox Slivo 7.0.9 on Kodi 18 works just fine with the same "MySQL setup", so it looks like a regression to me even if I have a "unique setup". And speaking of unique - you don't think I modify my mysql database manually, do you? So if those columns are empty, it can happen to anybody else anytime. What is the reason to show the empty poster that doesn't correspond to any title and just sits there?

MikeSiLVO commented 1 year ago

you don't think I modify my mysql database manually, do you?

So I went into database and set the title to null (column c00 in table movies) for a couple of most recently added (those that appear first from left to right in panel) and the non-selectable poster was there again.

😕 ❓

I feel like we are going in circles here so lets try this: Switch to Estuary skin --> Open your movie Library --> Make sure List view is selected in the sidemenu --> Send me a screenshot.

If it looks like the image below then I will reopen this issue.

img

If it looks like this though... You need to fix your database issues.

img

chpasha commented 1 year ago

"most recently added" by scrapper. After figuring out, that missing titles cause that poster to appear, I indeed went into database, set a couple of titles to null to reproduce the issue.

If it looks like this though... You need to fix your database issues.

yes, a couple of items in the list appear empty, but why this causes an extra "empty" poster on the home screen? Perhaps I missed or didn't get that part with technical explanation, why an empty non-selectable poster is needed in first position if there are movies, that have no title, but shown just fine in the same widget panel and why we could live without it in previous versions of the skin (perhaps something has changed in Kodi API after that, so that you had to adjust to it somehow). I will make a couple of clear screenshots with explanations

MikeSiLVO commented 1 year ago

Estuary has no need for an empty widget item in order to navigate to a second widget that is not empty when using a remote.

I actually explained the reason for it above. If you cannot display the default List view with proper labels then obviously something is wrong with your setup. It is the default view for every library item, by logical conclusion, your database is not correctly setup.

chpasha commented 1 year ago

If you cannot display the default List view with proper labels

sorry, maybe I'm too stupid to understand - ListView shows list of text items, perhaps with images, but still text items, right? You need labels for that, I can understand that. But Poster Panel is a horizontal view of images, why it requires labels? I know it can show them, but they are optional and disabled by default. So you say, if some titles are missing, you intentionally show that "Not available" poster to indicate a problem? Look at my screenshots, I still have hope that we just talking about different things. I've added a couple of titles (with scrapper) screenshot00002

then I set titles for only two of them to null (marked red on my screen) - "Not available" Poster has appeared on the left side of the panel

screenshot00000

here is a ListView that corresponds to the widget panel and has same order of items screenshot00001

MikeSiLVO commented 1 year ago

Ok, lets break this down.

You ask why... I say for navigation issues when a widget is empty.

In more detail: If you have two widgets and the menu is in Low position you need to go through the 1st widget to get to the second widget. If the widget happens to be empty, for whatever reason, you cannot navigate to the second widget.

I use a visible condition checking to see if the second item has a LABEL, something every single item should have. It has nothing to do with an image, it is simply because a label for an item is supposed to be universal so it is a very simple way to add something without a ridiculously long visible condition accounting for every widget type.

If something as basic as the name of an item isn't correct in a database that is a good sign something is amiss and not a reason to change something.

chpasha commented 1 year ago

Ok, now I understand why are you doing that :-) . Is there nothing else, that is truly non-nullable, like Filename or Path? Kind of strange, that there is no more elegant way to check list for emptiness. And what if it is empty, what would ListItem(1) do - fail silently?

MikeSiLVO commented 1 year ago

Filename won't work for a TV Show. Whats the filename of a TV Show? ListItem.Path returns the path of a song or movie.

You are welcome to peruse the Kodi Documentation for a better boolean.

The wiki is down but doxygen is more updated anyway. Kodi Doxygen

chpasha commented 1 year ago

You are welcome to peruse the Kodi Documentation for a better boolean.

what about DBID, DateAdded or Duration? Or maybe a combination of two fields, at least one of which would be present in any library item? Just curious, I understand that it is naive to believe, I can find something better at once. I know how to workaround the problem, but I believe it could happen again, since both movies, that were missing the title, were non-us made onces - it cannot be a coincidence, I'm afraid they will miss it again, if I rescan. I wonder what the scrapper devs will say :-)