Resolve proper chapter URL for ComicInfo "Web" field
Requires extensions to be updated to lib 1.4 to have proper URLs for some of them, which will happen soon in the future.
This commit is contained in:
parent
bdf035d60a
commit
262f8449b4
2 changed files with 15 additions and 6 deletions
|
@ -12,11 +12,11 @@ const val COMIC_INFO_FILE = "ComicInfo.xml"
|
|||
/**
|
||||
* Creates a ComicInfo instance based on the manga and chapter metadata.
|
||||
*/
|
||||
fun getComicInfo(manga: Manga, chapter: Chapter): ComicInfo {
|
||||
fun getComicInfo(manga: Manga, chapter: Chapter, chapterUrl: String): ComicInfo {
|
||||
return ComicInfo(
|
||||
title = ComicInfo.Title(chapter.name),
|
||||
series = ComicInfo.Series(manga.title),
|
||||
web = ComicInfo.Web(manga.url),
|
||||
web = ComicInfo.Web(chapterUrl),
|
||||
summary = manga.description?.let { ComicInfo.Summary(it) },
|
||||
writer = manga.author?.let { ComicInfo.Writer(it) },
|
||||
penciller = manga.artist?.let { ComicInfo.Penciller(it) },
|
||||
|
|
|
@ -537,7 +537,14 @@ class Downloader(
|
|||
cache.addChapter(dirname, mangaDir, download.manga)
|
||||
|
||||
DiskUtil.createNoMediaFile(tmpDir, context)
|
||||
createComicInfoFile(mangaDir, download.manga, download.chapter.toDomainChapter()!!)
|
||||
|
||||
val chapterUrl = download.source.getChapterUrl(download.chapter)
|
||||
createComicInfoFile(
|
||||
mangaDir,
|
||||
download.manga,
|
||||
download.chapter.toDomainChapter()!!,
|
||||
chapterUrl,
|
||||
)
|
||||
|
||||
Download.State.DOWNLOADED
|
||||
} else {
|
||||
|
@ -583,19 +590,21 @@ class Downloader(
|
|||
* Creates a ComicInfo.xml file inside the given directory.
|
||||
*
|
||||
* @param dir the directory in which the ComicInfo file will be generated.
|
||||
* @param manga the manga of the chapter to download.
|
||||
* @param chapter the chapter to download
|
||||
* @param manga the manga.
|
||||
* @param chapter the chapter.
|
||||
* @param chapterUrl the resolved URL for the chapter.
|
||||
*/
|
||||
private fun createComicInfoFile(
|
||||
dir: UniFile,
|
||||
manga: Manga,
|
||||
chapter: Chapter,
|
||||
chapterUrl: String,
|
||||
) {
|
||||
File("${dir.filePath}/$COMIC_INFO_FILE").outputStream().also {
|
||||
// Force overwrite old file
|
||||
(it as? FileOutputStream)?.channel?.truncate(0)
|
||||
}.use {
|
||||
val comicInfo = getComicInfo(manga, chapter)
|
||||
val comicInfo = getComicInfo(manga, chapter, chapterUrl)
|
||||
it.write(xml.encodeToString(ComicInfo.serializer(), comicInfo).toByteArray())
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue