Skip to content

Commit eaf38c8

Browse files
author
cedya77
committed
fix: strip lang parameter for RPDB t0 free tier compatibility
Automatically remove the 'lang' parameter from RPDB URLs when a tier 't0' API key is detected in resolvePattern, as the free tier does not support it. Update default UI and backend RPDB patterns to exclude the parameter by default.
1 parent 15bd79e commit eaf38c8

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

addon/utils/parseProps.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,20 @@ function resolvePattern(pattern, ids, type, config, extra) {
129129
}
130130
}
131131

132+
if (url.includes('ratingposterdb.com') && (/(t0)-/.test(url) || /^(t0)-/.test(config?.apiKeys?.rpdb || ''))) {
133+
try {
134+
const parsedUrl = new URL(url);
135+
if (parsedUrl.searchParams.has('lang')) {
136+
parsedUrl.searchParams.delete('lang');
137+
url = parsedUrl.toString();
138+
}
139+
} catch (e) {
140+
url = url.replace(/([?&])lang=[^&]*/g, (match, p1) => p1 === '?' ? '?' : '')
141+
.replace(/\?&/g, '?')
142+
.replace(/\?$/, '');
143+
}
144+
}
145+
132146
return url;
133147
}
134148

@@ -168,7 +182,7 @@ function resolveRatingPosterUrl(pattern, ids, type, config, extra) {
168182
}
169183

170184
/** Default poster URL pattern for RPDB */
171-
const RPDB_DEFAULT_PATTERN = 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true&lang={language_short}';
185+
const RPDB_DEFAULT_PATTERN = 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true';
172186
/** Default poster URL pattern for TOP Posters */
173187
const TOP_DEFAULT_PATTERN = 'https://api.top-streaming.stream/{top_key}/imdb/poster-default/{imdb_id}.jpg?lang={language_short}';
174188
/** Default episode thumbnail URL pattern for TOP Posters */

configure/src/components/sections/ArtProviderSettings.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ export function ArtProviderSettings() {
465465
let thumbnailPattern = '';
466466

467467
if (provider === 'rpdb') {
468-
posterPattern = 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true&lang={language_short}';
468+
posterPattern = 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true';
469469
} else if (provider === 'top') {
470470
posterPattern = 'https://api.top-streaming.stream/{top_key}/imdb/poster-default/{imdb_id}.jpg?lang={language_short}';
471471
thumbnailPattern = 'https://api.top-streaming.stream/{top_key}/imdb/thumbnail/{imdb_id}/S{season}E{episode}.jpg?resolution=w500&blur={blur}&fallback_url={thumbnail}';
@@ -533,7 +533,7 @@ export function ArtProviderSettings() {
533533
className="h-6 px-2 text-xs text-muted-foreground hover:text-foreground"
534534
onClick={() => {
535535
const pattern = config.posterRatingProvider === 'rpdb'
536-
? 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true&lang={language_short}'
536+
? 'https://api.ratingposterdb.com/{rpdb_key}/imdb/poster-default/{imdb_id}.jpg?fallback=true'
537537
: 'https://api.top-streaming.stream/{top_key}/imdb/poster-default/{imdb_id}.jpg?lang={language_short}';
538538
setConfig(prev => ({ ...prev, customPosterUrlPattern: pattern }));
539539
}}

0 commit comments

Comments
 (0)