nosmokingbandit / Watcher3

Other
279 stars 60 forks source link

API Documentation Needs Updating!! #231

Open d8ahazard opened 6 years ago

d8ahazard commented 6 years ago

Hey!

I'm the developer of Flex TV, a Google Assistant Action that allows voice integration with Plex Media Server, as well as all of the popular "Fetcher" apps.

I'd like to add watcher support to my application, but it seems as if your API documentation is a little old?

Would it be possible to get this updated so I can write a PHP wrapper for it and get it integrated into my project?

Specifically, I need to know the endpoints and params required to:

  1. Retrieve a full list of wanted media.
  2. Retrieve a list of quality profiles supported by the app for user selection, as well as the default/selected quality profile.
  3. Add a new movie to Watcher.
  4. Trigger a search for the movie if #3 doesn't fire the command automagically.

If this documentation exists somewhere and I'm just not finding it, kindly point me in the right direction and I'll shut up.

Thanks!!

nosmokingbandit commented 6 years ago

I don't pay much attention to the wiki, but the documentation in the api module is always up to date.

https://github.com/nosmokingbandit/Watcher3/blob/master/core/api.py

As far as your requirements...

1) You can call liststatus and filter through the results afterward. I haven't touched php in ages (and quite frankly I'd like to keep it that way), but that should be easy enough to script. I do like the idea of adding arbitrary filters to the request. I'll look at adding that so you can pass ?status=wanted or any other filter you want.

2) Call getconfig. It will return the config as a JSON object and you can find quality profiles in config['Quality']['Profiles']. This section will contain profiles names as keys, and all of their settings as nested key:val pairs where "default": true would indicate the default profile. So you'd look at config['Quality']['Profiles']['MyQualityProfile']['default'] for the bool.

3) addmovie and pass either imdb # (with tt like tt1234567) or tmdb # as ?imdbid=tt1234567 with the desired quality profile as ?quality=MyProfile

4) This does not exist. It follows the user's settings for whether or not they want to search immediately after adding or not. I can add a method to force a search easily enough.

I'm always happy to expand the api to help other developers, so don't be shy about asking. I'll start work on the points I mentioned and let you know when I push the commit so you can check the endpoints and params.

nosmokingbandit commented 6 years ago

9b1a3570bc005f97be1b20d6ab80d6f6f82bbf41

This commit addresses point 1. The documentation in the api module itself explains the changes fairly well. For your specific request you can no send /api/apikey=KEY&mode=liststatus&status=Wanted

d8ahazard commented 6 years ago

Awesome, thanks.

Another quick api question as I'm starting to write the wrapper...

"addmovie" allows TMDB or IMDB ID to add a film...does this work with removemovie, or is it only IMDB ID?

On Tue, Mar 27, 2018 at 5:55 PM, nosmokingbandit notifications@github.com wrote:

9b1a357 https://github.com/nosmokingbandit/Watcher3/commit/9b1a3570bc005f97be1b20d6ab80d6f6f82bbf41

This commit addresses point 1. The documentation in the api module itself explains the changes fairly well. For your specific request you can no send /api/apikey=KEY&mode=liststatus&status=Wanted

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nosmokingbandit/Watcher3/issues/231#issuecomment-376702253, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjuNDs2X961qj1J_fmJQ4x8ihFy1sFFks5tisNrgaJpZM4S5Y9z .

d8ahazard commented 6 years ago

One more - is there a way to get images from /posters without needing to auth first? I'd expect to be able to attach ?apikey=xxx to the URL and have it load.

Similarly - do you have fanart stored?

On Wed, Mar 28, 2018 at 9:17 AM, Ben K. d8ahazard@gmail.com wrote:

Awesome, thanks.

Another quick api question as I'm starting to write the wrapper...

"addmovie" allows TMDB or IMDB ID to add a film...does this work with removemovie, or is it only IMDB ID?

On Tue, Mar 27, 2018 at 5:55 PM, nosmokingbandit <notifications@github.com

wrote:

9b1a357 https://github.com/nosmokingbandit/Watcher3/commit/9b1a3570bc005f97be1b20d6ab80d6f6f82bbf41

This commit addresses point 1. The documentation in the api module itself explains the changes fairly well. For your specific request you can no send /api/apikey=KEY&mode=liststatus&status=Wanted

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nosmokingbandit/Watcher3/issues/231#issuecomment-376702253, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjuNDs2X961qj1J_fmJQ4x8ihFy1sFFks5tisNrgaJpZM4S5Y9z .

nosmokingbandit commented 6 years ago

de484a3b05a9de2fc3aa58d6826171d1995dacc8

You can get a poster with mode=poster&imdbid=tt0000000

I don't keep fan art, just the poster image.

Movies are managed internally using the imdb id#, so that is required for certain requests. This is simply because NewzNab uses imdb to catalog movies and it makes everything easier for me. Adding a movie requires both imdb and tmdb since I use tmdb for metadata, so it doesn't matter what the user passes I have to request the complimentary ID from tmdb anyway.