Compare commits
1 Commits
preview-mo
...
preview-tm
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74b6d793a3 |
@@ -1,5 +1,6 @@
|
|||||||
import ExternalAPI from '@server/api/externalapi';
|
import ExternalAPI from '@server/api/externalapi';
|
||||||
import cacheManager from '@server/lib/cache';
|
import cacheManager from '@server/lib/cache';
|
||||||
|
import { getSettings } from '@server/lib/settings';
|
||||||
import { sortBy } from 'lodash';
|
import { sortBy } from 'lodash';
|
||||||
import type {
|
import type {
|
||||||
TmdbCollection,
|
TmdbCollection,
|
||||||
@@ -99,6 +100,7 @@ interface DiscoverTvOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class TheMovieDb extends ExternalAPI {
|
class TheMovieDb extends ExternalAPI {
|
||||||
|
private locale: string;
|
||||||
private discoverRegion?: string;
|
private discoverRegion?: string;
|
||||||
private originalLanguage?: string;
|
private originalLanguage?: string;
|
||||||
constructor({
|
constructor({
|
||||||
@@ -118,6 +120,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
this.locale = getSettings().main?.locale || 'en';
|
||||||
this.discoverRegion = discoverRegion;
|
this.discoverRegion = discoverRegion;
|
||||||
this.originalLanguage = originalLanguage;
|
this.originalLanguage = originalLanguage;
|
||||||
}
|
}
|
||||||
@@ -126,7 +129,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
query,
|
query,
|
||||||
page = 1,
|
page = 1,
|
||||||
includeAdult = false,
|
includeAdult = false,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: SearchOptions): Promise<TmdbSearchMultiResponse> => {
|
}: SearchOptions): Promise<TmdbSearchMultiResponse> => {
|
||||||
try {
|
try {
|
||||||
const data = await this.get<TmdbSearchMultiResponse>('/search/multi', {
|
const data = await this.get<TmdbSearchMultiResponse>('/search/multi', {
|
||||||
@@ -151,7 +154,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
query,
|
query,
|
||||||
page = 1,
|
page = 1,
|
||||||
includeAdult = false,
|
includeAdult = false,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
year,
|
year,
|
||||||
}: SingleSearchOptions): Promise<TmdbSearchMovieResponse> => {
|
}: SingleSearchOptions): Promise<TmdbSearchMovieResponse> => {
|
||||||
try {
|
try {
|
||||||
@@ -178,7 +181,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
query,
|
query,
|
||||||
page = 1,
|
page = 1,
|
||||||
includeAdult = false,
|
includeAdult = false,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
year,
|
year,
|
||||||
}: SingleSearchOptions): Promise<TmdbSearchTvResponse> => {
|
}: SingleSearchOptions): Promise<TmdbSearchTvResponse> => {
|
||||||
try {
|
try {
|
||||||
@@ -203,7 +206,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public getPerson = async ({
|
public getPerson = async ({
|
||||||
personId,
|
personId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
personId: number;
|
personId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -221,7 +224,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public getPersonCombinedCredits = async ({
|
public getPersonCombinedCredits = async ({
|
||||||
personId,
|
personId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
personId: number;
|
personId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -244,7 +247,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public getMovie = async ({
|
public getMovie = async ({
|
||||||
movieId,
|
movieId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
movieId: number;
|
movieId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -269,7 +272,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public getTvShow = async ({
|
public getTvShow = async ({
|
||||||
tvId,
|
tvId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
tvId: number;
|
tvId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -319,7 +322,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getMovieRecommendations({
|
public async getMovieRecommendations({
|
||||||
movieId,
|
movieId,
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
movieId: number;
|
movieId: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
@@ -343,7 +346,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getMovieSimilar({
|
public async getMovieSimilar({
|
||||||
movieId,
|
movieId,
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
movieId: number;
|
movieId: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
@@ -367,7 +370,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getMoviesByKeyword({
|
public async getMoviesByKeyword({
|
||||||
keywordId,
|
keywordId,
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
keywordId: number;
|
keywordId: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
@@ -391,7 +394,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getTvRecommendations({
|
public async getTvRecommendations({
|
||||||
tvId,
|
tvId,
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
tvId: number;
|
tvId: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
@@ -417,7 +420,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getTvSimilar({
|
public async getTvSimilar({
|
||||||
tvId,
|
tvId,
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
tvId: number;
|
tvId: number;
|
||||||
page?: number;
|
page?: number;
|
||||||
@@ -439,7 +442,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
sortBy = 'popularity.desc',
|
sortBy = 'popularity.desc',
|
||||||
page = 1,
|
page = 1,
|
||||||
includeAdult = false,
|
includeAdult = false,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
primaryReleaseDateGte,
|
primaryReleaseDateGte,
|
||||||
primaryReleaseDateLte,
|
primaryReleaseDateLte,
|
||||||
originalLanguage,
|
originalLanguage,
|
||||||
@@ -510,7 +513,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public getDiscoverTv = async ({
|
public getDiscoverTv = async ({
|
||||||
sortBy = 'popularity.desc',
|
sortBy = 'popularity.desc',
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
firstAirDateGte,
|
firstAirDateGte,
|
||||||
firstAirDateLte,
|
firstAirDateLte,
|
||||||
includeEmptyReleaseDate = false,
|
includeEmptyReleaseDate = false,
|
||||||
@@ -585,7 +588,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public getUpcomingMovies = async ({
|
public getUpcomingMovies = async ({
|
||||||
page = 1,
|
page = 1,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
page: number;
|
page: number;
|
||||||
language: string;
|
language: string;
|
||||||
@@ -610,7 +613,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public getAllTrending = async ({
|
public getAllTrending = async ({
|
||||||
page = 1,
|
page = 1,
|
||||||
timeWindow = 'day',
|
timeWindow = 'day',
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
page?: number;
|
page?: number;
|
||||||
timeWindow?: 'day' | 'week';
|
timeWindow?: 'day' | 'week';
|
||||||
@@ -677,7 +680,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
public async getByExternalId({
|
public async getByExternalId({
|
||||||
externalId,
|
externalId,
|
||||||
type,
|
type,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}:
|
}:
|
||||||
| {
|
| {
|
||||||
externalId: string;
|
externalId: string;
|
||||||
@@ -706,7 +709,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public async getMediaByImdbId({
|
public async getMediaByImdbId({
|
||||||
imdbId,
|
imdbId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
imdbId: string;
|
imdbId: string;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -745,7 +748,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public async getShowByTvdbId({
|
public async getShowByTvdbId({
|
||||||
tvdbId,
|
tvdbId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
tvdbId: number;
|
tvdbId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -775,7 +778,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
|
|
||||||
public async getCollection({
|
public async getCollection({
|
||||||
collectionId,
|
collectionId,
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
collectionId: number;
|
collectionId: number;
|
||||||
language?: string;
|
language?: string;
|
||||||
@@ -849,7 +852,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async getMovieGenres({
|
public async getMovieGenres({
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
language?: string;
|
language?: string;
|
||||||
} = {}): Promise<TmdbGenre[]> {
|
} = {}): Promise<TmdbGenre[]> {
|
||||||
@@ -896,7 +899,7 @@ class TheMovieDb extends ExternalAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async getTvGenres({
|
public async getTvGenres({
|
||||||
language = 'en',
|
language = this.locale,
|
||||||
}: {
|
}: {
|
||||||
language?: string;
|
language?: string;
|
||||||
} = {}): Promise<TmdbGenre[]> {
|
} = {}): Promise<TmdbGenre[]> {
|
||||||
|
|||||||
Reference in New Issue
Block a user