jorenn92 / maintainerr Goto Github PK
View Code? Open in Web Editor NEWLooks and smells like Overseerr, does the opposite. Maintenance tool for the Plex ecosystem
Home Page: https://maintainerr.info
License: MIT License
Looks and smells like Overseerr, does the opposite. Maintenance tool for the Plex ecosystem
Home Page: https://maintainerr.info
License: MIT License
Describe the bug
Media images are no longer shown on the overview screen
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Each media item contains a background image
Device (please complete the following information):
Hello, I would like to create a rule that automatically deletes episodes after being seen in plex.
Is that possible ?
Describe the bug
Communication with Radarr fails. Probably due to a dependency update since it still works in the last release.
The app won't handle media when the communication with a configured app fails.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Communication still works
Device (please complete the following information):
Is your feature request related to a problem? Please describe.
I've got an issue where I have things flagged as requested in Overseerr but the items aren't in my Sonarr library because the files didn't exist and my database got deleted. I'd like to be able to either delete those requests in Overseerr or re-push them to Sonarr and was hoping this could do that.
Describe the solution you'd like
Maybe another rule setting for things being requested in overseerr, or a rule action of either being able to clear the thing in overseerr or re-add it and monitor it in sonarr
Describe alternatives you've considered
the people running overseerr told me to figure out how to craft a script to use the api to do this but there;s no way i;m the only one who needs this feature
Additional context
Add any other context or screenshots about the feature request here.
As discussed in : #452
Add statistics to collection media with information on why it matches all the rules.
Discord feedback from user Dekai:
When inside a collection, the search bar should only search the collection and provide results in the respective collection. bit hard to check for something specific currently as i also cant tell what its sorted in
Currently, shows are only handled as a whole and rules are evaluated against all current episodes.
Alter this behavior so there's more control over individual episodes & seasons.
This was requested in #450 but deserves it's own issue.
For instance:
Describe the bug
The header menu bar is smaller than before.
Probably due to a dependency update.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The header menu is bigger and more readable
Device (please complete the following information):
Posted on wrong account, please delete.
Describe the bug
When creating a rule to see if Plex - Viewed by
contains Radarr - Tags
where there are more than one tag other than the username, no results are returned.
To Reproduce
Steps to reproduce the behavior:
Movies
as the library to run the rules againstRule #1
as follows
Expected behavior
When running a contains action against Radarr - Tags
and Plex - Viewed by
, against media with more than just a username tag included, the media should be returned as a result regardless of other possible tags being included (i.e., movies
, genre
, monitored
, language
, etc.).
With multiple tags other than the username
Device (please complete the following information):
Additional context
This does not appear to be affecting Sonarr results with the rule set below
When the Plex collection is out of sync with the Maintainerr record, adding media to the collection will fail.
For instance: When Maintainerr believes the collection doesn’t exist in Plex yet and creates it, it will fail when Plex already has a collection with the same name.
There already was an attempt at fixing this issue. That fix worked for most cases. But not all.
Is your feature request related to a problem? Please describe.
Don't want to remove media that is part of existing collection, regardless of watch status.
Describe the solution you'd like
A rule to mass exclude existing collections.
Describe the bug
Collection background images are not correctly shown. They are stacked.
Expected behavior
Background images are shown next to each other
Describe the bug
When creating a rule which has a value that pulls information from Sonarr. That interaction with Sonarr returns an error for some shows.
This is seen in the logs as
[Nest] 124 - WARN [SonarrApi] Error retrieving show by tvdb ID
[Nest] 124 - WARN [SonarrApi] Object:
{
"label": "Sonarr",
"errorMessage": "Request failed with status code 400",
"tvdbId": null
}
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The error is somewhat obvious, "Error retrieving show" but it doesn't identify which show it is. This prevents an accurate running of the rule.
Device (please complete the following information):
As this rule is run, Maintainerr returns 66 shows, but there are 82 shows that have this tag. "local"
Currently, the Maintainerr service runs as 'root' inside the container.
This is not a best practice. Use a dedicated user (or the Node user) inside the application.
Is your feature request related to a problem? Please describe.
When using the Season or Episode filter-type it will be handy to have some filter fields to make sure Maintainerr doesn't delete the whole season while some episode are still unaired.
When you have for example:
Plex - Users that saw all available episodes contains Mark, and you have set to delete after 5 days.
When there are 3 episodes available for a season of 10 episodes because the rest is still unaired, and you watch those 3 episodes.
Maintainerr will delete the whole after 5 days. If a new episode is released within the 5 days it will not delete, but when the next episode is released within 7 days, it will be deleted by Maintainerr before that date.
Describe the solution you'd like
Add some filter fields like:
Sonarr - Total amount of episodes for this season
Plex - Amount of available episodes for this season
Sonarr - Episode-Number of last episode of this season
Plex - Episode-Number of last seen episode
This way you can make sure that when only dealing with whole seasons you can make the rule:
Plex - Amount of available episodes for this season == Sonarr - Total amount of episodes for this season
Or when dealing with partial seasons (example: S01E03 till S01E10 is available on Plex where E10 is the last):
Plex - Episode-Number of last seen episode == Sonarr - Episode-Number of last episode of this season
Describe the bug
When creating a collection it crashes
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Be able to run rules an not crash
/opt/server/dist/modules/rules/rule-executor.service.js:114
let collection = await this.collectionService.getCollection(rulegroup.collectionId);
^
TypeError: Cannot read properties of undefined (reading 'collectionId')
at RuleExecutorService.handleCollection (/opt/server/dist/modules/rules/rule-executor.service.js:114:79)
at RuleExecutorService.executeAllRules (/opt/server/dist/modules/rules/rule-executor.service.js:88:32)
Node.js v18.13.0
Failed to proxy http://localhost:3001/api/collections/media?collectionId=7 Error: connect ECONNREFUSED 127.0.0.1:3001
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1487:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3001
}
Additional context
Running a rule against a very large library
Describe the bug
If a rule is remove while a collection job is running it will continue to try to add the media item to plex collection even though it was removed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Be able to remove rules and not have it continue to try to add the media item to a collection that was already deleted.
[Nest] 63 - 02/09/2023, 5:03:11 PM LOG [CollectionsService] Adding media with id 41026 to collection..
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [PlexApiService] Removed collection from Plex
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [CollectionsService] Removing collection from Database..
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [CollectionsService] Adding media with id 285754 to collection..
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [RulesService] Removed rulegroup with id 7 from the database
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [CollectionsService] Couldn't add media to collection: Error: Plex Server didnt respond with a valid 2xx status code, response code: 404
[Nest] 63 - 02/09/2023, 5:03:12 PM LOG [CollectionsService] Adding media with id 25276 to collection..
Describe the bug
Media not found when Overseerr - Requested by user (username) is used rules alongside custom values. This is the case when using all Actions.
To Reproduce
Steps to reproduce the behavior:
In
Expected behavior
Requests from that user are either included or excluded based on the chosen action.
Device (please complete the following information):
Would it be possible to have a dry run option, so we can see what affect the rule will have? What media it will delete and maybe the raw stats to prove it's correct
Is your feature request related to a problem? Please describe.
Rules currently include number of times played, however if media is added, then manually marked as played, it does not have a play count.
Describe the solution you'd like
Add a rule which allows rules based on whether media is marked as watched or not, not just based on number of plays.
Is your feature request related to a problem? Please describe.
The options for Sonarr Actions on a TV library only include deleting.
Describe the solution you'd like
I would like to see the ability to just unmonitor without deleting anything.
This may be worth a separate issue, but I think rules for unmonitoring based on:
some of that may already be doable, but i don't see episode air date as an option to unmonitor individual episodes in the rules available for sonarr.
Describe alternatives you've considered
I haven't really considered an alternative
Additional context
Part of the reason I want to unmonitor instead of delete is i'd like to setup two separate rules. one to unmonitor after X period (and watch status and request status and all that fun stuff from the example rules) and another to delete after a much longer period.
Describe the bug
I have my server name, host IP & port correctly filled in. I have authenticated my server with an admin account. I then click "Save Changes". But when I click "Test Saved" I get an error saying "Connection failed! Please check and save your settings". I am able to connect to all my other services (Overseerr, Radarr & Sonarr) just not Plex.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Maintainerr is able to connect to my Plex server
Device:
I'd like to be able to manually delete an item right from the main Maintainerr menu. Obviously there should be a confirmation dialogue when deleting, but it would be awesome to be able to just delete (and unmonitor and whatnot) on command instead of having to only rely on rules.
Is your feature request related to a problem? Please describe.
It's not a problem, just a nice feature to have for those who use multiple instances of the Starr apps.
Describe the solution you'd like
The ability to add multiple Starr app instances within a single Maintainerr instance.
While managing two instances of Radarr/Sonarr would likely be sufficient, the ability to choose how many instances you have would be an added bonus. Especially for those who split their instances across HD, UHD and Anime in some cases.
Describe alternatives you've considered
Running Maintainerr in two or more separate containers, each specific to a different instance of the starr apps.
Additional context
There are a good amount of people who use multiple instances of the Starr apps to better manage custom formats/qualities and media types (e.g., Anime, HD, UHD). Having the ability to manage all available instances from within a single Maintainerr instance would make the process of managing everything a lot easier instead of jumping between two different instances, sometimes causing confusion and additional work maintaining and updating Maintainerr.
I'd love to be able to see more data about the files in the overview screen, or perhaps if you click on a title it can make a popup or its own page to list more details about that item. It would also be cool to be able to filter things on the Overview screen instead of having to make rules and move stuff into collections to be able to filter them.
The data I'd like to see is mostly simple stuff like, times viewed, last viewed, never viewed, days since requested, date added, file size, and other basic data about the media. Some filters, combined with a manual delete and a multiselect I think it could make the overview page a pretty nice dashboard for quickly editing your media. I know maintainerr is all about automation, and I think that's great, but sometimes you just want to look at the collection in different ways and manually prune it. Some basic tools for doing that would be great (especially since Maintainerr can also notify Plex and the other arr stacks of the deletion and not have it just redownload)
Hi,
Is it possible to add to the rules already existing collections?
For example I created a Collection using Plex Meta Manager which holds the Titles which I want to remove .
The thing I created this with PMM is that PMM allows me to do fine grained conditions on which media I want to include in this Collection.
So having another Program which creates Collections seems like a overkill.
TLDR: Best practice would be an optional Field for Already Existing Collections to use instead of creating one.
Is your feature request related to a problem? Please describe.
Not really, just use homepage as my dashboard and would be nice to load the image from here.
Describe the solution you'd like
Upload the image
Describe alternatives you've considered
none
Additional context
none
Describe the bug
I have a rule that should be adding a lot of movies for deletion, but after running the movies, nothing gets added to the collection for deletion.
To Reproduce
Plex: Times Viewed
-> EQUALS
-> NUMBER
-> 0
Expected behavior
A collection be created with many movies.
Screenshots
Device (please complete the following information):
latest
Originally posted by Daneng66 March 4, 2023
Hi I think it would be really useful to have a glossary for the difference values you can choose for a rule. I am finding it a little confusing to understand exactly what a rule will do. Also more community rules would be great.
When an API call fails (because of a time-out) Maintainerr fails/stops during execution.
This could potentially happen during all kind of tasks.
Implement a retry mechanism for Plex, *Arr, Overseerr,.. API calls to mitigate (or at least reduce) this issue.
Describe the bug
When I execute the jobs, most of them go right. But there is a job which generates an error which causes the UI to throw this into the console:
To Reproduce
Steps to reproduce the behavior:
I think the steps can be reproduced by creating the following rule:
(irregular is set by a script of mine, which will tag a sonarr release if it's irregular e.g., season 1 4 5.
Expected behavior
Rule execution.
Error when jobs are executed
19/10/2023
10:11:13
/opt/server/dist/modules/rules/rule-executor.service.js:306
19/10/2023
10:11:13
? val2.map((el) => el.toLowerCase())
19/10/2023
10:11:13
^
19/10/2023
10:11:13
19/10/2023
10:11:13
TypeError: Cannot read properties of undefined (reading 'toLowerCase')
19/10/2023
10:11:13
at /opt/server/dist/modules/rules/rule-executor.service.js:306:39
19/10/2023
10:11:13
at Array.map (<anonymous>)
19/10/2023
10:11:13
at RuleExecutorService.doRuleAction (/opt/server/dist/modules/rules/rule-executor.service.js:306:24)
19/10/2023
10:11:13
at RuleExecutorService.executeRule (/opt/server/dist/modules/rules/rule-executor.service.js:289:31)
19/10/2023
10:11:13
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
19/10/2023
10:11:13
at async RuleExecutorService.executeAllRules (/opt/server/dist/modules/rules/rule-executor.service.js:80:37)
19/10/2023
10:11:13
19/10/2023
10:11:13
Node.js v18.18.0
19/10/2023
10:11:13
error Command failed with exit code 1.
19/10/2023
10:11:13
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
19/10/2023
10:11:30
Failed to proxy http://localhost:3001/api/collections Error: connect ECONNREFUSED 127.0.0.1:3001
19/10/2023
10:11:30
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) {
19/10/2023
10:11:30
errno: -111,
19/10/2023
10:11:30
code: 'ECONNREFUSED',
19/10/2023
10:11:30
syscall: 'connect',
19/10/2023
10:11:30
address: '127.0.0.1',
19/10/2023
10:11:30
port: 3001
19/10/2023
10:11:30
}
Failed to proxy http://localhost:3001/api/settings Error: connect ECONNREFUSED 127.0.0.1:3001
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3001
}
Error: connect ECONNREFUSED 127.0.0.1:3001
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1555:16) {
errno: -111,
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 3001
}
Job in question:
Device (please complete the following information):
This is a follow up after #457.
It’s not currently possible to exclude & manually add seasons & episodes through the UI.
extend the Overview page to also make this accessible.
Update the build processes to use Node 18, this is a requirement for semantic-release 20.
Also update the Jenkins build container.
Is your feature request related to a problem? Please describe.
When you choose to delete movie from Radarr or series from Sonarr and you have setup some lists to auto-import, the movie or series will get downloaded and imported back again rights away after Maintainerr deleted it.
Describe the solution you'd like
When choosing delete as option instead of unmonitor, let a checkbox option appear like this:
The API for both Radarr and Sonarr already support this.
Describe the bug
Trying to set this up so it sits behind Traefik. When I hit the domain I see what looks to be a default landing page but not seeing any links or drop down for settings.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Open app first time and see a settings page.
Device (please complete the following information):
Additional context
Add any other context about the problem here.
Describe the bug
I have just got the docker up and running but I am unable to make any changes to settings
To Reproduce
version: "3"
services:
maintainerr:
restart: unless-stopped
container_name: maintainerr
image: jorenn92/maintainerr:latest
hostname: maintainerr
user: "1000:1001"
environment:
- TZ=Etc/UTC
- PUID=1000
- PGID=1001
networks:
- saltbox
labels:
com.github.saltbox.saltbox_managed: true
traefik.enable: true
traefik.http.routers.maintainerr-http.entrypoints: web
traefik.http.routers.maintainerr-http.middlewares: globalHeaders@file,authelia@docker,redirect-to-https,gzip
traefik.http.routers.maintainerr-http.rule: Host(`maintainerr.domain.com`)
traefik.http.routers.maintainerr-http.service: maintainerr
traefik.http.routers.maintainerr.entrypoints: websecure
traefik.http.routers.maintainerr.middlewares: globalHeaders@file,secureHeaders@file,authelia@docker
traefik.http.routers.maintainerr.rule: Host(`maintainerr.domain.com`)
traefik.http.routers.maintainerr.service: maintainerr
traefik.http.routers.maintainerr.tls.certresolver: cfdns
traefik.http.routers.maintainerr.tls.options: securetls@file
traefik.http.services.maintainerr.loadbalancer.server.port: 80
volumes:
- /opt/maintainerr:/opt/data
networks:
saltbox:
external: true
I use that as my compose file. I bring it up and I am able to access the container webgui but I am unable to make any changes to settings
I see these errors:
[Nest] 100 - 09/09/2023, 2:48:15 PM ERROR [TasksService] An error occurred while creating the CollectionHandler task
[Nest] 100 - 09/09/2023, 2:48:15 PM DEBUG [TasksService] TypeError: Cannot read properties of undefined (reading 'onTick')
[Nest] 100 - 09/09/2023, 2:48:15 PM LOG [CollectionWorkerService] Creation of job CollectionHandler failed. Retrying in 10s..
[Nest] 100 - 09/09/2023, 2:48:15 PM ERROR [TasksService] An error occurred while creating the RuleHandler task
[Nest] 100 - 09/09/2023, 2:48:15 PM DEBUG [TasksService] TypeError: Cannot read properties of undefined (reading 'onTick')
[Nest] 100 - 09/09/2023, 2:48:15 PM LOG [RuleExecutorService] Creation of job RuleHandler failed. Retrying in 10s..
[Nest] 100 - 09/09/2023, 2:48:15 PM LOG [NestApplication] Nest application successfully started +0ms
[Nest] 100 - 09/09/2023, 2:48:25 PM LOG [TasksService] Task CollectionHandler created successfully
[Nest] 100 - 09/09/2023, 2:48:25 PM LOG [TasksService] Task RuleHandler created successfully
[Nest] 100 - 09/09/2023, 2:48:45 PM WARN [PlexApiService] Plex api communication failure.. Is the application running?
[Nest] 100 - 09/09/2023, 2:49:23 PM ERROR [SettingsService] Something went wrong while updating settings
Expected behavior
I expect to be able to change settings and save
Screenshots
when i hit test it fails even though i know its right and i tested connectivity by pinging from a ash session
and when i hit save it says not all fields filled in which you can clearly see is not the case.
Device (please complete the following information):
Additional context
im using it on a saltbox configured system see https://github.com/saltyorg/Saltbox
Would it be possible to only delete TV shows in sonarr as a whole. Rather than individual episodes?
Inputting rules is tedious.
Rework the rule input to some sort of query builder like https://www.npmjs.com/package/react-querybuilder.
This change would be big, but it would massively improve UX.
Requesting a button or link inside the docs to get back to Maintainerr Overview page.
Improve functionality when not all applications are configured.
Describe the bug
When something unexpected happens to a collection, the rule handler will fail to add media to it during the next run.
For instance:
Expected behavior
Rule handler wil re-create the collection and add media to it.
Sonarr dateadded & firstairdate don’t work because they return their date as text instead of a date object.
hope this useful repo can extend its support to jellyfin which is also a very popular project
It would be nice to have an about page. The only thing that would have to be on the page would be app version. The rest could show stuff like number of collections, number of rules, last time the rule ran, when the next deletion will take place, whether or not the app version is the most up to date, etc.
Discord feedback by user Dekai:
feature request: I may not have found a way to do this yet, but some way to see your excluded stuff would be helpful to unexclude or just keep tabs on what excluded
additionally would be good to see "removed" items from a collection, something like in the collection but greyed out to see that it should be part of the collection but was removed. use case would be if you wanted to remove something from the deletion parameters to delay it but be able to view it and "unremove it" later on so it can be deleted.
When you're on a sub page of a menu item, clicking on the menu item again doesn't bring you back to the home screen.
(for instance, editing rules and clicking on 'rules' again. Nothing will happen)
Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
It is simple. I want to see why media is added to a collection from within the logs of the container. Right now, I have created a rule, but I don't know exactly if this rule is behaving like I want it to. So it would be nice to be able to check if the reasoning behind my rule is valid.
Sort of like:
I have a rule to removes media when it hasn't been watched for more than 30 days.
Logs would be:
Checking movie "Star wars" - last watched at: 14-09-2023 > requirement: 30 days > false.
Checking movie "Die hard" - last watched at: 14-05-2023 > requirement: 30 days > true
Just an example, but I think you get what I mean. You use the different variables from plex, radarr, sonarr, and overseerr already, why not use it for logging purposes as well?
Let me know what you think.
We're currently stuck at typeorm 0.2 & @nestjs/typeorm 8.
Migrate our app so we can use typeorm > 0.3 & @nestjs/typeorm > 9.0 ;
https://wanago.io/2022/07/11/api-with-nestjs-migrating-to-typeorm-0-3/
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.