Prioritizing known video qualities as fallbacks, fixed Gamma quality format.

This commit is contained in:
DebaucheryLibrarian 2024-12-28 17:50:28 +01:00
parent 8194c1c8ea
commit 0e69898c32
3 changed files with 19 additions and 4 deletions

View File

@ -438,7 +438,7 @@ module.exports = {
thumbnailQuality: 100,
lazySize: 90,
lazyQuality: 90,
trailerQuality: [540, 720, 480, 360, 960, 1080, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
trailerQuality: [540, 720, 960, 480, 1080, 360, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
limit: 25, // max number of photos per release
attempts: 2,
fetchStreams: true,

View File

@ -213,7 +213,7 @@ function baseSourceToBaseMedia(baseSource, role, metadata) {
function sortBaseTrailersByQuality(sources, role) {
if (role === 'trailers') {
const sortedSources = sources.sort((sourceA, sourceB) => {
const sortedSources = sources.toSorted((sourceA, sourceB) => {
if (config.media.trailerQuality.includes(sourceB.quality) && config.media.trailerQuality.indexOf(sourceA.quality) > config.media.trailerQuality.indexOf(sourceB.quality)) {
return 1;
}
@ -222,6 +222,14 @@ function sortBaseTrailersByQuality(sources, role) {
return -1;
}
if (config.media.trailerQuality.includes(sourceB.quality) && !config.media.trailerQuality.includes(sourceA.quality)) {
return 1;
}
if (config.media.trailerQuality.includes(sourceA.quality) && !config.media.trailerQuality.includes(sourceB.quality)) {
return -1;
}
return 0;
});

View File

@ -436,6 +436,10 @@ async function scrapeScene({ query }, url, channel, baseRelease, mobileItem, opt
return release;
}
const qualityMap = {
'4k': 2160,
};
async function scrapeReleaseApi(data, site, options, movieScenes) {
const release = {};
@ -478,7 +482,10 @@ async function scrapeReleaseApi(data, site, options, movieScenes) {
release.teaser = `https://videothumb.gammacdn.com/500x281/${release.entryId}.mp4`;
if (data.trailers) {
release.trailer = Object.entries(data.trailers).map(([quality, source]) => ({ src: source, quality }));
release.trailer = Object.entries(data.trailers).map(([quality, source]) => ({
src: source,
quality: qualityMap[quality] || parseInt(quality, 10) || quality,
}));
}
if (data.movie_id && !data.movie_path && options.parameters.sceneMovies !== false) {
@ -494,7 +501,7 @@ async function scrapeReleaseApi(data, site, options, movieScenes) {
}
release.channel = slugify(data.mainChannel?.id || data.sitename, ''); // remove -
release.qualities = data.download_sizes;
release.qualities = data.download_sizes?.map((quality) => qualityMap[quality] || parseInt(quality, 10) || quality);
return release;
}