From 4f5c39ba7ab5c8a6b6e2a092ffea4a78837e5c32 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Wed, 19 Apr 2023 19:32:55 +0200 Subject: [PATCH 01/10] fixed wrong image type --- src/types/configuration.ts | 15 ++++++--------- src/types/index.ts | 7 +++++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/types/configuration.ts b/src/types/configuration.ts index 231d3cc..af71bd9 100644 --- a/src/types/configuration.ts +++ b/src/types/configuration.ts @@ -1,15 +1,12 @@ -export interface Images { - base_url: string; - secure_base_url: string; - backdrop_sizes: BackdropSizes[]; - logo_sizes: LogoSizes[]; - poster_sizes: PosterSizes[]; - profile_sizes: ProfileSizes[]; - still_sizes: StillSizes[]; +export interface ImageConfiguration { + id: number, + backdrops: null, + logos: null, + posters: null } export interface Configuration { - images: Images; + images: ImageConfiguration; change_keys: ChangeKeys[]; } diff --git a/src/types/index.ts b/src/types/index.ts index 8432a50..7ad7255 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -202,3 +202,10 @@ export interface Image { vote_count: number; width: number; } + +export interface Images { + id: number, + backdrops: Image[], + logos: Image[], + posters: Image[], +} From a5acac981cb85e55ba0fe6f34e3271ba6d20994d Mon Sep 17 00:00:00 2001 From: DerPenz Date: Wed, 19 Apr 2023 20:12:09 +0200 Subject: [PATCH 02/10] support for most of the append_to_response options --- src/endpoints/movies.ts | 16 ++++++++++++++-- src/endpoints/tv-shows.ts | 17 +++++++++++++++-- src/types/options.ts | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 4 deletions(-) diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index f9c312f..22503cc 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -1,6 +1,8 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, + AppendToResponse, + AppendToResponseKeys, ChangeOptions, Credits, ExternalIds, @@ -33,8 +35,18 @@ export class MoviesEndpoint extends BaseEndpoint { super(accessToken); } - async details(id: number): Promise { - return await this.api.get(`${BASE_MOVIE}/${id}`); + async details( + id: number, + appendToResponse?: T + ) { + const options = { + append_to_response: appendToResponse ? appendToResponse.join(',') : undefined, + }; + + return await this.api.get>( + `${BASE_MOVIE}/${id}`, + options + ); } async alternativeTitles(id: number): Promise { diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index c1c3746..fd956c9 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -1,6 +1,8 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, + AppendToResponse, + AppendToResponseKeys, ChangeOptions, ContentRatings, Credits, @@ -35,8 +37,19 @@ export class TvShowsEndpoint extends BaseEndpoint { super(accessToken); } - async details(id: number): Promise { - return await this.api.get(`${BASE_TV}/${id}`); + async details( + id: number, + appendToResponse?: T + ) { + const options = { + append_to_response: appendToResponse + ? appendToResponse.join(',') + : undefined, + }; + return await this.api.get>( + `${BASE_TV}/${id}`, + options + ); } async alternativeTitles(id: number): Promise { diff --git a/src/types/options.ts b/src/types/options.ts index 13af8ff..e48c572 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -1,3 +1,13 @@ +import { + Credits, + Images, + Keywords, + Recommendations, + Reviews, + Translations, + Videos, +} from '.'; + export interface LanguageOption { language?: string; } @@ -9,3 +19,31 @@ export interface RegionOption { export interface PageOption { page?: number; } + +export type AppendToResponseKeys = + | 'images' + | 'videos' + | 'credits' + | 'recommendations' + | 'reviews' + | 'keywords'; + +export type AppendToResponse< + K, + T extends AppendToResponseKeys[] | undefined +> = K & + (T extends undefined + ? object + : T extends Array + ? ('credits' extends T[number] ? { credits: Omit } : object) & + ('videos' extends T[number] ? { videos: Omit } : object) & + ('images' extends T[number] ? { images: Omit } : object) & + ('recommendations' extends T[number] + ? { recommendations: Recommendations } + : object) & + ('reviews' extends T[number] ? { reviews: Omit } : object) & + ('reviews' extends T[number] + ? { reviews: Omit } + : object) & + ('keywords' extends T[number] ? { keywords: Omit } : object) + : never); From 5927f95f0a6f4fd2078be203d7827fd62e1f3929 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Wed, 19 Apr 2023 20:20:56 +0200 Subject: [PATCH 03/10] format & combined equal changes type --- src/endpoints/changes.ts | 14 +++++++------- src/endpoints/movies.ts | 13 ++++++------- src/endpoints/tv-shows.ts | 9 +++------ src/types/changes.ts | 24 +++++++++++++++++++++--- src/types/configuration.ts | 8 ++++---- src/types/index.ts | 8 ++++---- src/types/movies.ts | 18 ------------------ src/types/options.ts | 12 +++++++++--- src/types/tv-shows.ts | 18 ------------------ 9 files changed, 54 insertions(+), 70 deletions(-) diff --git a/src/endpoints/changes.ts b/src/endpoints/changes.ts index a4316b5..b7521de 100644 --- a/src/endpoints/changes.ts +++ b/src/endpoints/changes.ts @@ -1,20 +1,20 @@ import { BaseEndpoint } from './base'; -import { ChangeOptions, Changes } from '../types/changes'; +import { ChangeOptions, MediaChanges } from '../types/changes'; export class ChangeEndpoint extends BaseEndpoint { constructor(protected readonly accessToken: string) { super(accessToken); } - async movies(options?: ChangeOptions): Promise { - return await this.api.get(`/movie/changes`, options); + async movies(options?: ChangeOptions): Promise { + return await this.api.get(`/movie/changes`, options); } - async tvShows(options?: ChangeOptions): Promise { - return await this.api.get(`/tv/changes`, options); + async tvShows(options?: ChangeOptions): Promise { + return await this.api.get(`/tv/changes`, options); } - async person(options?: ChangeOptions): Promise { - return await this.api.get(`/person/change`, options); + async person(options?: ChangeOptions): Promise { + return await this.api.get(`/person/change`, options); } } diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index 22503cc..8ac18d5 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -4,13 +4,13 @@ import { AppendToResponse, AppendToResponseKeys, ChangeOptions, + Changes, Credits, ExternalIds, Images, Keywords, LanguageOption, LatestMovie, - MovieChanges, MovieDetails, MovieLists, MoviesPlayingNow, @@ -40,7 +40,9 @@ export class MoviesEndpoint extends BaseEndpoint { appendToResponse?: T ) { const options = { - append_to_response: appendToResponse ? appendToResponse.join(',') : undefined, + append_to_response: appendToResponse + ? appendToResponse.join(',') + : undefined, }; return await this.api.get>( @@ -55,11 +57,8 @@ export class MoviesEndpoint extends BaseEndpoint { ); } - async changes(id: number, options?: ChangeOptions): Promise { - return await this.api.get( - `${BASE_MOVIE}/${id}/changes`, - options - ); + async changes(id: number, options?: ChangeOptions): Promise { + return await this.api.get(`${BASE_MOVIE}/${id}/changes`, options); } async credits(id: number): Promise { diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index fd956c9..71777ea 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -4,6 +4,7 @@ import { AppendToResponse, AppendToResponseKeys, ChangeOptions, + Changes, ContentRatings, Credits, EpisodeGroups, @@ -23,7 +24,6 @@ import { SimilarTvShows, TopRatedTvShows, Translations, - TvShowChanges, TvShowDetails, TvShowsAiringToday, Videos, @@ -58,11 +58,8 @@ export class TvShowsEndpoint extends BaseEndpoint { ); } - async changes(id: number, options?: ChangeOptions): Promise { - return await this.api.get( - `${BASE_TV}/${id}/changes`, - options - ); + async changes(id: number, options?: ChangeOptions): Promise { + return await this.api.get(`${BASE_TV}/${id}/changes`, options); } async contentRatings(id: number): Promise { diff --git a/src/types/changes.ts b/src/types/changes.ts index b15b7c5..3c5f786 100644 --- a/src/types/changes.ts +++ b/src/types/changes.ts @@ -1,10 +1,10 @@ -export interface Change { +export interface MediaChange { id: number; adult: boolean | undefined; } -export interface Changes { - results: Change[]; +export interface MediaChanges { + results: MediaChange[]; page: number; total_pages: number; total_results: number; @@ -15,3 +15,21 @@ export interface ChangeOptions { start_date?: string; page?: number; } + +export interface Changes { + changes: Change[]; +} + +export interface Change { + key: string; + items: ChangeItem[]; +} + +export interface ChangeItem { + id: string; + action: string; + time: string; + value: Array; + iso_639_1: string; + original_value: Array; +} diff --git a/src/types/configuration.ts b/src/types/configuration.ts index af71bd9..3d2b070 100644 --- a/src/types/configuration.ts +++ b/src/types/configuration.ts @@ -1,8 +1,8 @@ export interface ImageConfiguration { - id: number, - backdrops: null, - logos: null, - posters: null + id: number; + backdrops: null; + logos: null; + posters: null; } export interface Configuration { diff --git a/src/types/index.ts b/src/types/index.ts index 7ad7255..d502ff5 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -204,8 +204,8 @@ export interface Image { } export interface Images { - id: number, - backdrops: Image[], - logos: Image[], - posters: Image[], + id: number; + backdrops: Image[]; + logos: Image[]; + posters: Image[]; } diff --git a/src/types/movies.ts b/src/types/movies.ts index e08c0a5..77789b9 100644 --- a/src/types/movies.ts +++ b/src/types/movies.ts @@ -94,24 +94,6 @@ export interface MovieLists { total_results: number; } -export interface MovieChangeItem { - id: string; - action: string; - time: string; - iso_639_1: string; - value: string; - original_value: string; -} - -export interface MovieChange { - key: string; - items: MovieChangeItem[]; -} - -export interface MovieChanges { - changes: MovieChange[]; -} - export interface LatestMovie { adult: boolean; backdrop_path?: string; diff --git a/src/types/options.ts b/src/types/options.ts index e48c572..085fe63 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -35,15 +35,21 @@ export type AppendToResponse< (T extends undefined ? object : T extends Array - ? ('credits' extends T[number] ? { credits: Omit } : object) & + ? ('credits' extends T[number] + ? { credits: Omit } + : object) & ('videos' extends T[number] ? { videos: Omit } : object) & ('images' extends T[number] ? { images: Omit } : object) & ('recommendations' extends T[number] ? { recommendations: Recommendations } : object) & - ('reviews' extends T[number] ? { reviews: Omit } : object) & + ('reviews' extends T[number] + ? { reviews: Omit } + : object) & ('reviews' extends T[number] ? { reviews: Omit } : object) & - ('keywords' extends T[number] ? { keywords: Omit } : object) + ('keywords' extends T[number] + ? { keywords: Omit } + : object) : never); diff --git a/src/types/tv-shows.ts b/src/types/tv-shows.ts index 375dc50..a38f533 100644 --- a/src/types/tv-shows.ts +++ b/src/types/tv-shows.ts @@ -134,24 +134,6 @@ export interface SeasonDetails { season_number: number; } -export interface TvShowItem { - id: string; - action: string; - time: string; - value: Array; - iso_639_1: string; - original_value: Array; -} - -export interface TvShowChange { - key: string; - items: TvShowItem[]; -} - -export interface TvShowChanges { - changes: TvShowChange[]; -} - export interface Network { id: number; logo_path: string; From cc416467988f53258b02bdc9a8c0bb08f61588b2 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Wed, 19 Apr 2023 20:23:16 +0200 Subject: [PATCH 04/10] append_to_response changes support --- src/types/options.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/types/options.ts b/src/types/options.ts index 085fe63..d13dee9 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -1,4 +1,5 @@ import { + Changes, Credits, Images, Keywords, @@ -26,6 +27,7 @@ export type AppendToResponseKeys = | 'credits' | 'recommendations' | 'reviews' + | 'changes' | 'keywords'; export type AppendToResponse< @@ -49,6 +51,9 @@ export type AppendToResponse< ('reviews' extends T[number] ? { reviews: Omit } : object) & + ('changes' extends T[number] + ? { changes: Omit } + : object) & ('keywords' extends T[number] ? { keywords: Omit } : object) From cf7a561e3f9ee9e8d144711fa4c23eabb2a400c6 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Fri, 21 Apr 2023 20:59:12 +0200 Subject: [PATCH 05/10] full support for /movie and /tv --- src/endpoints/movies.ts | 6 +-- src/endpoints/tv-shows.ts | 6 +-- src/types/index.ts | 1 + src/types/options.ts | 79 ++++++++++++++++++++++++++++++++++++++- 4 files changed, 84 insertions(+), 8 deletions(-) diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index 8ac18d5..6d5c60f 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -2,7 +2,7 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, AppendToResponse, - AppendToResponseKeys, + AppendToResponseMovieKeys, ChangeOptions, Changes, Credits, @@ -35,7 +35,7 @@ export class MoviesEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { @@ -45,7 +45,7 @@ export class MoviesEndpoint extends BaseEndpoint { : undefined, }; - return await this.api.get>( + return await this.api.get>( `${BASE_MOVIE}/${id}`, options ); diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index 71777ea..f0d21fb 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -2,7 +2,7 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, AppendToResponse, - AppendToResponseKeys, + AppendToResponseTvKeys, ChangeOptions, Changes, ContentRatings, @@ -37,7 +37,7 @@ export class TvShowsEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { @@ -46,7 +46,7 @@ export class TvShowsEndpoint extends BaseEndpoint { ? appendToResponse.join(',') : undefined, }; - return await this.api.get>( + return await this.api.get>( `${BASE_TV}/${id}`, options ); diff --git a/src/types/index.ts b/src/types/index.ts index d502ff5..292685d 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -128,6 +128,7 @@ export interface ContentRatings { } export interface ContentRatingsResult { + descriptor: unknown[]; iso_3166_1: string; rating: string; } diff --git a/src/types/options.ts b/src/types/options.ts index d13dee9..24a8e84 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -1,12 +1,22 @@ import { + AlternativeTitles, Changes, + ContentRatings, Credits, + EpisodeGroups, + ExternalIds, Images, Keywords, + MovieLists, Recommendations, + ReleaseDates, Reviews, + ScreenedTheatrically, + SimilarMovies, + SimilarTvShows, Translations, Videos, + WatchProviders, } from '.'; export interface LanguageOption { @@ -21,18 +31,50 @@ export interface PageOption { page?: number; } -export type AppendToResponseKeys = +export type AppendToResponseMovieKeys = | 'images' | 'videos' | 'credits' | 'recommendations' | 'reviews' | 'changes' + | 'similar' + | 'lists' + | 'release_dates' + | 'alternative_titles' + | 'external_ids' + | 'translations' + | 'watch/providers' | 'keywords'; +export type AppendToResponseTvKeys = + | 'content_ratings' + | 'images' + | 'videos' + | 'credits' + | 'recommendations' + | 'reviews' + | 'changes' + | 'similar' + | 'alternative_titles' + | 'external_ids' + | 'translations' + | 'watch/providers' + | 'aggregate_credits' + | 'episode_groups' + | 'screened_theatrically' + | 'keywords'; + +type AppendToResponseAllKeys = + | AppendToResponseTvKeys + | AppendToResponseMovieKeys; + +export type AppendToResponseMediaType = 'movie' | 'tvShow'; + export type AppendToResponse< K, - T extends AppendToResponseKeys[] | undefined + T extends AppendToResponseAllKeys[] | undefined, + Media extends AppendToResponseMediaType > = K & (T extends undefined ? object @@ -56,5 +98,38 @@ export type AppendToResponse< : object) & ('keywords' extends T[number] ? { keywords: Omit } + : object) & + ('lists' extends T[number] + ? { lists: Omit } + : object) & + ('release_dates' extends T[number] + ? { release_dates: Omit } + : object) & + ('alternative_titles' extends T[number] + ? { alternative_titles: Omit } + : object) & + ('external_ids' extends T[number] + ? { external_ids: Omit } + : object) & + ('translations' extends T[number] + ? { translations: Omit } + : object) & + ('watch/providers' extends T[number] + ? { 'watch/providers': Omit } + : object) & + ('aggregate_credits' extends T[number] + ? { aggregate_credits: Omit } + : object) & + ('episode_groups' extends T[number] + ? { episode_groups: Omit } + : object) & + ('screened_theatrically' extends T[number] + ? { screened_theatrically: Omit } + : object) & + ('similar' extends T[number] + ? { similar: Media extends 'movie' ? SimilarMovies : SimilarTvShows } + : object) & + ('content_ratings' extends T[number] + ? { content_ratings: Omit } : object) : never); From 7d96ad04d16ec1847b7c78564067203629d8b59a Mon Sep 17 00:00:00 2001 From: DerPenz Date: Sat, 22 Apr 2023 15:33:28 +0200 Subject: [PATCH 06/10] full support for /person --- src/endpoints/people.ts | 37 ++++++++++++++++--------- src/types/options.ts | 60 ++++++++++++++++++++++++++++++++++++----- src/types/people.ts | 11 +++++--- 3 files changed, 86 insertions(+), 22 deletions(-) diff --git a/src/endpoints/people.ts b/src/endpoints/people.ts index 26742ce..e50e067 100644 --- a/src/endpoints/people.ts +++ b/src/endpoints/people.ts @@ -1,12 +1,14 @@ import { + AppendToResponse, + AppendToResponsePersonKeys, ChangeOptions, ExternalIds, - Image, PageOption, - PeopleTranslations, + PeopleImages, + PersonTranslations, PersonChanges, PersonCombinedCredits, - PersonDetail, + PersonDetails, PersonMovieCredit, PersonTvShowCredit, PopularPersons, @@ -21,8 +23,19 @@ export class PeopleEndpoint extends BaseEndpoint { super(accessToken); } - async details(id: number): Promise { - return await this.api.get(`${BASE_PERSON}/${id}`); + async details( + id: number, + appendToResponse?: T + ) { + const options = { + append_to_response: appendToResponse + ? appendToResponse.join(',') + : undefined, + }; + return await this.api.get>( + `${BASE_PERSON}/${id}`, + options + ); } async changes(id: number, options?: ChangeOptions): Promise { @@ -54,10 +67,8 @@ export class PeopleEndpoint extends BaseEndpoint { return await this.api.get(`${BASE_PERSON}/${id}/external_ids`); } - async images(id: number): Promise<{ id: number; profiles: Image[] }> { - return await this.api.get<{ id: number; profiles: Image[] }>( - `${BASE_PERSON}/${id}/images` - ); + async images(id: number): Promise { + return await this.api.get(`${BASE_PERSON}/${id}/images`); } async taggedImages(id: number, options?: PageOption): Promise { @@ -67,14 +78,14 @@ export class PeopleEndpoint extends BaseEndpoint { ); } - async translation(id: number): Promise { - return await this.api.get( + async translation(id: number): Promise { + return await this.api.get( `${BASE_PERSON}/${id}/translations` ); } - async latest(): Promise { - return await this.api.get(`${BASE_PERSON}/latest`); + async latest(): Promise { + return await this.api.get(`${BASE_PERSON}/latest`); } async popular(options?: PageOption): Promise { diff --git a/src/types/options.ts b/src/types/options.ts index 24a8e84..c2aba2a 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -8,12 +8,19 @@ import { Images, Keywords, MovieLists, + PeopleImages, + PersonTranslations, + PersonChanges, + PersonCombinedCredits, + PersonMovieCredit, + PersonTvShowCredit, Recommendations, ReleaseDates, Reviews, ScreenedTheatrically, SimilarMovies, SimilarTvShows, + TaggedImages, Translations, Videos, WatchProviders, @@ -65,11 +72,22 @@ export type AppendToResponseTvKeys = | 'screened_theatrically' | 'keywords'; +export type AppendToResponsePersonKeys = + | 'images' + | 'changes' + | 'movie_credits' + | 'tv_credits' + | 'combined_credits' + | 'external_ids' + | 'tagged_images' + | 'translations'; + type AppendToResponseAllKeys = | AppendToResponseTvKeys - | AppendToResponseMovieKeys; + | AppendToResponseMovieKeys + | AppendToResponsePersonKeys; -export type AppendToResponseMediaType = 'movie' | 'tvShow'; +export type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person'; export type AppendToResponse< K, @@ -83,7 +101,14 @@ export type AppendToResponse< ? { credits: Omit } : object) & ('videos' extends T[number] ? { videos: Omit } : object) & - ('images' extends T[number] ? { images: Omit } : object) & + ('images' extends T[number] + ? { + images: Omit< + Media extends 'person' ? PeopleImages : Images, + 'id' + >; + } + : object) & ('recommendations' extends T[number] ? { recommendations: Recommendations } : object) & @@ -94,7 +119,12 @@ export type AppendToResponse< ? { reviews: Omit } : object) & ('changes' extends T[number] - ? { changes: Omit } + ? { + changes: Omit< + Media extends 'person' ? PersonChanges : Changes, + 'id' + >; + } : object) & ('keywords' extends T[number] ? { keywords: Omit } @@ -112,7 +142,7 @@ export type AppendToResponse< ? { external_ids: Omit } : object) & ('translations' extends T[number] - ? { translations: Omit } + ? { translations: Omit } : object) & ('watch/providers' extends T[number] ? { 'watch/providers': Omit } @@ -127,9 +157,27 @@ export type AppendToResponse< ? { screened_theatrically: Omit } : object) & ('similar' extends T[number] - ? { similar: Media extends 'movie' ? SimilarMovies : SimilarTvShows } + ? { + similar: Media extends 'movie' + ? SimilarMovies + : Media extends 'tvShow' + ? SimilarTvShows + : unknown; + } : object) & ('content_ratings' extends T[number] ? { content_ratings: Omit } + : object) & + ('movie_credits' extends T[number] + ? { movie_credits: Omit } + : object) & + ('tv_credits' extends T[number] + ? { tv_credits: Omit } + : object) & + ('combined_credits' extends T[number] + ? { combined_credits: Omit } + : object) & + ('tagged_images' extends T[number] + ? { tagged_images: TaggedImages } : object) : never); diff --git a/src/types/people.ts b/src/types/people.ts index 56be4ef..333c1ba 100644 --- a/src/types/people.ts +++ b/src/types/people.ts @@ -1,4 +1,4 @@ -import { Movie, Person, TV } from '.'; +import { Image, Movie, Person, TV } from '.'; interface Cast { character: string; @@ -79,7 +79,7 @@ export interface PersonCombinedCredits { id: number; } -export interface PersonDetail { +export interface PersonDetails { birthday: string; known_for_department: string; deathday: string; @@ -120,6 +120,11 @@ export interface PopularPersons { total_pages: number; } +export interface PeopleImages { + id: number; + profiles: Image[]; +} + export interface TaggedImage { aspect_ratio: number; file_path: string; @@ -141,7 +146,7 @@ export interface TaggedImages { total_pages: number; } -export interface PeopleTranslations { +export interface PersonTranslations { id: number; translations: { iso_3166_1: string; From bb5e9ad50f486acdc6bc69c4041e165660ebaf73 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Sat, 22 Apr 2023 15:44:17 +0200 Subject: [PATCH 07/10] fixed bug with undefined second parameter --- src/endpoints/movies.ts | 2 +- src/endpoints/people.ts | 2 +- src/endpoints/tv-shows.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index 6d5c60f..2db92c0 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -35,7 +35,7 @@ export class MoviesEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { diff --git a/src/endpoints/people.ts b/src/endpoints/people.ts index e50e067..7689b03 100644 --- a/src/endpoints/people.ts +++ b/src/endpoints/people.ts @@ -23,7 +23,7 @@ export class PeopleEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index f0d21fb..65b0508 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -37,7 +37,7 @@ export class TvShowsEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { From 0a7590e989197d0b2668799caf822e45401f5912 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Thu, 27 Apr 2023 11:27:12 +0200 Subject: [PATCH 08/10] fixed grammar mistakes --- src/endpoints/movies.ts | 4 ++-- src/endpoints/people.ts | 4 ++-- src/endpoints/tv-shows.ts | 4 ++-- src/types/options.ts | 12 ++++++------ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/endpoints/movies.ts b/src/endpoints/movies.ts index 2db92c0..70d0734 100644 --- a/src/endpoints/movies.ts +++ b/src/endpoints/movies.ts @@ -2,7 +2,7 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, AppendToResponse, - AppendToResponseMovieKeys, + AppendToResponseMovieKey, ChangeOptions, Changes, Credits, @@ -35,7 +35,7 @@ export class MoviesEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { diff --git a/src/endpoints/people.ts b/src/endpoints/people.ts index 7689b03..0d4aa70 100644 --- a/src/endpoints/people.ts +++ b/src/endpoints/people.ts @@ -1,6 +1,6 @@ import { AppendToResponse, - AppendToResponsePersonKeys, + AppendToResponsePersonKey, ChangeOptions, ExternalIds, PageOption, @@ -23,7 +23,7 @@ export class PeopleEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { diff --git a/src/endpoints/tv-shows.ts b/src/endpoints/tv-shows.ts index 65b0508..738d4e2 100644 --- a/src/endpoints/tv-shows.ts +++ b/src/endpoints/tv-shows.ts @@ -2,7 +2,7 @@ import { BaseEndpoint } from './base'; import { AlternativeTitles, AppendToResponse, - AppendToResponseTvKeys, + AppendToResponseTvKey, ChangeOptions, Changes, ContentRatings, @@ -37,7 +37,7 @@ export class TvShowsEndpoint extends BaseEndpoint { super(accessToken); } - async details( + async details( id: number, appendToResponse?: T ) { diff --git a/src/types/options.ts b/src/types/options.ts index c2aba2a..af8f924 100644 --- a/src/types/options.ts +++ b/src/types/options.ts @@ -38,7 +38,7 @@ export interface PageOption { page?: number; } -export type AppendToResponseMovieKeys = +export type AppendToResponseMovieKey = | 'images' | 'videos' | 'credits' @@ -54,7 +54,7 @@ export type AppendToResponseMovieKeys = | 'watch/providers' | 'keywords'; -export type AppendToResponseTvKeys = +export type AppendToResponseTvKey = | 'content_ratings' | 'images' | 'videos' @@ -72,7 +72,7 @@ export type AppendToResponseTvKeys = | 'screened_theatrically' | 'keywords'; -export type AppendToResponsePersonKeys = +export type AppendToResponsePersonKey = | 'images' | 'changes' | 'movie_credits' @@ -83,9 +83,9 @@ export type AppendToResponsePersonKeys = | 'translations'; type AppendToResponseAllKeys = - | AppendToResponseTvKeys - | AppendToResponseMovieKeys - | AppendToResponsePersonKeys; + | AppendToResponseTvKey + | AppendToResponseMovieKey + | AppendToResponsePersonKey; export type AppendToResponseMediaType = 'movie' | 'tvShow' | 'person'; From 738a0a7a24082e15fd4c5966c96c77730de732d5 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Thu, 27 Apr 2023 11:30:34 +0200 Subject: [PATCH 09/10] version: 1.1.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d74362e..59cc790 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tmdb-ts", - "version": "0.2.0", + "version": "1.1.0", "description": "TMDB v3 library wrapper", "main": "dist/index.js", "types": "dist/index.d.ts", From 4b88e795f11294ac359bba54dfac02d4a2b5ee93 Mon Sep 17 00:00:00 2001 From: DerPenz Date: Sun, 30 Apr 2023 18:18:57 +0200 Subject: [PATCH 10/10] fixed wrong ImageConfiguration interface --- src/types/configuration.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/types/configuration.ts b/src/types/configuration.ts index 3d2b070..f87686d 100644 --- a/src/types/configuration.ts +++ b/src/types/configuration.ts @@ -1,8 +1,11 @@ export interface ImageConfiguration { - id: number; - backdrops: null; - logos: null; - posters: null; + base_url: string; + secure_base_url: string; + backdrop_sizes: BackdropSizes[]; + logo_sizes: LogoSizes[]; + poster_sizes: PosterSizes[]; + profile_sizes: ProfileSizes[]; + still_sizes: StillSizes[]; } export interface Configuration {