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

Format is
```
! Error
  # Source
    - Manga
```
This commit is contained in:
FlaminSarge 2021-07-20 14:36:24 -07:00 committed by GitHub
parent 7f76ffa5cb
commit 8bd965267c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -511,9 +511,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