Overseerr Support #5

Closed
opened 2025-11-20 04:15:21 -05:00 by saavagebueno · 100 comments
Owner

Originally created by @kiranshila on GitHub (Aug 12, 2021).

Integrate Ombi/Overseer somehow

Originally created by @kiranshila on GitHub (Aug 12, 2021). Integrate Ombi/Overseer somehow
saavagebueno added the enhancement label 2025-11-20 04:15:21 -05:00
Author
Owner

@ghost commented on GitHub (Aug 16, 2021):

Hey mate, not sure if this is in the scope of your Doplarr bot... But!

Overseerr has native support for separate 4K Radarr/Sonarr servers.. Overseerr also manages user permissions, like who can request 4K, who can't, who can request "normal" content, and who can't .. and so on.

It would be nice to have separate commands for the separate 4K Radarr/Sonarr servers, which are configured through Overseerr. So commands like /4kmovie and /4ktv to request through Overseerr, specifically using the separate 4K Radarr/Sonarr servers.

I made a similair request on the requestrr repo.

@ghost commented on GitHub (Aug 16, 2021): Hey mate, not sure if this is in the scope of your Doplarr bot... But! Overseerr has native support for separate 4K Radarr/Sonarr servers.. Overseerr also manages user permissions, like who can request 4K, who can't, who can request "normal" content, and who can't .. and so on. It would be nice to have separate commands for the separate 4K Radarr/Sonarr servers, which are configured through Overseerr. So commands like `/4kmovie` and `/4ktv` to request through Overseerr, specifically using the separate 4K Radarr/Sonarr servers. I made a similair request on the [requestrr repo](https://github.com/darkalfx/requestrr/issues/93).
Author
Owner

@kiranshila commented on GitHub (Aug 16, 2021):

So, the tricky bit is that it's a slippery slope, once we add separate commands for individual profiles, we'd have to keep doing that for all potential profiles, which doesn't scale. The profile selection would happen inside the single \request interaction. I'm going to track that feature in #14.

So - we would need to connect the discord user to the overserr user and then add a separate interaction screen for profile selection that filters by what that user is able to request.

The reason we would do this inside the interaction is because it would be a hot mess to try to connect the overserr permissions to discord permission as the permissions structuring for the slash commands is a nightmare.

I haven't used either ombi or overseerr, nor do I personally plan to, so I have to look more into how it all works.

There seem to be even more options than those two as well, I saw Conreq and Cheddarr just to name a few. The more APIs we add, the more difficult managing them all become, so I think I might just pick one for the time being.

From a cursory look, I think I will go with Overseerr. Of the people following this issue, are there any thoughts on this?

@kiranshila commented on GitHub (Aug 16, 2021): So, the tricky bit is that it's a slippery slope, once we add separate commands for individual profiles, we'd have to keep doing that for all potential profiles, which doesn't scale. The profile selection would happen inside the single `\request` interaction. I'm going to track that feature in #14. So - we would need to connect the discord user to the overserr user and then add a separate interaction screen for profile selection that filters by what that user is able to request. The reason we would do this inside the interaction is because it would be a hot mess to try to connect the overserr permissions to discord permission as the permissions structuring for the slash commands is a nightmare. I haven't used either ombi or overseerr, nor do I personally plan to, so I have to look more into how it all works. There seem to be even more options than those two as well, I saw Conreq and Cheddarr just to name a few. The more APIs we add, the more difficult managing them all become, so I think I might just pick one for the time being. From a cursory look, I think I will go with Overseerr. Of the people following this issue, are there any thoughts on this?
Author
Owner

@onedr0p commented on GitHub (Aug 16, 2021):

Overseerr looks like the most popular choice of them all. The developers are super responsive and their app is very fast and very pretty.

If anything you could deploy multiple Doplarr bots with different profiles configured to each one.

@onedr0p commented on GitHub (Aug 16, 2021): Overseerr looks like the most popular choice of them all. The developers are super responsive and their app is very fast and very pretty. If anything you could deploy multiple `Doplarr` bots with different profiles configured to each one.
Author
Owner

@cpt-kuesel commented on GitHub (Aug 17, 2021):

I vote for Overseerr Support as well. Their API structure is well built, at least thats what I gathered from talking with the requestrr and lunasea devs.

@cpt-kuesel commented on GitHub (Aug 17, 2021): I vote for Overseerr Support as well. Their API structure is well built, at least thats what I gathered from talking with the requestrr and lunasea devs.
Author
Owner

@kiranshila commented on GitHub (Aug 17, 2021):

Great! I'm going to work on the backlog of a few of these easier bugs/enhancements first, then I'll dive into this.

@kiranshila commented on GitHub (Aug 17, 2021): Great! I'm going to work on the backlog of a few of these easier bugs/enhancements first, then I'll dive into this.
Author
Owner

@onedr0p commented on GitHub (Aug 17, 2021):

@kiranshila thanks, looking forward to it!

@onedr0p commented on GitHub (Aug 17, 2021): @kiranshila thanks, looking forward to it!
Author
Owner

@onedr0p commented on GitHub (Aug 17, 2021):

Also, here's a link to their API docs https://api-docs.overseerr.dev/

@onedr0p commented on GitHub (Aug 17, 2021): Also, here's a link to their API docs https://api-docs.overseerr.dev/
Author
Owner

@kiranshila commented on GitHub (Aug 18, 2021):

I've been reading the overseer docs, seems straightforward. The fact that users can "just have" a discord id as part of their metadata makes this pretty easy. I'm going to need to do some checks to make sure that if we are using overseer, validate that the user can perform the request and if not, return a permission error dialog.

@kiranshila commented on GitHub (Aug 18, 2021): I've been reading the overseer docs, seems straightforward. The fact that users can "just have" a discord id as part of their metadata makes this pretty easy. I'm going to need to do some checks to make sure that if we are using overseer, validate that the user can perform the request and if not, return a permission error dialog.
Author
Owner

@cpt-kuesel commented on GitHub (Aug 18, 2021):

i am running overseerr and am willing to test anything you need tested in that regard!

@cpt-kuesel commented on GitHub (Aug 18, 2021): i am running overseerr and am willing to test anything you need tested in that regard!
Author
Owner

@ahkamyaqeen commented on GitHub (Aug 19, 2021):

@kiranshila if you are open to pull requests, I'd love to help implement this feature (I do have a background in using Clojure)

@ahkamyaqeen commented on GitHub (Aug 19, 2021): @kiranshila if you are open to pull requests, I'd love to help implement this feature (I do have a background in using Clojure)
Author
Owner

@kiranshila commented on GitHub (Aug 19, 2021):

@ahkamyaqeen Yeah, if you'd like - I was going to tackle it this weekend, though.

@kiranshila commented on GitHub (Aug 19, 2021): @ahkamyaqeen Yeah, if you'd like - I was going to tackle it this weekend, though.
Author
Owner

@kiranshila commented on GitHub (Aug 21, 2021):

Started today - the api is actually a little wonky, not using the modern query params spec, which is throwing errors for search terms with spaces as the Java 11 URLEncoder encodes spaces as +.

I opened an issue here https://github.com/sct/overseerr/issues/2010

@kiranshila commented on GitHub (Aug 21, 2021): Started today - the api is actually a little wonky, not using the modern query params spec, which is throwing errors for search terms with spaces as the Java 11 URLEncoder encodes spaces as `+`. I opened an issue here https://github.com/sct/overseerr/issues/2010
Author
Owner

@onedr0p commented on GitHub (Aug 21, 2021):

@kiranshila there's a interesting stackoverflow about that issue. Seems pretty lengthy, maybe there's a workaround for now?

https://stackoverflow.com/questions/4737841/urlencoder-not-able-to-translate-space-character

@onedr0p commented on GitHub (Aug 21, 2021): @kiranshila there's a interesting stackoverflow about that issue. Seems pretty lengthy, maybe there's a workaround for now? https://stackoverflow.com/questions/4737841/urlencoder-not-able-to-translate-space-character
Author
Owner

@kiranshila commented on GitHub (Aug 21, 2021):

Yeah, + is correct, Java isn't wrong lol, its a bug in Overseerr. I have a fix in place rn, it's just annoying haha

@kiranshila commented on GitHub (Aug 21, 2021): Yeah, `+` is correct, Java isn't wrong lol, its a bug in Overseerr. I have a fix in place rn, it's just annoying haha
Author
Owner

@onedr0p commented on GitHub (Aug 21, 2021):

Oh definitely a Bug on their end, I'm just mentioning you can likely workaround it for now until it's fixed by them upstream. The first answer in the stackoverflow seemed like it would do.

/ignore me, didn't read you put a work around in already lol

@onedr0p commented on GitHub (Aug 21, 2021): Oh definitely a Bug on their end, I'm just mentioning you can likely workaround it for now until it's fixed by them upstream. The first answer in the stackoverflow seemed like it would do. /ignore me, didn't read you put a work around in already lol
Author
Owner

@kiranshila commented on GitHub (Aug 21, 2021):

The specific HTTP wrapper I am using does a URI encode before it submits the request anyway, so I am manually creating the query param string instead of the nice {:query-params ... construct. URI encoding puts spaces to %20, so it works out.

@kiranshila commented on GitHub (Aug 21, 2021): The specific HTTP wrapper I am using does a URI encode before it submits the request anyway, so I am manually creating the query param string instead of the nice `{:query-params ...` construct. URI encoding puts spaces to `%20`, so it works out.
Author
Owner

@kiranshila commented on GitHub (Aug 23, 2021):

Made a lot of progress today, requesting movies basically works:

You get an error message in discord for quota limits

image

And an error for missing associated account
image

I think I prefer this - requiring you have a mapping from user in overseerr to discord rather than having a default, but let me know what you think.

@kiranshila commented on GitHub (Aug 23, 2021): Made a lot of progress today, requesting movies basically works: You get an error message in discord for quota limits ![image](https://user-images.githubusercontent.com/6305359/130536563-f598ffdf-44ec-4331-ba27-d4a268792698.png) And an error for missing associated account ![image](https://user-images.githubusercontent.com/6305359/130536677-1d902b38-a1bc-4e98-8347-9eab80c43577.png) I think I prefer this - requiring you have a mapping from user in overseerr to discord rather than having a default, but let me know what you think.
Author
Owner

@cpt-kuesel commented on GitHub (Aug 24, 2021):

I like your approach on this!
My Overseerr users that are on my Discord Server all have their respective Discord ID mapped. So I am well prepared 😄

Which profile do you use when you send the request to Overseerr? Do you take the default one for movies/shows that is configured in Overseerr? Or does the user need to choose it when I have multiple?
My preference would just be default profile.

@cpt-kuesel commented on GitHub (Aug 24, 2021): I like your approach on this! My Overseerr users that are on my Discord Server all have their respective Discord ID mapped. So I am well prepared 😄 Which profile do you use when you send the request to Overseerr? Do you take the default one for movies/shows that is configured in Overseerr? Or does the user need to choose it when I have multiple? My preference would just be default profile.
Author
Owner

@ghost commented on GitHub (Aug 24, 2021):

It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances.

@ghost commented on GitHub (Aug 24, 2021): It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances.
Author
Owner

@kiranshila commented on GitHub (Aug 24, 2021):

I like your approach on this!
My Overseerr users that are on my Discord Server all have their respective Discord ID mapped. So I am well prepared smile

Which profile do you use when you send the request to Overseerr? Do you take the default one for movies/shows that is configured in Overseerr? Or does the user need to choose it when I have multiple?
My preference would just be default profile.

As far as I can tell, I can't actually select the profile for the requests via the API, so it will always use whatever is setup in Overseerr

@kiranshila commented on GitHub (Aug 24, 2021): > I like your approach on this! > My Overseerr users that are on my Discord Server all have their respective Discord ID mapped. So I am well prepared smile > > Which profile do you use when you send the request to Overseerr? Do you take the default one for movies/shows that is configured in Overseerr? Or does the user need to choose it when I have multiple? > My preference would just be default profile. As far as I can tell, I can't actually select the profile for the requests via the API, so it will always use whatever is setup in Overseerr
Author
Owner

@kiranshila commented on GitHub (Aug 24, 2021):

It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances.

What permissions are you referring to? Just 4K vs non-4K, or quota limits, or other stuff. I'm still trying to think of a nice way to do the 4K split, but it looks like that requires having two different servers up, it can't just use a different profile afaik.

@kiranshila commented on GitHub (Aug 24, 2021): > It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances. What permissions are you referring to? Just 4K vs non-4K, or quota limits, or other stuff. I'm still trying to think of a nice way to do the 4K split, but it looks like that requires having two different servers up, it can't just use a different profile afaik.
Author
Owner

@ghost commented on GitHub (Aug 24, 2021):

It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances.

What permissions are you referring to? Just 4K vs non-4K, or quota limits, or other stuff. I'm still trying to think of a nice way to do the 4K split, but it looks like that requires having two different servers up, it can't just use a different profile afaik.

Exactly what I'm referring to (the 4K vs the non-4K permissions) 😄 .

To use 4K instances in Overseerr, you'll need separate Radarr / Sonarr instances for that.
So, in Overseerr, it's usually setup (if you want to use 4K instances) like so:
1x Radarr for non-4K movie content
1x Sonarr for non-4K TV content
1x Radarr for 4K movie content
1x Sonarr for 4K TV content
All instances are separate and doesn't share profiles.

In my case, I've just named the non-4K Radarr/Sonarr profiles to "HD-1080p" and the 4K Radarr/Sonarr profiles to "UHD-4K". So they do have different profile names, not sure if that matters at all.

E.g.
https://i.imgur.com/79ymn1c.png

@ghost commented on GitHub (Aug 24, 2021): > > It would be nice if checked for permission(s) as well, and reported back to the user if they don't have permission. E.g. to the profiles associated with the 4K Sonarr / Radarr instances. > > What permissions are you referring to? Just 4K vs non-4K, or quota limits, or other stuff. I'm still trying to think of a nice way to do the 4K split, but it looks like that requires having two different servers up, it can't just use a different profile afaik. Exactly what I'm referring to (the 4K vs the non-4K permissions) :smile: . To use 4K instances in Overseerr, you'll need separate Radarr / Sonarr instances for that. So, in Overseerr, it's usually setup (if you want to use 4K instances) like so: 1x Radarr for non-4K movie content 1x Sonarr for non-4K TV content 1x Radarr for 4K movie content 1x Sonarr for 4K TV content All instances are separate and doesn't share profiles. In my case, I've just named the non-4K Radarr/Sonarr profiles to "HD-1080p" and the 4K Radarr/Sonarr profiles to "UHD-4K". So they do have different profile names, not sure if that matters at all. E.g. https://i.imgur.com/79ymn1c.png
Author
Owner

@kiranshila commented on GitHub (Aug 24, 2021):

Got it. Yeah, I'll need to chew on that a bit - I'll probably do it like the drop down for profile select, but I have to find which API endpoint lets me check if a user has permission for that.

@kiranshila commented on GitHub (Aug 24, 2021): Got it. Yeah, I'll need to chew on that a bit - I'll probably do it like the drop down for profile select, but I have to find which API endpoint lets me check if a user has permission for that.
Author
Owner

@cpt-kuesel commented on GitHub (Aug 24, 2021):

just for clarification, i meant the overseer profiles as well, @VP-EN did a better job describing it :)

@cpt-kuesel commented on GitHub (Aug 24, 2021): just for clarification, i meant the overseer profiles as well, @VP-EN did a better job describing it :)
Author
Owner

@ghost commented on GitHub (Aug 30, 2021):

Hey @kiranshila, I'm not sure how far you are with this, but I got to think 😄
Is it possible to add an (optional) option for Doplarr to request content on both profiles (regular + 4K)?

E.g.. If one user tries to request a Movie in 4K, that it also sends the same request (same movie) to the regular sonarr/radarr as well.

Not sure if "options" are a part of Doplarr, so forgive me if this should be a in a separate GH issue.

@ghost commented on GitHub (Aug 30, 2021): Hey @kiranshila, I'm not sure how far you are with this, but I got to think :smile: Is it possible to add an (optional) option for Doplarr to request content on both profiles (regular + 4K)? E.g.. If one user tries to request a Movie in 4K, that it also sends the same request (same movie) to the regular sonarr/radarr as well. Not sure if "options" are a part of Doplarr, so forgive me if this should be a in a separate GH issue.
Author
Owner

@kiranshila commented on GitHub (Sep 8, 2021):

Sorry I've been quiet on this - got a ton of school stuff to catch up on. I'll finish this up soon.

@kiranshila commented on GitHub (Sep 8, 2021): Sorry I've been quiet on this - got a ton of school stuff to catch up on. I'll finish this up soon.
Author
Owner

@kiranshila commented on GitHub (Sep 12, 2021):

Ok I think I got it all working - if someone with an overseerr setup wants to try it out, check out the ghcr.io/kiranshila/doplarr:overseerr docker image

@kiranshila commented on GitHub (Sep 12, 2021): Ok I think I got it all working - if someone with an overseerr setup wants to try it out, check out the `ghcr.io/kiranshila/doplarr:overseerr` docker image
Author
Owner

@kiranshila commented on GitHub (Sep 12, 2021):

If y'all don't find any major problems, I'm ready for the release

@kiranshila commented on GitHub (Sep 12, 2021): If y'all don't find any major problems, I'm ready for the release
Author
Owner

@onedr0p commented on GitHub (Sep 13, 2021):

@kiranshila it would be good to know what environment variables to set :) But go ahead and merge it. I'm sure there will be feedback after you release it.

