diff --git a/README.md b/README.md index 33558675..66f3869b 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,9 @@ Or copy & paste this URL into your instance (Suwayomi included): ``` https://raw.githubusercontent.com/Kareadita/tach-extensions/repo/index.min.json ``` + +**Please, follow [our guide](https://wiki.kavitareader.com/guides/3rdparty/tachi-like/) for more detailed instruction with steps and screenshots.** + # Screenshots Komikku1 Mihon1 Komikku2 Mihon2 diff --git a/src/all/kavita/assets/i18n/messages_en.properties b/src/all/kavita/assets/i18n/messages_en.properties index f3936eb6..cb42c23d 100644 --- a/src/all/kavita/assets/i18n/messages_en.properties +++ b/src/all/kavita/assets/i18n/messages_en.properties @@ -26,7 +26,7 @@ pref_show_epub_summary_on=Show EPUB entries (not supported by Mihon) pref_release_date_title=Chapters: Display Release Dates pref_release_date_summary_off=Show when chapters were added to Kavita -pref_release_date_summary_on=Show original publication dates\n?? May affect chapter sorting if dates are missing +pref_release_date_summary_on=Show original publication dates\nNote: May affect chapter sorting if dates are missing pref_rd_date_title=Reading List: Display Release Date pref_rd_date_summary_off=Hide publication dates from reading lists @@ -43,18 +43,18 @@ pref_allowed_libraries_search_summary=Select which libraries appear in search re pref_chapter_title_format_title=Chapter Title Format pref_chapter_title_format_summary=Customize chapter titles using variables\nCurrent: %s -pref_chapter_title_format_dialog=Available variables: (Make sure to remove the {} around like the default)\n\n\n\${Type} - Chapter/Episode/Volume/Issue/Special\n\${No} - Chapter number\n\${Title} - Original chapter title\n\${CleanTitle} - Custom-cleaned chapter title (default)\n\${Pages} - Number of pages\n\${Size} - File size\n\${Volume} - Volume number (If available)\n\${SeriesName} - Series name\n\${LibraryName} - Library name\n\${Format} - File format (CBZ, PDF, etc.)\n\${Created} - Creation date\n\${ReleaseDate} - Release date +pref_chapter_title_format_dialog=Available variables: (Use variables without curly braces, e.g., $CleanTitle instead of ${CleanTitle})\n\n\n\${Type} - Chapter/Episode/Volume/Issue/Special\n\${No} - Chapter number\n\${Title} - Original chapter title\n\${CleanTitle} - Custom-cleaned chapter title (default)\n\${Pages} - Number of pages\n\${Size} - File size\n\${Volume} - Volume number (If available)\n\${SeriesName} - Series name\n\${LibraryName} - Library name\n\${Format} - File format (CBZ, PDF, etc.)\n\${Created} - Creation date\n\${ReleaseDate} - Release date pref_scanlator_format_title=Scanlator Format pref_scanlator_format_summary=Customize scanlator field using variables\nCurrent: %s -pref_scanlator_format_dialog=Available variables: (? remove the {} around like the default)\n\n\n\${Type} - Chapter/Episode/Volume/Issue/Special (default)\n\${No} - Chapter number\n\${Title} - Original chapter title\n\${CleanTitle} - Custom-cleaned chapter title\n\${Pages} - Number of pages\n\${Size} - File size\n\${Volume} - Volume number (If available)\n\${SeriesName} - Series name\n\${LibraryName} - Library name\n\${Format} - File format (CBZ, PDF, etc.)\n\${Created} - Creation date\n\${ReleaseDate} - Release date +pref_scanlator_format_dialog=Available variables: (Use variables without curly braces, e.g., $CleanTitle instead of ${CleanTitle})\n\n\n\${Type} - Chapter/Episode/Volume/Issue/Special (default)\n\${No} - Chapter number\n\${Title} - Original chapter title\n\${CleanTitle} - Custom-cleaned chapter title\n\${Pages} - Number of pages\n\${Size} - File size\n\${Volume} - Volume number (If available)\n\${SeriesName} - Series name\n\${LibraryName} - Library name\n\${Format} - File format (CBZ, PDF, etc.)\n\${Created} - Creation date\n\${ReleaseDate} - Release date # ============== # # OPDS Setup # # ============== # pref_opds_must_setup_address=OPDS URL required\nPlease configure your Kavita server connection -pref_opds_badformed_url=nvalid OPDS address format\nGet this from: User Settings ? API Key/OPDS ? OPDS URL (settings#clients) +pref_opds_badformed_url=Invalid OPDS address format\nGet this from: User Settings > API Key/OPDS > OPDS URL (settings#clients) pref_opds_duplicated_source_url=URL already used in another source: pref_opds_summary=Complete OPDS URL including API key\nFormat: http://address:port/opds?apiKey=XXX diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt index dac3d50b..6469f011 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/Kavita.kt @@ -1723,7 +1723,7 @@ class Kavita(private val suffix: String = "") : ConfigurableSource, UnmeteredSou return allChapters.sortedByDescending { it.chapter_number } } catch (e: Exception) { Log.e(LOG_TAG, "Unhandled exception parsing chapters", e) - throw IOException(intl["version_exceptions_chapters_parse"]) as Throwable + throw IOException(intl["version_exceptions_chapters_parse"]) } } diff --git a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt index 2c8cb5aa..4534d41a 100644 --- a/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt +++ b/src/all/kavita/src/eu/kanade/tachiyomi/extension/all/kavita/KavitaHelper.kt @@ -16,6 +16,7 @@ import okhttp3.Response import java.text.SimpleDateFormat import java.util.Locale import java.util.TimeZone +import java.util.concurrent.ConcurrentHashMap class KavitaHelper { val json = Json { @@ -29,7 +30,7 @@ class KavitaHelper { } // Cache for series information - private val seriesCache = mutableMapOf() + private val seriesCache = ConcurrentHashMap() // Inner class to provide access to series info inner class SeriesMapper { @@ -478,7 +479,7 @@ class KavitaHelper { val isWebtoon = context?.isWebtoon ?: false // Don't modify titles that start with a number followed by a pattern like "12. It's my fate" - if (title.matches(Regex("^\\d+\\.\\s+.*"))) { + if (title.matches(Regex("^\\d+\\..*"))) { return title }