jellyfin / jellyfin-plugin-tmdbboxsets

https://jellyfin.org
MIT License
85 stars 20 forks source link

Collections with ampersand in name broken #73

Open hugalafutro opened 2 years ago

hugalafutro commented 2 years ago

Not sure where this started it has been some time since I watched a collection of movies, went to Collections screen just now and any collection with & in name gets duplicated into a Collection for each movie containg all movies and renamed witch increasingly excessive amount of ampersands in html format such as Cheech & Chong Collection

Jellyfin: 10.8.4 Boxset Plugin: 10.0.0.0

This must've been a recent change though as all of the affected items are at the top when I sort by date added.

Cheech & Chong collection: image

Collections screen sorted by date added: image

Any suggestion how to fix if possible on my end welcome, thanks!

bhaveman commented 2 years ago

While it's not creating the actual collection name like that for me, it's currently throwing the amp; loop in the jellyfin logs and the scan fails to continue.
I removed Bill & Ted to test, and it reached Lilo & Stitch and stopped. Jellyfin 10.8.5, Box set plugin 10.0.0.0 Log entry: Jellyfin.Plugin.TMDbBoxSets.TMDbBoxSetManager: Not all the Tmdb Collection Names are the same for the box set (using the first one): "Leroy & Stitch - Lilo & Stitch Collection, Lilo & Stitch 2: Stitch Has a Glitch - Lilo & Stitch Collection, Lilo & Stitch - Lilo & Stitch Collection, Stitch! The Movie - Lilo & Stitch Collection" [2022-10-28 19:52:52.159 +01:00] [INF] [34] Jellyfin.Plugin.TMDbBoxSets.TMDbBoxSetManager: Box Set for "Lilo & Stitch Collection" ("97461") does not exist. Creating it now! [2022-10-28 19:52:52.172 +01:00] [ERR] [34] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: "The path '/config/data/data/collections/Lilo & Stitch Collection [boxset]' is too long, or a component of the specified path is too long". URL "POST" "/TMDbBoxSets/Refresh".

hugalafutro commented 2 years ago

For me the scan finishes, but I don't get that many that it would throw the path is too long error...yet. The underlying filesystem for the storage is ext4 so ampersand can be part of the name, not so in for example windows I think:

sammael@vm-docker:~/docker/vpn-stack/library_jellyfin$ ls data/data/collections/ | grep '&'
Bill & Ted's Most Excellent Collection [boxset]
Cheech & Chong Collection [boxset]
Cheech & Chong Collection [boxset]
Cheech & Chong Collection [boxset]
Cheech & Chong Collection [boxset]
Cheech & Chong Collection [boxset]
Lilo & Stitch Collection [boxset]
Lilo & Stitch Collection [boxset]
Lilo & Stitch Collection [boxset]
Philo & Clyde Collection [boxset]
Philo & Clyde Collection [boxset]
Philo & Clyde Collection [boxset]
Robot Jox & Wars Collection [boxset]

Seems one new is created with increased ampersand by some trigger, also why are some of them OK I have no idea

bhaveman commented 2 years ago

I believe there was a time when windows couldn't handle an ampersand, though it does now.

For reference, I'm running linux, but the filesystem is ntfs.

Edit - I'm trying to think what might be causing my loop at a much higher rate like that. I don't think any "&" collections successfully created like your Bill & Ted.
The only think I can think is that I ran it once where it was at least mostly successful, including creating Bill & Ted, and then I uninstalled the plugin. This attempt is upon installing the plugin again, but it was unable to pass Bill & Ted even though it already existed.

Edit 2 - perhaps it has something to do with issue 72.

hugalafutro commented 2 years ago

So, here's an interesting one: image Why, only this single one has proper title, yet the directory is still messed up?

Also, you were right about the windows, I haven't even realized.

edit: I tried deleting all of them, restarting the container, scanning. I get the Jellyfin.Plugin.TMDbBoxSets.Api.TMDbBoxSetsController: Completed refresh of TMDb collections, but interestingly and funnily enough the only collection that is detected is the one above, which now has about twice the amount of ampersands and is messed up in Title too Robot Jox & Wars Collection

edit2: the next morning the other collections are back too with varying amounts of ampersands. I'm thinking just manually edit the collection, correct the title and lock the item as a workaround?

TheMelmacian commented 1 year ago

I have the same problem with on of my collections. Looks like the & is escaped as & which results in A & B. The next time the & is replaced again and so the title/folder is renamed to "A & B". And so it goes on and on.

I will look in the code as soon as I find a little bit of time.

TheMelmacian commented 10 months ago

Finally found some time: The plugin doesn't load the boxset names itself but extracts them from the metadata of a movie. And the creation of collections is handled by the server code. As far as I can tell, the plugin maybe triggers the problem but the bug is not in the plugin code.

I will create a new issue on the jellyfin server repo for this bug.