@onedr0p commented on GitHub (Sep 13, 2021): @kiranshila it would be good to know what environment variables to set :) But go ahead and merge it. I'm sure there will be feedback after you release it.
Author
Owner

@kiranshila commented on GitHub (Sep 13, 2021):

Oh sorry, it's in the readme in this branch. You just set overseerr_url and overseerr_api, just like radarr and sonarr

@kiranshila commented on GitHub (Sep 13, 2021): Oh sorry, it's in the readme in this branch. You just set overseerr_url and overseerr_api, just like radarr and sonarr
Author
Owner

@cpt-kuesel commented on GitHub (Sep 13, 2021):

I tried it and movies and tv shows work as expected.

Anime shows can't be requested, at least thats the conclusion i have come to.

Also requesting something thats already available gives the user no feedback and doesn't close the request.

@cpt-kuesel commented on GitHub (Sep 13, 2021): I tried it and movies and tv shows work as expected. Anime shows can't be requested, at least thats the conclusion i have come to. Also requesting something thats already available gives the user no feedback and doesn't close the request.
Author
Owner

@cpt-kuesel commented on GitHub (Sep 13, 2021):

To clarify on animes:
I am able to click request and get the response has been requested, but the actual request doesnt go through

@cpt-kuesel commented on GitHub (Sep 13, 2021): To clarify on animes: I am able to click request and get the response has been requested, but the actual request doesnt go through
Author
Owner

