Merge pull request #44 from orangeMikeB/fix-incorrect-metadata-linux

This commit is contained in:
Stratum 2024-06-28 02:32:37 +02:00 committed by GitHub
commit f5403038e6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 23 deletions

View File

@ -1,7 +1,7 @@
import { Account, Playlist } from '../../db/database' import { Account, Playlist } from '../../db/database'
import { downloadMPDAudio } from '../../services/audio' import { downloadMPDAudio } from '../../services/audio'
import { concatenateTSFiles } from '../../services/concatenate' import { concatenateTSFiles } from '../../services/concatenate'
import { checkFileExistence, createFolder, createFolderName, deleteFolder, deleteTemporaryFolders } from '../../services/folder' import { checkFileExistence, createFolder, createFolderName, deleteFolder, deleteTemporaryFolders, getFilename } from '../../services/folder'
import { downloadADNSub, downloadCRSub } from '../../services/subs' import { downloadADNSub, downloadCRSub } from '../../services/subs'
import { CrunchyEpisode } from '../../types/crunchyroll' import { CrunchyEpisode } from '../../types/crunchyroll'
import { checkAccountMaxStreams, crunchyGetMetadata, crunchyGetPlaylist, crunchyGetPlaylistMPD } from '../crunchyroll/crunchyroll.service' import { checkAccountMaxStreams, crunchyGetMetadata, crunchyGetPlaylist, crunchyGetPlaylistMPD } from '../crunchyroll/crunchyroll.service'
@ -1403,21 +1403,20 @@ async function mergeVideoFile(
options.push(`-map ${ffindex}:a:0`) options.push(`-map ${ffindex}:a:0`)
options.push( options.push(
`-metadata:s:a:${index} language=${ `-metadata:s:a:${index} language=${
locales.find((l) => l.locale === a.split('/')[1].split('.aac')[0]) locales.find((l) => l.locale === getFilename(a, '.aac', '/'))
? locales.find((l) => l.locale === a.split('/')[1].split('.aac')[0])?.iso ? locales.find((l) => l.locale === getFilename(a, '.aac', '/'))?.iso
: a.split('/')[1].split('.aac')[0] : getFilename(a, '.aac', '/')
}`
)
options.push(
`-metadata:s:a:${index} title=${
locales.find((l) => l.locale === getFilename(a, '.aac', '/'))
? locales.find((l) => l.locale === getFilename(a, '.aac', '/'))?.title
: getFilename(a, '.aac', '/')
}` }`
) )
ffindex++ ffindex++
options.push(
`-metadata:s:a:${index} title=${
locales.find((l) => l.locale === a.split('/')[1].split('.aac')[0])
? locales.find((l) => l.locale === a.split('/')[1].split('.aac')[0])?.title
: a.split('/')[1].split('.aac')[0]
}`
)
} }
options.push(`-disposition:a:0 default`) options.push(`-disposition:a:0 default`)
@ -1430,17 +1429,17 @@ async function mergeVideoFile(
if (s.includes('-FORCED')) { if (s.includes('-FORCED')) {
options.push( options.push(
`-metadata:s:s:${index} language=${ `-metadata:s:s:${index} language=${
locales.find((l) => l.locale === s.split('/')[1].split('-FORCED.ass')[0]) locales.find((l) => l.locale === getFilename(s, '-FORCED.ass', '/'))
? locales.find((l) => l.locale === s.split('/')[1].split('-FORCED.ass')[0])?.iso ? locales.find((l) => l.locale === getFilename(s, '-FORCED.ass', '/'))?.iso
: s.split('/')[1].split('-FORCED.ass')[0] : getFilename(s, '-FORCED.ass', '/')
}` }`
) )
} else { } else {
options.push( options.push(
`-metadata:s:s:${index} language=${ `-metadata:s:s:${index} language=${
locales.find((l) => l.locale === s.split('/')[1].split('.ass')[0]) locales.find((l) => l.locale === getFilename(s, '.ass', '/'))
? locales.find((l) => l.locale === s.split('/')[1].split('.ass')[0])?.iso ? locales.find((l) => l.locale === getFilename(s, '.ass', '/'))?.iso
: s.split('/')[1].split('.ass')[0] : getFilename(s, '.ass', '/')
}` }`
) )
} }
@ -1448,17 +1447,17 @@ async function mergeVideoFile(
if (s.includes('-FORCED')) { if (s.includes('-FORCED')) {
options.push( options.push(
`-metadata:s:s:${index} title=${ `-metadata:s:s:${index} title=${
locales.find((l) => l.locale === s.split('/')[1].split('-FORCED.ass')[0]) locales.find((l) => l.locale === getFilename(s, '-FORCED.ass', '/'))
? locales.find((l) => l.locale === s.split('/')[1].split('-FORCED.ass')[0])?.title ? locales.find((l) => l.locale === getFilename(s, '-FORCED.ass', '/'))?.title
: s.split('/')[1].split('-FORCED.ass')[0] : getFilename(s, '-FORCED.ass', '/')
}[FORCED]` }[FORCED]`
) )
} else { } else {
options.push( options.push(
`-metadata:s:s:${index} title=${ `-metadata:s:s:${index} title=${
locales.find((l) => l.locale === s.split('/')[1].split('.ass')[0]) locales.find((l) => l.locale === getFilename(s, '.ass', '/'))
? locales.find((l) => l.locale === s.split('/')[1].split('.ass')[0])?.title ? locales.find((l) => l.locale === getFilename(s, '.ass', '/'))?.title
: s.split('/')[1].split('.ass')[0] : getFilename(s, '.ass', '/')
}` }`
) )
} }

View File

@ -100,3 +100,13 @@ export async function deleteTemporaryFolders() {
throw error throw error
} }
} }
export function getFilename(path: string, ext: string, delimiter: string) {
const segments = path.split(delimiter)
if (segments.length == 0) {
return "unkown"
}
return segments[segments.length - 1].split(ext)[0]
}