mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2025-12-24 10:49:30 -05:00
Compare commits
1 Commits
logs-plex-
...
preview-tm
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74b6d793a3 |
@@ -378,7 +378,6 @@ class PlexTvAPI extends ExternalAPI {
|
||||
logger.error('Failed to ping token', {
|
||||
label: 'Plex Refresh Token',
|
||||
errorMessage: e.message,
|
||||
errorCause: e.cause,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import ExternalAPI from '@server/api/externalapi';
|
||||
import cacheManager from '@server/lib/cache';
|
||||
import { getSettings } from '@server/lib/settings';
|
||||
import { sortBy } from 'lodash';
|
||||
import type {
|
||||
TmdbCollection,
|
||||
@@ -99,6 +100,7 @@ interface DiscoverTvOptions {
|
||||
}
|
||||
|
||||
class TheMovieDb extends ExternalAPI {
|
||||
private locale: string;
|
||||
private discoverRegion?: string;
|
||||
private originalLanguage?: string;
|
||||
constructor({
|
||||
@@ -118,6 +120,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
},
|
||||
}
|
||||
);
|
||||
this.locale = getSettings().main?.locale || 'en';
|
||||
this.discoverRegion = discoverRegion;
|
||||
this.originalLanguage = originalLanguage;
|
||||
}
|
||||
@@ -126,7 +129,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
query,
|
||||
page = 1,
|
||||
includeAdult = false,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: SearchOptions): Promise<TmdbSearchMultiResponse> => {
|
||||
try {
|
||||
const data = await this.get<TmdbSearchMultiResponse>('/search/multi', {
|
||||
@@ -151,7 +154,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
query,
|
||||
page = 1,
|
||||
includeAdult = false,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
year,
|
||||
}: SingleSearchOptions): Promise<TmdbSearchMovieResponse> => {
|
||||
try {
|
||||
@@ -178,7 +181,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
query,
|
||||
page = 1,
|
||||
includeAdult = false,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
year,
|
||||
}: SingleSearchOptions): Promise<TmdbSearchTvResponse> => {
|
||||
try {
|
||||
@@ -203,7 +206,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public getPerson = async ({
|
||||
personId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
personId: number;
|
||||
language?: string;
|
||||
@@ -221,7 +224,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public getPersonCombinedCredits = async ({
|
||||
personId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
personId: number;
|
||||
language?: string;
|
||||
@@ -244,7 +247,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public getMovie = async ({
|
||||
movieId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
movieId: number;
|
||||
language?: string;
|
||||
@@ -269,7 +272,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public getTvShow = async ({
|
||||
tvId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
tvId: number;
|
||||
language?: string;
|
||||
@@ -319,7 +322,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getMovieRecommendations({
|
||||
movieId,
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
movieId: number;
|
||||
page?: number;
|
||||
@@ -343,7 +346,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getMovieSimilar({
|
||||
movieId,
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
movieId: number;
|
||||
page?: number;
|
||||
@@ -367,7 +370,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getMoviesByKeyword({
|
||||
keywordId,
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
keywordId: number;
|
||||
page?: number;
|
||||
@@ -391,7 +394,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getTvRecommendations({
|
||||
tvId,
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
tvId: number;
|
||||
page?: number;
|
||||
@@ -417,7 +420,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getTvSimilar({
|
||||
tvId,
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
tvId: number;
|
||||
page?: number;
|
||||
@@ -439,7 +442,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
sortBy = 'popularity.desc',
|
||||
page = 1,
|
||||
includeAdult = false,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
primaryReleaseDateGte,
|
||||
primaryReleaseDateLte,
|
||||
originalLanguage,
|
||||
@@ -510,7 +513,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public getDiscoverTv = async ({
|
||||
sortBy = 'popularity.desc',
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
firstAirDateGte,
|
||||
firstAirDateLte,
|
||||
includeEmptyReleaseDate = false,
|
||||
@@ -585,7 +588,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public getUpcomingMovies = async ({
|
||||
page = 1,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
page: number;
|
||||
language: string;
|
||||
@@ -610,7 +613,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public getAllTrending = async ({
|
||||
page = 1,
|
||||
timeWindow = 'day',
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
page?: number;
|
||||
timeWindow?: 'day' | 'week';
|
||||
@@ -677,7 +680,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
public async getByExternalId({
|
||||
externalId,
|
||||
type,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}:
|
||||
| {
|
||||
externalId: string;
|
||||
@@ -706,7 +709,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public async getMediaByImdbId({
|
||||
imdbId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
imdbId: string;
|
||||
language?: string;
|
||||
@@ -745,7 +748,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public async getShowByTvdbId({
|
||||
tvdbId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
tvdbId: number;
|
||||
language?: string;
|
||||
@@ -775,7 +778,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
|
||||
public async getCollection({
|
||||
collectionId,
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
collectionId: number;
|
||||
language?: string;
|
||||
@@ -849,7 +852,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
}
|
||||
|
||||
public async getMovieGenres({
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
language?: string;
|
||||
} = {}): Promise<TmdbGenre[]> {
|
||||
@@ -896,7 +899,7 @@ class TheMovieDb extends ExternalAPI {
|
||||
}
|
||||
|
||||
public async getTvGenres({
|
||||
language = 'en',
|
||||
language = this.locale,
|
||||
}: {
|
||||
language?: string;
|
||||
} = {}): Promise<TmdbGenre[]> {
|
||||
|
||||
@@ -404,34 +404,6 @@ class AvailabilitySync {
|
||||
});
|
||||
}
|
||||
|
||||
if (
|
||||
!showExists &&
|
||||
(media.status === MediaStatus.AVAILABLE ||
|
||||
media.status === MediaStatus.PARTIALLY_AVAILABLE ||
|
||||
media.seasons.some(
|
||||
(season) => season.status === MediaStatus.AVAILABLE
|
||||
) ||
|
||||
media.seasons.some(
|
||||
(season) => season.status === MediaStatus.PARTIALLY_AVAILABLE
|
||||
))
|
||||
) {
|
||||
await this.mediaUpdater(media, false, mediaServerType);
|
||||
}
|
||||
|
||||
if (
|
||||
!showExists4k &&
|
||||
(media.status4k === MediaStatus.AVAILABLE ||
|
||||
media.status4k === MediaStatus.PARTIALLY_AVAILABLE ||
|
||||
media.seasons.some(
|
||||
(season) => season.status4k === MediaStatus.AVAILABLE
|
||||
) ||
|
||||
media.seasons.some(
|
||||
(season) => season.status4k === MediaStatus.PARTIALLY_AVAILABLE
|
||||
))
|
||||
) {
|
||||
await this.mediaUpdater(media, true, mediaServerType);
|
||||
}
|
||||
|
||||
// TODO: Figure out how to run seasonUpdater for each season
|
||||
|
||||
if ([...finalSeasons.values()].includes(false)) {
|
||||
@@ -451,6 +423,22 @@ class AvailabilitySync {
|
||||
mediaServerType
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
!showExists &&
|
||||
(media.status === MediaStatus.AVAILABLE ||
|
||||
media.status === MediaStatus.PARTIALLY_AVAILABLE)
|
||||
) {
|
||||
await this.mediaUpdater(media, false, mediaServerType);
|
||||
}
|
||||
|
||||
if (
|
||||
!showExists4k &&
|
||||
(media.status4k === MediaStatus.AVAILABLE ||
|
||||
media.status4k === MediaStatus.PARTIALLY_AVAILABLE)
|
||||
) {
|
||||
await this.mediaUpdater(media, true, mediaServerType);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (ex) {
|
||||
@@ -478,10 +466,6 @@ class AvailabilitySync {
|
||||
{ status: MediaStatus.PARTIALLY_AVAILABLE },
|
||||
{ status4k: MediaStatus.AVAILABLE },
|
||||
{ status4k: MediaStatus.PARTIALLY_AVAILABLE },
|
||||
{ seasons: { status: MediaStatus.AVAILABLE } },
|
||||
{ seasons: { status: MediaStatus.PARTIALLY_AVAILABLE } },
|
||||
{ seasons: { status4k: MediaStatus.AVAILABLE } },
|
||||
{ seasons: { status4k: MediaStatus.PARTIALLY_AVAILABLE } },
|
||||
];
|
||||
|
||||
let mediaPage: Media[];
|
||||
|
||||
Reference in New Issue
Block a user