@ghost commented on GitHub (Sep 13, 2021):

I'm quite busy today, so I'll only be able to test it tomorrow
Edit Sorry probably won't be able to test it today either 😕

@ghost commented on GitHub (Sep 13, 2021): I'm quite busy today, so I'll only be able to test it tomorrow **Edit** Sorry probably won't be able to test it today either 😕
Author
Owner

@kiranshila commented on GitHub (Sep 13, 2021):

@cpt-kuesel

Also requesting something thats already available gives the user no feedback and doesn't close the request.

Ah yes - forgot about that.

I am able to click request and get the response has been requested, but the actual request doesnt go through

I am unable to reproduce this. Is there any error in the log? Is your anime setup somehow different?

@kiranshila commented on GitHub (Sep 13, 2021): @cpt-kuesel > Also requesting something thats already available gives the user no feedback and doesn't close the request. Ah yes - forgot about that. > I am able to click request and get the response has been requested, but the actual request doesnt go through I am unable to reproduce this. Is there any error in the log? Is your anime setup somehow different?
Author
Owner

@cpt-kuesel commented on GitHub (Sep 13, 2021):

I didn't see any errors in doplarr or overseerr logs unfortunately.

I don't think my anime setup is different. Both tv shows and anime are defined in the default profile for sonarr and differ only in root folder and tags.
image

@cpt-kuesel commented on GitHub (Sep 13, 2021): I didn't see any errors in doplarr or overseerr logs unfortunately. I don't think my anime setup is different. Both tv shows and anime are defined in the default profile for sonarr and differ only in root folder and tags. ![image](https://user-images.githubusercontent.com/79487102/133115783-0a7d79ba-4cab-451e-b3d4-47e319f84560.png)
Author
Owner

@cpt-kuesel commented on GitHub (Sep 13, 2021):

Okay so I tried a bit more and was partially successful.
I did manage to request the anime shows i couldn't request before.

And I think I know the problem.
I can only request them if choose a specific season. If i choose all seasons the request doesnt go through.

@cpt-kuesel commented on GitHub (Sep 13, 2021): Okay so I tried a bit more and was partially successful. I did manage to request the anime shows i couldn't request before. And I think I know the problem. I can only request them if choose a specific season. If i choose all seasons the request doesnt go through.
Author
Owner

@kiranshila commented on GitHub (Sep 13, 2021):

When you say it doesn't go through - like the request isn't showing up at all in Overseerr?

@kiranshila commented on GitHub (Sep 13, 2021): When you say it doesn't go through - like the request isn't showing up at all in Overseerr?
Author
Owner

@cpt-kuesel commented on GitHub (Sep 13, 2021):

Correct, it never reaches Overseerr.
Not even in the overseerr logs.

@cpt-kuesel commented on GitHub (Sep 13, 2021): Correct, it never reaches Overseerr. Not even in the overseerr logs.
Author
Owner

@onedr0p commented on GitHub (Sep 13, 2021):

I was able to get this working and tested against adding a movie and tv show 🎉

@onedr0p commented on GitHub (Sep 13, 2021): I was able to get this working and tested against adding a movie and tv show 🎉
Author
Owner

@kiranshila commented on GitHub (Sep 13, 2021):

I think after I fix whatever is happening with @cpt-kuesel's anime and add a duplicate request message, we should be good to go

@kiranshila commented on GitHub (Sep 13, 2021): I think after I fix whatever is happening with @cpt-kuesel's anime and add a duplicate request message, we should be good to go
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

I'm probably just an idiot, but I followed the guide quite closely, added the bot..

docker run \
-e OVERSEERR_URL='https://overseerr.xxxx.com' \
-e OVERSEERR_API='xxxxxxxxxxxxxxxxxxxxxxxxx=' \
-e BOT_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxx' \
-e ROLE_ID='xxxxxxxxxxxxxxxxxxxxxxxx' \
--name doplarr ghcr.io/kiranshila/doplarr:overseerr

Getting this from the docker logs:

19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/app/target/Doplarr.jar!/logback.xml]
19:05:38,778 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@b0e5507 - URL [jar:file:/app/target/Doplarr.jar!/logback.xml] is not of type file
19:05:38,828 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
19:05:38,828 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
19:05:38,830 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE]
19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - This appender no longer admits a layout as a sub-component, set an encoder instead.
19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
19:05:38,864 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ERROR
19:05:38,864 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT]
19:05:38,864 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration.
19:05:38,864 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6bbe50c9 - Registering current configuration as safe fallback point

Assuming this is alright, since the bot is showing it's online.

but I have a problem - the /request options are greyed out. I double checked the permissions given to the assigned role..
The "Use Application Commands" is set to enabled both in the role and in the channel I'm trying to use..

NEVERMIND.. Forgot to read this part lol:

Every user that you wish to have access to the slash commands needs to be
assigned this role (even the server owner/admins).
@ghost commented on GitHub (Sep 17, 2021): I'm probably just an idiot, but I followed the guide quite closely, added the bot.. ``` docker run \ -e OVERSEERR_URL='https://overseerr.xxxx.com' \ -e OVERSEERR_API='xxxxxxxxxxxxxxxxxxxxxxxxx=' \ -e BOT_TOKEN='xxxxxxxxxxxxxxxxxxxxxxxx' \ -e ROLE_ID='xxxxxxxxxxxxxxxxxxxxxxxx' \ --name doplarr ghcr.io/kiranshila/doplarr:overseerr ``` Getting this from the docker logs: ``` 19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy] 19:05:38,774 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [jar:file:/app/target/Doplarr.jar!/logback.xml] 19:05:38,778 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@b0e5507 - URL [jar:file:/app/target/Doplarr.jar!/logback.xml] is not of type file 19:05:38,828 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set 19:05:38,828 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender] 19:05:38,830 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [CONSOLE] 19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - This appender no longer admits a layout as a sub-component, set an encoder instead. 19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder. 19:05:38,863 |-WARN in ch.qos.logback.core.ConsoleAppender[CONSOLE] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details 19:05:38,864 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to ERROR 19:05:38,864 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [CONSOLE] to Logger[ROOT] 19:05:38,864 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 19:05:38,864 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@6bbe50c9 - Registering current configuration as safe fallback point ``` Assuming this is alright, since the bot is showing it's online. ~~but I have a problem - the `/request` options are greyed out. I double checked the permissions given to the assigned role.. The "Use Application Commands" is set to enabled both in the role and in the channel I'm trying to use..~~ **NEVERMIND**.. Forgot to read this part lol: ``` Every user that you wish to have access to the slash commands needs to be assigned this role (even the server owner/admins). ```
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

@VP-EN Yeah, I should probably bold that or something - that seems to be the most common thing people are missing. This is an artifact of the discord slash command permissions nonsense, there isn't really a way around it.

@kiranshila commented on GitHub (Sep 17, 2021): @VP-EN Yeah, I should probably bold that or something - that seems to be the most common thing people are missing. This is an artifact of the discord slash command permissions nonsense, there isn't really a way around it.
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

@VP-EN Yeah, I should probably bold that or something - that seems to be the most common thing people are missing. This is an artifact of the discord slash command permissions nonsense, there isn't really a way around it.

Slightly annoying, but that's not your fault 😄 I guess I'll create some trash role for the sole purpose of the bot 👍

