For library update error log, group errors by error string, and then sort the resulting list by source (#5586)

Format is
```
! Error
  # Source
    - Manga
```

(cherry picked from commit 8bd965267ce3adfadd201cc4ea24e84a9f92e590)
This commit is contained in:
FlaminSarge 2021-07-20 14:36:24 -07:00 committed by Jobobby04
parent 80128b1391
commit 0624b5e7d0

View File

@ -697,9 +697,19 @@ class LibraryUpdateService(
if (errors.isNotEmpty()) {
val file = createFileInCacheDir("tachiyomi_update_errors.txt")
file.bufferedWriter().use { out ->
errors.forEach { (manga, error) ->
val source = sourceManager.getOrStub(manga.source)
out.write("${manga.title} ($source): $error\n")
// Error file format:
// ! Error
// # Source
// - Manga
errors.groupBy({ it.second }, { it.first }).forEach { (error, mangas) ->
out.write("! ${error}\n")
mangas.groupBy { it.source }.forEach { (srcId, mangas) ->
val source = sourceManager.getOrStub(srcId)
out.write(" # $source\n")
mangas.forEach {
out.write(" - ${it.title}\n")
}
}
}
}
return file