Repository navigation
v2.4.0 — genres decided by hand, and bindings that find their item
Two changes: genres you decide by hand, and bindings by title that actually apply.
Upgrading is a pull.
Genres decided by hand
Any item can now have its genres (or collections) decided by hand, and nothing
automatic undoes the decision until you hand the item back. There are three
instructions, the same ones Kometa
uses for this job:
- Always write: added whatever the sources say, even when they have nothing for
the title. - Never write: kept off even when a source returns it, and taken off the item if
it is already there. - Set exactly: the sources are no longer asked, and the genres are exactly yours.
In a library that writes collections this is Stop asking: collections are never
cleared, so the names you add are written, the ones you refuse are taken off, and
the item's other collections stay.
In the console: Genres… on any item of a library, a By hand filter, and an
Overrides page (formerly Bindings) listing every pin and every decision. From the CLI:
plex-auto-genres manual Anime "Monster" --add Psychological --remove Kids --note "the sources lump it in"
plex-auto-genres manual Anime "Monster (2004)" --lock --add Psychological --add Thriller
plex-auto-genres manuals --library Anime
plex-auto-genres unmanual Anime "Monster"Worth knowing:
- A refused name does not use up one of the
maxGenresslots, and a name you add is
never cut by the cap. - A decision is part of what the cache remembers about the item. It applies on the
next run, even when it was saved while a run was going, and editing only its note
asks the sources nothing. - A name matches a tag with or without
PLEX_COLLECTION_PREFIX, so you can refuse a
tag the app wrote, one you made, or a star-rating collection alike. The
rating-collections pass honours refusals too. - Handing an item back asks the sources again from the next run. Where a library
merges rather than replaces (noclearGenres, and every collections library), the
names a decision added stay on the item like any other tag: refuse them first to
take them off. - The API is
GET/PUT/DELETE /api/v1/manual.
bind by title applies now
bind stored the typed title as the item's key, while items are looked up by the GUID
Plex gives them. So bind Lib 'Some Title' tmdb 123 said "bound" and was never
applied, and failures suggested exactly that command.
bind and unbind now find the item the way manual does. Give a title as Plex shows
it (add the year when two items share it), or the item's key as the console and
failures show it, such as mal://1234. A title no run has seen is refused rather
than stored and ignored.
- Pins no longer drop the item's cached result: they are part of its fingerprint. A
pin saved while a run is under way is no longer lost, and the item keeps its name in
the lists. failuresshows each item's key, suggests an id scheme the library can read, and
still lists when the config does not load.failures --retryand the console's
retry keep the rows they reset.
If you ever ran bind with a title before this version, that pin was probably
never applied. doctor now lists pins on keys no run has seen, and bindings marks
them. Remove one with unbind and that exact key, then bind the item again by title.
Upgrading
The database gains one table, for decisions, when it is first opened. The first run after
the upgrade re-resolves each item that has a pin, once, since pins are now part of its
cache fingerprint.