The requesting works very good though. Again, as you already mentioned, it would be awesome with both a "this is already on Plex", if Overseerr knows it's already on Plex, or "this has already been requested" if Overseerr already knows it has been requested, and so on.

Thanks a lot for your work on this 👍

@ghost commented on GitHub (Sep 17, 2021): > @VP-EN Yeah, I should probably bold that or something - that seems to be the most common thing people are missing. This is an artifact of the discord slash command permissions nonsense, there isn't really a way around it. Slightly annoying, but that's not your fault 😄 I guess I'll create some trash role for the sole purpose of the bot 👍 The requesting works very good though. Again, as you already mentioned, it would be awesome with both a "this is already on Plex", if Overseerr knows it's already on Plex, or "this has already been requested" if Overseerr already knows it has been requested, and so on. Thanks a lot for your work on this 👍
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

Slightly annoying, but that's not your fault smile I guess I'll create some trash role for the sole purpose of the bot +1

An alternative idea would be to make the role bit optional, if you want everyone on the server to have access to it, then we could just not use a role at all. Those are the two options the discord API has, all or nothing.

@kiranshila commented on GitHub (Sep 17, 2021): > Slightly annoying, but that's not your fault smile I guess I'll create some trash role for the sole purpose of the bot +1 An alternative idea would be to make the role bit optional, if you want everyone on the server to have access to it, then we could just not use a role at all. Those are the two options the discord API has, all or nothing.
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

I think assigning it to a certain part (certain group of people) of my Discord is sufficient in my case.

I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas?

@ghost commented on GitHub (Sep 17, 2021): I think assigning it to a certain part (certain group of people) of my Discord is sufficient in my case. I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas?
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas?

It's not possible with the current slash command API, that's why we need the role.

@kiranshila commented on GitHub (Sep 17, 2021): >I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas? It's not possible with the current slash command API, that's why we need the role.
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas?

It's not possible with the current slash command API, that's why we need the role.

I see, thanks again mate. You're a legend.

@ghost commented on GitHub (Sep 17, 2021): > > > > I'm wondering how I can limit the bot to only work in a specific channel though. Do you have any thoughts on this/ideas? > > It's not possible with the current slash command API, that's why we need the role. I see, thanks again mate. You're a legend.
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

Sorry to spam up this issue.. but I have this one user on Discord I tried to test this with.
I copied and added his Discord ID to his Plex profile on Overseerr, but when he's trying to request, he gets the You do not have an associated account on Overseerr message.

It works on my own user, and I just copied my own ID into my Plex profile Overseerr.

@ghost commented on GitHub (Sep 17, 2021): Sorry to spam up this issue.. but I have this one user on Discord I tried to test this with. I copied and added his Discord ID to his Plex profile on Overseerr, but when he's trying to request, he gets the `You do not have an associated account on Overseerr` message. It works on my own user, and I just copied my own ID into my Plex profile Overseerr.
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

Ooo interesting - I suppose I should try to add more than one user to my test setup here haha

@kiranshila commented on GitHub (Sep 17, 2021): Ooo interesting - I suppose I should try to add more than one user to my test setup here haha
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

Edit: The user in question 👍
https://i.imgur.com/fRBQRvJ.png

@ghost commented on GitHub (Sep 17, 2021): **Edit:** The user in question 👍 https://i.imgur.com/fRBQRvJ.png
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

Ah shit mate, I think I figured it out 👍

I took my friends ID and put it into the admin account of Overseerr (marked as Owner in Overseerr) - and then it worked.

So I think there's something going on there 😄

@ghost commented on GitHub (Sep 17, 2021): Ah shit mate, I think I figured it out 👍 I took my friends ID and put it into the admin account of Overseerr (marked as Owner in Overseerr) - and then it worked. So I think there's something going on there 😄
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

...uhhh haha. I'll take a look. Something is up with 5c68b56c35/src/doplarr/overseerr.clj (L34-L46) then

@kiranshila commented on GitHub (Sep 17, 2021): ...uhhh haha. I'll take a look. Something is up with https://github.com/kiranshila/Doplarr/blob/5c68b56c35be43e597b6600211ea28c4202920a2/src/doplarr/overseerr.clj#L34-L46 then
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

This seemed a little hacky anyway, but there wasn't an obvious way to connect the overseerr user account to the discord ID

@kiranshila commented on GitHub (Sep 17, 2021): This seemed a little hacky anyway, but there wasn't an obvious way to connect the overseerr user account to the discord ID
Author
Owner

@ghost commented on GitHub (Sep 17, 2021):

Clojure code looks strange to me lol. But to clarify, the bot only seems to allow the ID/Discord-user associated with the owner account of the Overseerr instance if that makes sense.

@ghost commented on GitHub (Sep 17, 2021): Clojure code looks strange to me lol. But to clarify, the bot only seems to allow the ID/Discord-user associated with the owner account of the Overseerr instance if that makes sense.
Author
Owner

@kiranshila commented on GitHub (Sep 17, 2021):

@VP-EN I just tried a Local User and Plex User in overseerr and have not been able to reproduce the issue.

@kiranshila commented on GitHub (Sep 17, 2021): @VP-EN I just tried a Local User and Plex User in overseerr and have not been able to reproduce the issue.
Author
Owner

@ghost commented on GitHub (Sep 18, 2021):

In my case, both of the users are imported from Plex and not local Overseerr users. Not sure if that makes any difference.
I'll test it a bit later and see if I'm able to reproduce the error over and over and then report back

Would it matter if the OVERSEERR_URL is set to a remote host? The bot and the Overseerr are not hosted on the same server yet, in my case..

Is there any settings in Overseerr that I've missed? This seems weird.

Edit: I'll try a few different things, see if anything works lol.

  • Tried creating a local user in Overseerr, removed my Discord ID from the Owner profile and put it in the local profile. Same issue, You do not have an associated account on Overseerr. So I guess it's not that.

  • Tried giving the local user Admin rights (all permissions), didn't work either

  • Only thing that seems to work is if I put the discord ID in the Owner account of the Overseerr..

This is what I've tried:
0) Launch Doplarr bot using:

docker run \
-e OVERSEERR_URL='https://overseerr.urlFromRemoteHost.com' \
-e OVERSEERR_API='OverseerrApiKey=' \
-e BOT_TOKEN='BotTokenFromDiscord' \
-e ROLE_ID='88XX504XXXX89407016' \
--name doplarr ghcr.io/kiranshila/doplarr:overseerr

The ROLE_ID is the role ID of CDR Bot in Discord. The CDR Bot role has no global permissions set, but only enabled a few permissions in one specific channel on Discord.

edited re-producing steps to actually reproduce the error:

  1. Create 12 (or more) local profiles in Overseerr, give them these permissions:
    https://i.imgur.com/5xtbHVT.png

  2. Create a new Discord account / Discord user, named dpzTEST

  3. Invite dpzTEST user to server

  4. Assign the same role as the bot (CDR Bot) to dpzTEST

  5. Copy the ID of the user dpzTEST to the 12th (or above) local profile created

  6. Press on save changes

  7. Try and request a movie using /request movie {term}

  8. Get the error message:
    You do not have an associated account on Overseerr

  9. Remove the ID from the 12th (or above) local user, that you put in (from step 5), and press Save Changes

  10. Add the ID from user dpzTEST to one of the 9 first users in Overseerr, and press Save Changes

  11. You should now be able to request from the dpzTEST user in the Discord channel.

Is there anyone else able to test this? @onedr0p @cpt-kuesel

Bonus Info, cause why not:
The Owner user in Overseerr has this URL:
https://overseerr.urlFromRemoteHost.com/profile/settings/notifications/discord

while the local user has a quite different URL, and also a unique number
https://overseerr.urlFromRemoteHost.com/users/66/settings/notifications/discord

Could that be related to the code bit from https://github.com/kiranshila/Doplarr/issues/5#issuecomment-922069915 ?
It seems to look for the /user/ part of the URL, and somehow, in my case, it only works with the Owner user, which has no /user/ in the URL

Bonus Info pt2
Visiting:
https://overseerr.urlFromRemoteHost.com/api/v1/user/1 shows the correct discordId of my personal Discord ID

Visiting:
https://overseerr.urlFromRemoteHost.com/api/v1/user/66 shows the correct discordId of the dpzTEST user

Bonus Info pt3
Might be a stupid assumption, but could it be that these lines
5c68b56c35/src/doplarr/overseerr.clj (L28-L32)

tries to get all users, using GET "/user" - which only gets the first 10 hits/results? The user I'm testing is at the very bottom and only visible if you run
https://overseerr.urlFromRemoteHost.com/api/v1/user?take=100

Bonus Info pt40243938
I think I fixed it, my stupid assumption seems to be somewhat correct
I changed the line
5c68b56c35/src/doplarr/overseerr.clj (L30)
to
(->> (a/<! (GET "/user?take=1000"))
compiled it, and now the local user now works just fine

Not sure if anyone has over 1000 users in their Overseerr, or if there's a better solution than putting a specific number

@ghost commented on GitHub (Sep 18, 2021): In my case, both of the users are imported from Plex and not local Overseerr users. Not sure if that makes any difference. I'll test it a bit later and see if I'm able to reproduce the error over and over and then report back Would it matter if the `OVERSEERR_URL` is set to a remote host? The bot and the Overseerr are not hosted on the same server yet, in my case.. Is there any settings in Overseerr that I've missed? This seems weird. **Edit:** I'll try a few different things, see if anything works lol. - Tried creating a local user in Overseerr, removed my Discord ID from the Owner profile and put it in the local profile. Same issue, `You do not have an associated account on Overseerr`. So I guess it's not that. - Tried giving the local user Admin rights (all permissions), didn't work either - Only thing that seems to work is if I put the discord ID in the Owner account of the Overseerr.. This is what I've tried: 0) Launch Doplarr bot using: ``` docker run \ -e OVERSEERR_URL='https://overseerr.urlFromRemoteHost.com' \ -e OVERSEERR_API='OverseerrApiKey=' \ -e BOT_TOKEN='BotTokenFromDiscord' \ -e ROLE_ID='88XX504XXXX89407016' \ --name doplarr ghcr.io/kiranshila/doplarr:overseerr ``` The `ROLE_ID` is the role ID of `CDR Bot` in Discord. The `CDR Bot` role has no global permissions set, but only enabled a few permissions in one specific channel on Discord. **edited re-producing steps** to actually reproduce the error: 1) Create 12 (or more) local profiles in Overseerr, give them these permissions: https://i.imgur.com/5xtbHVT.png 2) Create a new Discord account / Discord user, named `dpzTEST` 3) Invite `dpzTEST` user to server 4) Assign the same role as the bot (CDR Bot) to `dpzTEST` 5) Copy the ID of the user `dpzTEST` to the 12th (or above) local profile created 6) Press on save changes 7) Try and request a movie using `/request movie {term}` 8) Get the error message: `You do not have an associated account on Overseerr` 9) Remove the ID from the 12th (or above) local user, that you put in (from step 5), and press `Save Changes` 10) Add the ID from user `dpzTEST` to one of the 9 first users in Overseerr, and press `Save Changes` 11) You should now be able to request from the `dpzTEST` user in the Discord channel. Is there anyone else able to test this? @onedr0p @cpt-kuesel **Bonus Info**, cause why not: The Owner user in Overseerr has this URL: `https://overseerr.urlFromRemoteHost.com/profile/settings/notifications/discord` while the local user has a quite different URL, and also a unique number `https://overseerr.urlFromRemoteHost.com/users/66/settings/notifications/discord` Could that be related to the code bit from https://github.com/kiranshila/Doplarr/issues/5#issuecomment-922069915 ? It seems to look for the `/user/` part of the URL, and somehow, in my case, it only works with the Owner user, which has no `/user/` in the URL **Bonus Info pt2** Visiting: `https://overseerr.urlFromRemoteHost.com/api/v1/user/1` shows the correct `discordId` of my personal Discord ID Visiting: `https://overseerr.urlFromRemoteHost.com/api/v1/user/66` shows the correct `discordId` of the `dpzTEST` user **Bonus Info pt3** Might be a stupid assumption, but could it be that these lines https://github.com/kiranshila/Doplarr/blob/5c68b56c35be43e597b6600211ea28c4202920a2/src/doplarr/overseerr.clj#L28-L32 tries to get all users, using `GET "/user"` - which only gets the first 10 hits/results? The user I'm testing is at the very bottom and only visible if you run `https://overseerr.urlFromRemoteHost.com/api/v1/user?take=100` **Bonus Info pt40243938** I think I fixed it, my stupid assumption seems to be somewhat correct I changed the line https://github.com/kiranshila/Doplarr/blob/5c68b56c35be43e597b6600211ea28c4202920a2/src/doplarr/overseerr.clj#L30 to ` (->> (a/<! (GET "/user?take=1000"))` compiled it, and now the local user now works just fine Not sure if anyone has over 1000 users in their Overseerr, or if there's a better solution than putting a specific number
Author
Owner

@cpt-kuesel commented on GitHub (Sep 18, 2021):

I will try and follow your steps.
But I will probably only have time this evening. Will report back with my findings!

@cpt-kuesel commented on GitHub (Sep 18, 2021): I will try and follow your steps. But I will probably only have time this evening. Will report back with my findings!
Author
Owner

@ghost commented on GitHub (Sep 18, 2021):

I'm not sure you need to - the issue lies in this part of the code
5c68b56c35/src/doplarr/overseerr.clj (L28-L32)

It uses the API call GET from /user, but by default that only gets the first 10 users.. So the issue will only appear if you have more than 10 users, and if the user in question will be the 11th (or later) user.
By forcing it to get more users, like /user?take=1000, it'll actually work as intended 👍
So it works if you edit that line, and (re)compile it. So I think it's up to @kiranshila to fix it 😄

But thanks anyways 👍

@ghost commented on GitHub (Sep 18, 2021): I'm not sure you need to - the issue lies in this part of the code https://github.com/kiranshila/Doplarr/blob/5c68b56c35be43e597b6600211ea28c4202920a2/src/doplarr/overseerr.clj#L28-L32 It uses the API call GET from `/user`, but by default that only gets the first 10 users.. So the issue will only appear if you have more than 10 users, and if the user in question will be the 11th (or later) user. By forcing it to get more users, like `/user?take=1000`, it'll actually work as intended 👍 So it works if you edit that line, and (re)compile it. So I think it's up to @kiranshila to fix it 😄 But thanks anyways 👍
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Awesome detective work @VP-EN! Nowhere in the docs could I find that the users endpoint is paged as well. The docs clearly say get "all" users.

Great find. I'll get it fixed.

@kiranshila commented on GitHub (Sep 18, 2021): Awesome detective work @VP-EN! Nowhere in the docs could I find that the users endpoint is paged as well. The docs clearly say get "all" users. Great find. I'll get it fixed.
Author
Owner

@ghost commented on GitHub (Sep 18, 2021):

Awesome detective work @VP-EN! Nowhere in the docs could I find that the users endpoint is paged as well. The docs clearly say get "all" users.

Great find. I'll get it fixed.

Yeah, thanks. Found it by doing the https://overseerr.urlremote.com/api/v1/user and only saw 10 results. Then it clicked lol.
And thanks to you too :D

Anyways, I'm not sure if I asked this - is there any way for you to implement an option, where IF a user requests some movie/series in 4K, that's not already present in non-4K, it'll request both of them?
e.g. if a user requests "Die Hard" in 4K, and it's not already present on Plex, in either 4K or not, it'll send a request to both "profiles" (4K + Non-4K)?

Edit
Ah wait think I requested it here https://github.com/kiranshila/Doplarr/issues/5#issuecomment-908545271 . Should I create a separate GitHub issue?

@ghost commented on GitHub (Sep 18, 2021): > > > Awesome detective work @VP-EN! Nowhere in the docs could I find that the users endpoint is paged as well. The docs clearly say get "all" users. > > Great find. I'll get it fixed. Yeah, thanks. Found it by doing the `https://overseerr.urlremote.com/api/v1/user` and only saw 10 results. Then it clicked lol. And thanks to you too :D Anyways, I'm not sure if I asked this - is there any way for you to implement an option, where IF a user requests some movie/series in 4K, that's not already present in non-4K, it'll request both of them? e.g. if a user requests "Die Hard" in 4K, and it's not already present on Plex, in either 4K or not, it'll send a request to both "profiles" (4K + Non-4K)? **Edit** Ah wait think I requested it here https://github.com/kiranshila/Doplarr/issues/5#issuecomment-908545271 . Should I create a separate GitHub issue?
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Yeah I'd say make a separate issue.

@VP-EN https://overseerr.urlFromRemoteHost.com/api/v1/user/66 shows the correct discordId of the dpzTEST user

This is genius. Absolutely nowhere in the API docs does it say that the user endpoint returns the discord id. That makes everything so much simpler, I don't have to do this whole get all users thing. https://api-docs.overseerr.dev/#/users/get_user__userId_

It doesn't even mention the settings block.

@kiranshila commented on GitHub (Sep 18, 2021): Yeah I'd say make a separate issue. > @VP-EN https://overseerr.urlFromRemoteHost.com/api/v1/user/66 shows the correct discordId of the dpzTEST user This is genius. Absolutely nowhere in the API docs does it say that the user endpoint returns the discord id. That makes everything so much simpler, I don't have to do this whole get all users thing. https://api-docs.overseerr.dev/#/users/get_user__userId_ It doesn't even mention the settings block.
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Yeah all of that code is now

(defn discord-id [ovsr-id]
 (a/go
   (->> (a/<! (GET (str "/user/" ovsr-id)))
        (then #(s/select-one [:body :settings :discordId] %))
        (else utils/fatal-error))))

So much better.

EDIT: Wait I lied. I forgot that at this point we only have the discord id, we don't have an immediate way of mapping from discord id to overseerr id, only the other way

@kiranshila commented on GitHub (Sep 18, 2021): Yeah all of that code is now ```clojure (defn discord-id [ovsr-id] (a/go (->> (a/<! (GET (str "/user/" ovsr-id))) (then #(s/select-one [:body :settings :discordId] %)) (else utils/fatal-error)))) ``` So much better. EDIT: Wait I lied. I forgot that at this point we only have the discord id, we don't have an immediate way of mapping from discord id to overseerr id, only the other way
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Lol requestrr does exactly what you proposed @VP-EN

7c42356bcd/Requestrr.WebApi/RequestrrBot/DownloadClients/Overseerr/OverseerrClient.cs (L351)

@kiranshila commented on GitHub (Sep 18, 2021): Lol requestrr does exactly what you proposed @VP-EN https://github.com/darkalfx/requestrr/blob/7c42356bcd1855e8d4fab2f18c3d0bd854f5a720/Requestrr.WebApi/RequestrrBot/DownloadClients/Overseerr/OverseerrClient.cs#L351
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Alright here is my solution, ping the endpoint once to find number of ids, then get all of them. That's the only way without having a magic maximum users number

(defn num-users []
  (a/go
    (->> (a/<! (GET "/user" {:query-params {:take 1}}))
         (then #(s/select-one [:body :pageInfo :results] %))
         (else utils/fatal-error))))

(defn all-users []
  (a/go
    (->> (a/<! (GET "/user" {:query-params {:take (a/<! (num-users))}}))
         (then #(->> (s/select-one [:body :results] %)
                     (map :id)
                     (into [])))
         (else utils/fatal-error))))
@kiranshila commented on GitHub (Sep 18, 2021): Alright here is my solution, ping the endpoint once to find number of ids, then get all of them. That's the only way without having a magic maximum users number ```clojure (defn num-users [] (a/go (->> (a/<! (GET "/user" {:query-params {:take 1}})) (then #(s/select-one [:body :pageInfo :results] %)) (else utils/fatal-error)))) (defn all-users [] (a/go (->> (a/<! (GET "/user" {:query-params {:take (a/<! (num-users))}})) (then #(->> (s/select-one [:body :results] %) (map :id) (into []))) (else utils/fatal-error)))) ```
Author
Owner

@ghost commented on GitHub (Sep 18, 2021):

I think that's good 😄

@ghost commented on GitHub (Sep 18, 2021): I think that's good 😄
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Alright, give the most recent docker image on this branch a try - should have a message on the thing being requested, and fix the number of users error.

@kiranshila commented on GitHub (Sep 18, 2021): Alright, give the most recent docker image on this branch a try - should have a message on the thing being requested, and fix the number of users error.
Author
Owner

@ghost commented on GitHub (Sep 18, 2021):

I'll test in a short while 👍 I'll edit this post with the "results"

Edit: Sorry don't have time for much more than this
What works:

  • Requesting a movie now works properly, even for the 66th user 👍
  • Requesting a movie that's already on Plex gives the This has already been requested message -- would be nice if this message was different - like This movie is already on Plex
  • Requesting a movie that's already been requested gives the This has already been requested message
  • It's possible to request in 4K, IF the movie is not present in Plex already. So if it's a totally "new" movie, it'll go through no problems.

Issues:

  • If the movie is already present in Plex, it'll give the This has already been requested message, if you request it in 4K.. Even if it's not been requested in 4K in Overseerr. If you check manually on the website, you'll see it's not been requested in 4K.
@ghost commented on GitHub (Sep 18, 2021): I'll test in a short while 👍 I'll edit this post with the "results" **Edit**: Sorry don't have time for much more than this **What works:** - Requesting a movie now works properly, even for the 66th user 👍 - Requesting a movie that's already on Plex gives the `This has already been requested` message -- would be nice if this message was different - like `This movie is already on Plex` - Requesting a movie that's already been requested gives the `This has already been requested` message - It's possible to request in 4K, IF the movie is not present in Plex already. So if it's a totally "new" movie, it'll go through no problems. **Issues:** - If the movie is already present in Plex, it'll give the `This has already been requested` message, if you request it in 4K.. Even if it's not been requested in 4K in Overseerr. If you check manually on the website, you'll see it's not been requested in 4K.
Author
Owner

@kiranshila commented on GitHub (Sep 18, 2021):

Very helpful! Thank you!

Yeah the requested deal has a few more states that I missed. I also noticed that things currently downloading also show up as un-requested.

@kiranshila commented on GitHub (Sep 18, 2021): Very helpful! Thank you! Yeah the requested deal has a few more states that I missed. I also noticed that things *currently downloading* also show up as un-requested.
Author
Owner

@kiranshila commented on GitHub (Sep 19, 2021):

@VP-EN I found the bug that was causing the those issues, I forgot to pass in the bool that checks if the request was 4K. I also overhauled the response messages for the different media states. I'm finishing up these patches, I basically rewrote all the interaction flow control so now there is a single state machine that controls it, making the whole thing easier to modify instead of a ton of nested ifs.

@kiranshila commented on GitHub (Sep 19, 2021): @VP-EN I found the bug that was causing the those issues, I forgot to pass in the bool that checks if the request was 4K. I also overhauled the response messages for the different media states. I'm finishing up these patches, I basically rewrote all the interaction flow control so now there is a single state machine that controls it, making the whole thing easier to modify instead of a ton of nested ifs.
Author
Owner

@ghost commented on GitHub (Sep 19, 2021):

Sounds awesome 😁

@ghost commented on GitHub (Sep 19, 2021): Sounds awesome 😁
Author
Owner

@kiranshila commented on GitHub (Sep 19, 2021):

Ok whenever y'all get a chance, please give the latest build a try

@kiranshila commented on GitHub (Sep 19, 2021): Ok whenever y'all get a chance, please give the latest build a try
Author
Owner

@ghost commented on GitHub (Sep 20, 2021):

Finally had a few minutes to test it @kiranshila.

Tried the latest build as of the time of this post:
What works:

  • The error messages seem to work now!
  • If a movie already exists on Plex, it'll report it correctly: This is already available!
  • If a "regular" request is already registered in Overseerr, it'll correctly report: This is currently processing and should be available soon.
  • If a "4K" request is already registered in Overseerr, it'll correctly report: This is currently processing and should be available soon.

Issues:

  • Requesting a movie (regular profile) that's NOT present on Plex, results in nothing happening.
  • Requesting a movie (4K profile) that's NOT present on Plex, results in nothing happening.
  • Requesting a movie in 1080p, that's already present in 4K on Plex, results in nothing happening.
  • Requesting 4K on a movie that's already present in 1080p on Plex, results in nothing happening. Nothing apparent to see in logs.
  • Essentially can't request anything lol

Logs from the docker (nothing interesting I think):
https://0bin.net/paste/amJW0Tvh#1jJLbae8rfAHkdwWldo1xQqtuTR14ZFeNXDtGodjFjd

@ghost commented on GitHub (Sep 20, 2021): Finally had a few minutes to test it @kiranshila. Tried the latest build as of the time of this post: **What works:** - The error messages seem to work now! - If a movie already exists on Plex, it'll report it correctly: `This is already available!` - If a "regular" request is already registered in Overseerr, it'll correctly report: `This is currently processing and should be available soon.` - If a "4K" request is already registered in Overseerr, it'll correctly report: `This is currently processing and should be available soon.` **Issues:** - Requesting a movie (regular profile) that's NOT present on Plex, results in nothing happening. - Requesting a movie (4K profile) that's NOT present on Plex, results in nothing happening. - Requesting a movie in 1080p, that's already present in 4K on Plex, results in nothing happening. - Requesting 4K on a movie that's already present in 1080p on Plex, results in nothing happening. Nothing apparent to see in logs. - Essentially can't request anything lol Logs from the docker (nothing interesting I think): https://0bin.net/paste/amJW0Tvh#1jJLbae8rfAHkdwWldo1xQqtuTR14ZFeNXDtGodjFjd
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

@VP-EN Found the bugs, should be squashed now

@kiranshila commented on GitHub (Sep 21, 2021): @VP-EN Found the bugs, should be squashed now
Author
Owner

@ghost commented on GitHub (Sep 21, 2021):

Seems to work perfectly now 😄 I can atleast request movies now quite seamlessly.

One issue though.. In Overseerr, there's a setting called Allow Partial Series Requests.
This bot doesn't really "respect" that choice, since using /request series {term} will ask what season you want to request, and is able to circumvent this limitation set by the user in Overseerr settings.

It would be nice if the bot would check Overseerr if Allow Partial Series Requests is enabled or not:
https://i.imgur.com/7O2j0nf.png

If it's enabled, then it should be possible to request individual seasons, and if's it's disabled (not allowed) the only option should be All Seasons when requesting a series.

@ghost commented on GitHub (Sep 21, 2021): Seems to work perfectly now 😄 I can atleast request movies now quite seamlessly. One issue though.. In Overseerr, there's a setting called `Allow Partial Series Requests`. This bot doesn't really "respect" that choice, since using `/request series {term}` will ask what season you want to request, and is able to circumvent this limitation set by the user in Overseerr settings. It would be nice if the bot would check Overseerr if `Allow Partial Series Requests` is enabled or not: https://i.imgur.com/7O2j0nf.png If it's enabled, then it **should** be possible to request individual seasons, and if's it's disabled (not allowed) the only option should be `All Seasons` when requesting a series.
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

Oh interesting - didn't even know that option existed. Should be easy enough to implement.

@kiranshila commented on GitHub (Sep 21, 2021): Oh interesting - didn't even know that option existed. Should be easy enough to implement.
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

I'm surprised Overseerr doesn't throw an error when requesting partial seasons

@kiranshila commented on GitHub (Sep 21, 2021): I'm surprised Overseerr doesn't throw an error when requesting partial seasons
Author
Owner

@ghost commented on GitHub (Sep 21, 2021):

I'm surprised Overseerr doesn't throw an error when requesting partial seasons

Yeah kinda thought that would happen as well. Tested it, just in case lol 👍

Also, not sure if this is relevant and/or avoidable, but the docker instance crashes when a user inputs a imdb url..
I'm guessing it crashes when other urls are put in.. Haven't tested it that much, just did it by accident

@ghost commented on GitHub (Sep 21, 2021): > > > I'm surprised Overseerr doesn't throw an error when requesting partial seasons Yeah kinda thought that would happen as well. Tested it, just in case lol 👍 Also, not sure if this is relevant and/or avoidable, but the docker instance crashes when a user inputs a imdb url.. I'm guessing it crashes when other urls are put in.. Haven't tested it that much, just did it by accident
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

As like a query term?

@kiranshila commented on GitHub (Sep 21, 2021): As like a query term?
Author
Owner

@ghost commented on GitHub (Sep 21, 2021):

Yeah. Ah wait nvm, it doesn't happen anymore lol

@ghost commented on GitHub (Sep 21, 2021): Yeah. **Ah wait nvm, it doesn't happen anymore lol**
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

Buh? Was there an error?

@kiranshila commented on GitHub (Sep 21, 2021): Buh? Was there an error?
Author
Owner

@ghost commented on GitHub (Sep 21, 2021):

Nah, not even. I must've tried on a previous version, where it happened. Now when I put in a url, nothing seems to happen, other than a "no results" message. My mistake sorry 😄

@ghost commented on GitHub (Sep 21, 2021): Nah, not even. I must've tried on a previous version, where it happened. Now when I put in a url, nothing seems to happen, other than a "no results" message. My mistake sorry 😄
Author
Owner

@ghost commented on GitHub (Sep 21, 2021):

also just tested your latest commit, it does seem to register that I've disabled the Allow Partial Series Requests and now only gives me the choice of All Seasons 👍
I don't think I have anything more to add for now lol, other than my other feature request 😉

Woops, had this happen, requesting a series in 4K
(new series requested first on regular profile - went fine - then tried Request 4K, this came up in the logs)

Exception in thread "async-dispatch-1" java.lang.NullPointerException
        at clojure.lang.Numbers.ops(Numbers.java:1068)
        at clojure.lang.Numbers.dec(Numbers.java:145)
        at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99)
        at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96)
        at clojure.lang.RestFn.invoke(RestFn.java:486)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__                                                                             8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__                                                                             8301__auto____19833.invoke(interaction_state_machine.clj:102)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc                                                                             _macros.clj:978)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macro                                                                             s.clj:977)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeSt                                                                             atic(ioc_macros.clj:982)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(i                                                                             oc_macros.clj:980)
        at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_mac                                                                             ros.clj:991)
        at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153.                                                                             invoke(channels.clj:95)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown S                                                                             ource)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown                                                                              Source)
        at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055                                                                             $fn__3056.invoke(concurrent.clj:29)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "async-dispatch-5" java.lang.NullPointerException
        at clojure.lang.Numbers.ops(Numbers.java:1068)
        at clojure.lang.Numbers.dec(Numbers.java:145)
        at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99)
        at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96)
        at clojure.lang.RestFn.invoke(RestFn.java:486)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__                                                                             8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__                                                                             8301__auto____19833.invoke(interaction_state_machine.clj:102)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc                                                                             _macros.clj:978)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macro                                                                             s.clj:977)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeSt                                                                             atic(ioc_macros.clj:982)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(i                                                                             oc_macros.clj:980)
        at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_mac                                                                             ros.clj:991)
        at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153.                                                                             invoke(channels.clj:95)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown S                                                                             ource)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown                                                                              Source)
        at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055                                                                             $fn__3056.invoke(concurrent.clj:29)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "async-dispatch-3" java.lang.NullPointerException
        at clojure.lang.Numbers.ops(Numbers.java:1068)
        at clojure.lang.Numbers.dec(Numbers.java:145)
        at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99)
        at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96)
        at clojure.lang.RestFn.invoke(RestFn.java:486)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108)
        at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__8301__auto____19833.invoke(interaction_state_machine.clj:102)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:978)
        at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:977)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:982)
        at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:980)
        at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_macros.clj:991)
        at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153.invoke(channels.clj:95)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055$fn__3056.invoke(concurrent.clj:29)
        at clojure.lang.AFn.run(AFn.java:22)
        at java.base/java.lang.Thread.run(Unknown Source)
@ghost commented on GitHub (Sep 21, 2021): also just tested your latest commit, it does seem to register that I've disabled the `Allow Partial Series Requests` and now only gives me the choice of All Seasons 👍 I don't think I have anything more to add for now lol, other than my other [feature request](https://github.com/kiranshila/Doplarr/issues/22) 😉 **Woops, had this happen, requesting a series in 4K** (new series requested first on regular profile - went fine - then tried Request 4K, this came up in the logs) ``` Exception in thread "async-dispatch-1" java.lang.NullPointerException at clojure.lang.Numbers.ops(Numbers.java:1068) at clojure.lang.Numbers.dec(Numbers.java:145) at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99) at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96) at clojure.lang.RestFn.invoke(RestFn.java:486) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__ 8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__ 8301__auto____19833.invoke(interaction_state_machine.clj:102) at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc _macros.clj:978) at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macro s.clj:977) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeSt atic(ioc_macros.clj:982) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(i oc_macros.clj:980) at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_mac ros.clj:991) at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153. invoke(channels.clj:95) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown S ource) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055 $fn__3056.invoke(concurrent.clj:29) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.lang.Thread.run(Unknown Source) Exception in thread "async-dispatch-5" java.lang.NullPointerException at clojure.lang.Numbers.ops(Numbers.java:1068) at clojure.lang.Numbers.dec(Numbers.java:145) at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99) at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96) at clojure.lang.RestFn.invoke(RestFn.java:486) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__ 8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__ 8301__auto____19833.invoke(interaction_state_machine.clj:102) at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc _macros.clj:978) at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macro s.clj:977) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeSt atic(ioc_macros.clj:982) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(i oc_macros.clj:980) at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_mac ros.clj:991) at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153. invoke(channels.clj:95) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown S ource) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055 $fn__3056.invoke(concurrent.clj:29) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.lang.Thread.run(Unknown Source) Exception in thread "async-dispatch-3" java.lang.NullPointerException at clojure.lang.Numbers.ops(Numbers.java:1068) at clojure.lang.Numbers.dec(Numbers.java:145) at doplarr.overseerr$season_status.invokeStatic(overseerr.clj:99) at doplarr.overseerr$season_status.doInvoke(overseerr.clj:96) at clojure.lang.RestFn.invoke(RestFn.java:486) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__8301__auto____19833$fn__19835.invoke(interaction_state_machine.clj:108) at doplarr.interaction_state_machine$fn__19758$fn__19826$state_machine__8301__auto____19833.invoke(interaction_state_machine.clj:102) at clojure.core.async.impl.ioc_macros$run_state_machine.invokeStatic(ioc_macros.clj:978) at clojure.core.async.impl.ioc_macros$run_state_machine.invoke(ioc_macros.clj:977) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invokeStatic(ioc_macros.clj:982) at clojure.core.async.impl.ioc_macros$run_state_machine_wrapped.invoke(ioc_macros.clj:980) at clojure.core.async.impl.ioc_macros$take_BANG_$fn__8319.invoke(ioc_macros.clj:991) at clojure.core.async.impl.channels.ManyToManyChannel$fn__3152$fn__3153.invoke(channels.clj:95) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at clojure.core.async.impl.concurrent$counted_thread_factory$reify__3055$fn__3056.invoke(concurrent.clj:29) at clojure.lang.AFn.run(AFn.java:22) at java.base/java.lang.Thread.run(Unknown Source) ```
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

Yeah I just have it skip the season selection altogether if that is set.

I broke something in the direct sonarr backend though, I'm going to fix that, go through the tests again to make sure it's all still working, then publish.

@kiranshila commented on GitHub (Sep 21, 2021): Yeah I just have it skip the season selection altogether if that is set. I broke something in the direct sonarr backend though, I'm going to fix that, go through the tests again to make sure it's all still working, then publish.
Author
Owner

@kiranshila commented on GitHub (Sep 21, 2021):

Alright @VP-EN I fixed that NPE

@kiranshila commented on GitHub (Sep 21, 2021): Alright @VP-EN I fixed that NPE
Author
Owner

@ghost commented on GitHub (Sep 22, 2021):

Hey @kiranshila

Tried the latest commit as of this post

Tried requesting series again, and it says it has been requested.
But looking in Overseerr, there's nothing there.

E.g.

  • Requesting a series, The Second Husband (not present in either Sonarr or Plex)
  • Requesting it in 1080p, and afterwards in 4K
  • Nothing appears in Overseerr
  • Tried requesting it again - it says `This has been requested!.
  • Looking in Sonarr, the series is not present.

A bit different output from the logs this time:
https://0bin.net/paste/HbQjWEST#YvGXqe9O5a3Q9Ihch1KNh+dP0+k-ZitrN/j1nw7ZiCE

Tried removing the docker instance + image, and re-tried:

  • It still says the series has been requested, but still not present in either Sonarr or Overseerr
  • Tried requesting a totally different series, not present in either Sonarr, Overseerr or Plex, still says This has been requested!
  • Can you reproduce this?? Seems a bit weird to me
@ghost commented on GitHub (Sep 22, 2021): Hey @kiranshila Tried the latest commit as of this post Tried requesting series again, and it says it has been requested. But looking in Overseerr, there's nothing there. E.g. - Requesting a series, `The Second Husband` (not present in either Sonarr or Plex) - Requesting it in 1080p, and afterwards in 4K - Nothing appears in Overseerr - Tried requesting it again - it says `This has been requested!. - Looking in Sonarr, the series is not present. A bit different output from the logs this time: https://0bin.net/paste/HbQjWEST#YvGXqe9O5a3Q9Ihch1KNh+dP0+k-ZitrN/j1nw7ZiCE Tried removing the docker instance + image, and re-tried: - It still says the series has been requested, but still not present in either Sonarr or Overseerr - Tried requesting a totally different series, not present in either Sonarr, Overseerr or Plex, still says `This has been requested!` - Can you reproduce this?? Seems a bit weird to me
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

Yeah sorry, I was messing with the build and went to bed. There is a bug in the newer 1.11.0-alpha2 clojure - going back to alpha1 fixes parts of it. Also found a bug in the finding the status of a new series. Working it now.

@kiranshila commented on GitHub (Sep 22, 2021): Yeah sorry, I was messing with the build and went to bed. There is a bug in the newer 1.11.0-alpha2 clojure - going back to alpha1 fixes parts of it. Also found a bug in the finding the status of a new series. Working it now.
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

Alright @VP-EN I think I got that sorted. How many bugs could there possibly be haha

@kiranshila commented on GitHub (Sep 22, 2021): Alright @VP-EN I think I got that sorted. How many bugs could there possibly be haha
Author
Owner

@ghost commented on GitHub (Sep 22, 2021):

Tested latest commit as of this post

Requesting seems to work, except this weird error:

  • Requesting an item gives the message Requested! immediatly followed by "This has been requested!".
  • I'm guessing the This has been requested! message means This has already been requested!
  • Happening both to regular requests and 4K requests
    Looks like this:
    https://i.imgur.com/xSqJ42P.png
@ghost commented on GitHub (Sep 22, 2021): Tested latest commit as of this post Requesting seems to work, except this weird error: - Requesting an item gives the message `Requested!` immediatly followed by "This has been requested!". - I'm guessing the `This has been requested!` message means `This has already been requested!` - Happening both to regular requests and 4K requests Looks like this: https://i.imgur.com/xSqJ42P.png
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

@VP-EN That is on purpose! The Requested! message is the end of the request interaction while the This has been requested message is non-ephemeral (everyone on the channel can see it) to let everyone know something has been requested

@kiranshila commented on GitHub (Sep 22, 2021): @VP-EN That is on purpose! The `Requested!` message is the end of the request interaction while the `This has been requested` message is non-ephemeral (everyone on the channel can see it) to let everyone know something has been requested
Author
Owner

@ghost commented on GitHub (Sep 22, 2021):

Ah alright :D Then I think it works. I'll do a movie test in a few minutes, and update this post

Movie requests also work. So I guess it's all good, atleast from my short amount of testing 👍

@ghost commented on GitHub (Sep 22, 2021): Ah alright :D Then I think it works. I'll do a movie test in a few minutes, and update this post **Movie requests also work**. So I guess it's all good, atleast from my short amount of testing 👍
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

I wouldn't say short - we've been at this a while haha!

@kiranshila commented on GitHub (Sep 22, 2021): I wouldn't say short - we've been at this a while haha!
Author
Owner

@ghost commented on GitHub (Sep 22, 2021):

Haha yeah true 😆

@ghost commented on GitHub (Sep 22, 2021): Haha yeah true 😆
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

I'm going to do a few last tests with the direct api then publish the release!

@kiranshila commented on GitHub (Sep 22, 2021): I'm going to do a few last tests with the direct api then publish the release!
Author
Owner

@AstralDestiny commented on GitHub (Sep 22, 2021):

So not sure what I did wrong when trying it out but I don't see any slash commands not even greyed out stuff either. Bot is online but not seeing commands nor is it responding to any commands, I'm using it in container with docker.

@AstralDestiny commented on GitHub (Sep 22, 2021): So not sure what I did wrong when trying it out but I don't see any slash commands not even greyed out stuff either. Bot is online but not seeing commands nor is it responding to any commands, I'm using it in container with docker.
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

@AstralDestiny Sounds like a bot permissions issue

@kiranshila commented on GitHub (Sep 22, 2021): @AstralDestiny Sounds like a bot permissions issue
Author
Owner

@AstralDestiny commented on GitHub (Sep 22, 2021):

It has the Admin one that grants it all permissions so I only assume that's not an issue in the end
image

@AstralDestiny commented on GitHub (Sep 22, 2021): It has the Admin one that grants it all permissions so I only assume that's not an issue in the end ![image](https://user-images.githubusercontent.com/20157872/134441607-ccf3b1b2-334e-4104-8765-e9b1f7f357bb.png)
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

@AstralDestiny I wouldn't give the bot admin - as it mentions there, that is generally not a good idea.
What matters here is the OAuth2 permissions (how you invited the bot to your server). The important ones being applications.commands and bot

You shouldn't need to give the bot any permissions from the Bot tab - those don't impact slash commands.

@kiranshila commented on GitHub (Sep 22, 2021): @AstralDestiny I wouldn't give the bot admin - as it mentions there, that is generally not a good idea. What matters here is the OAuth2 permissions (how you invited the bot to your server). The important ones being `applications.commands` and `bot` You shouldn't need to give the bot any permissions from the `Bot` tab - those don't impact slash commands.
Author
Owner

@kiranshila commented on GitHub (Sep 22, 2021):

So when you invite the bot to your server it will say something like

image

@kiranshila commented on GitHub (Sep 22, 2021): So when you invite the bot to your server it will say something like ![image](https://user-images.githubusercontent.com/6305359/134441969-6dff1125-ff40-48e2-b107-583ce9ebe893.png)
Author
Owner

@AstralDestiny commented on GitHub (Sep 22, 2021):

Yeah I missed the part about OAuth my bad. Ahaha

Sorry about that.
I went through the steps of adding the bot via permissions and such and like didn't even notice I was supposed to do it via OAuth flow part.

@AstralDestiny commented on GitHub (Sep 22, 2021): Yeah I missed the part about OAuth my bad. Ahaha Sorry about that. I went through the steps of adding the bot via permissions and such and like didn't even notice I was supposed to do it via OAuth flow part.
Author
Owner

@AstralDestiny commented on GitHub (Sep 22, 2021):

I'm just laughing at myself I was blind.

@AstralDestiny commented on GitHub (Sep 22, 2021): I'm just laughing at myself I was blind.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Doplarr#5