No description
Find a file
MajorTanya a4d556affc
Use DTOs to parse tracking API responses (mihonapp/mihon#1103)
* Migrate tracking APIs to DTOs

Changes the handling of tracker API responses to be parsed to DTOs
instead of doing so "manually" by use of `jsonPrimitive`s and/or
`Json.decodeFromString` invocations.

This greatly simplifies the API response handling.

Renamed constants to SCREAMING_SNAKE_CASE.

Largely tried to name the DTOs in a uniform pattern, with the
tracker's (short) name at the beginning of file and data class names
(ALOAuth instead of OAuth, etc).

With these changes, no area of the code base should be using
`jsonPrimitive` and/or `Json.decodeFromString` anymore.

* Fix wrong types in KitsuAlgoliaSearchItem

This API returns start and end dates as Long and the score as Double.

Kitsu's docs claim they're strings (and they are, when requesting
manga details from Kitsu directly) but the Algolia search results
return Longs and Double, respectively.

* Apply review changes

- Renamed `BangumiX` classes to `BGMX` classes.
- Renamed `toXStatus` and `toXScore` to `toApiStatus` and `toApiScore`

* Handle migration from detekt to spotless

Removed Suppressions added for detekt.

Specifically removed:
- `SwallowedException` where an exception ends as a default value
- `MagicNumber`
- `CyclomaticComplexMethod`
- `TooGenericExceptionThrown`

Also ran spotlessApply which changed SMAddMangaResponse

* Fix Kitsu failing to add series

The `included` attribute seems to only appear when the user already
has the entry in their Kitsu list.

Since both `data` and `included` are required for `firstToTrack`, a
guard clause has been added before all its calls.

* Fix empty Bangumi error when entry doesn't exist

Previously, the non-null assertion (!!) would cause a
NullPointerException and a Toast with
"Bangumi error: " (no message) when the user had removed their list
entry from Bangumi through other means like the website.

Now it will show "Bangumi error: Could not find manga".

This is analogous to the error shown by Kitsu under these
circumstances.

* Fix Shikimori ignoring missing remote entry

The user would see no indication that Shikimori could not properly
refresh the track from the remote. This change causes the error Toast
notification to pop up with the following message
"Shikimori error: Could not find manga".

This is analogous to Kitsu and Bangumi.

* Remove usage of let where not needed

These particular occurrences weren't needed because properties are
directly accessible to further act upon. This neatly simplifies these
clauses.

* Remove missed let

(cherry picked from commit 9f99f038f341e325c4f56372a5ce950cf9f7cd6d)
2024-09-04 19:07:51 +07:00
.github chore(deps): update gradle/actions digest to 16bf8bc (#301) 2024-08-27 10:21:16 +07:00
.idea New icon 2024-01-28 23:44:37 +07:00
app Use DTOs to parse tracking API responses (mihonapp/mihon#1103) 2024-09-04 19:07:51 +07:00
buildSrc Use feature flags in compose compiler plugin 2024-09-04 15:46:36 +07:00
core/common Address more spotless lint errors from KMK & SY 2024-08-26 00:08:37 +07:00
core-metadata Address spotless lint errors (mihonapp/mihon#1138) 2024-08-26 00:08:37 +07:00
data Address more spotless lint errors from KMK & SY 2024-08-26 00:08:37 +07:00
domain Support skip-downloading-duplicate-read-chapters for merged entries 2024-09-04 17:22:29 +07:00
flagkit Using emoji flags in manga detail page 2024-08-26 18:11:14 +07:00
gradle Add stable marker to Manga data class 2024-09-04 16:27:35 +07:00
i18n Add confirmation when adding repo via URI (mihonapp/mihon#1158) 2024-08-26 13:43:14 +07:00
i18n-kmk Update translation from Crowdin 2024-08-29 23:32:14 +07:00
i18n-sy Translations update from Hosted Weblate (jobobby04/TachiyomiSY#1259) 2024-09-04 17:22:12 +07:00
macrobenchmark Rework buildSrc and remove usage of subprojects 2024-04-26 11:35:15 +07:00
presentation-core More language flags 2024-08-29 16:48:09 +07:00
presentation-widget Address spotless lint errors (mihonapp/mihon#1138) 2024-08-26 00:08:37 +07:00
source-api rename Related Titles to Suggestions (#317) 2024-08-29 23:13:42 +07:00
source-local Address more spotless lint errors from KMK & SY 2024-08-26 00:08:37 +07:00
.editorconfig Restrict line length with ktlint 2023-11-05 17:28:46 -05:00
.gitattributes Mark JAR as binary too 2020-01-11 16:13:08 -05:00
.gitignore chore(deps): update kotlin and compose compiler to v2 (major) (#26, #82, mihonapp/mihon#819) 2024-07-27 02:13:27 +07:00
build.gradle.kts Rework buildSrc and remove usage of subprojects 2024-04-26 11:35:15 +07:00
CHANGELOG.md Respect privacy settings in extension update notification (mihonapp/mihon#1156) 2024-08-26 13:42:23 +07:00
CODE_OF_CONDUCT.md [skip ci] update discord 2024-05-22 10:17:26 +07:00
CONTRIBUTING.md Update links 2024-09-04 17:22:18 +07:00
gradle.properties Disable mpp and agp compability warning 2024-04-26 11:35:15 +07:00
gradlew chore(deps): update dependency gradle to v8.10 (#254) 2024-08-15 12:50:41 +07:00
gradlew.bat chore(deps): update dependency gradle to v8.10 (#254) 2024-08-15 12:50:41 +07:00
LICENSE Remove files executable permission 2024-01-28 23:44:37 +07:00
README.md Update links 2024-09-04 17:22:18 +07:00
renovate.json update renovate config 2024-06-21 01:03:19 +07:00
settings.gradle.kts feat (ui): source language flags (#272) 2024-08-26 00:07:56 +07:00

Komikku

Releases Preview CI builds Discussions
GitHub downloads Stable Build GitHub downloads Beta Beta build CI Discord

Help translate

A free and open source manga reader which is based off TachiyomiSY & Mihon/Tachiyomi. This fork is meant to provide new & useful features while regularly take features/updates from Mihon or other forks like SY, J2K and Neko...

screenshots of app

Features

Komikku's key features:

  • Built-in extensions repository, always up-to-date with Keiyoushi with a few more sources & improvements.
  • Suggestions automatically showing source-website's recommendations/suggestions/related to current entry for all sources.
  • Auto theme color based on each entry's cover for entry View & Reader.
  • 2-way sync progress with trackers, automatically.
  • Feed now supports all sources, with more items (20 for now).
  • Bulk-selection to add to library & change categories of multiple entries all at once, everywhere.
  • Long-click to add/remove single entry to/from library, everywhere.
  • Search for sources & Quick NSFW sources filter in Extensions, Browse & Migration screen.
  • Feed backup/restore/sync/re-order.
  • Banner shows Library syncing / Backup restoring / Library updating progress.
  • Configurable interval to refresh entries from downloaded storage.
  • App custom theme, more app themes & better UI, improvements...
Features from Mihon/Tachiyomi

All up-to-date features from Mihon/Tachiyomi (original), include:

  • Online reading from a variety of sources
  • Local reading of downloaded content
  • A configurable reader with multiple viewers, reading directions and other settings.
  • Tracker support: MyAnimeList, AniList, Kitsu, MangaUpdates, Shikimori, and Bangumi support
  • Categories to organize your library
  • Light and dark themes
  • Schedule updating your library for new chapters
  • Create backups locally to read offline or to your desired cloud service
  • Continue reading button in library
Features from Tachiyomi SY

All features from TachiyomiSY:

  • Feed tab, where you can easily view the latest entries or saved search from multiple sources at same time.
  • Automatic webtoon detection, allowing the reader to switch to webtoon mode automatically when viewing one
  • Manga recommendations, uses MAL and Anilist, as well as Neko Similar Manga for Mangadex manga (Thanks to Az, She11Shocked, Carlos, and Goldbattle)
  • Lewd filter, hide the lewd manga in your library when you want to
  • Tracking filter, filter your tracked manga so you can see them or see non-tracked manga, made by She11Shocked
  • Search tracking status in library, made by She11Shocked
  • Custom categories for sources, liked the pinned sources, but you can make your own versions and put any sources in them
  • Manga info edit
  • Manga Cover view + share and save
  • Dynamic Categories, view the library in multiple ways
  • Smart background for reading modes like LTR or Vertical, changes the background based on the page color
  • Force disable webtoon zoom
  • Hentai features enable/disable, in advanced settings
  • Quick clean titles
  • Source migration, migrate all your manga from one source to another
  • Saving searches
  • Autoscroll
  • Page preload customization
  • Customize image cache size
  • Batch import of custom sources and featured extensions
  • Advanced source settings page, searching, enable/disable all
  • Click tag for local search, long click tag for global search
  • Merge multiple of the same manga from different sources
  • Drag and drop library sorting
  • Library search engine, includes exclude, quotes as absolute, and a bunch of other ways to search
  • New E-Hentai/ExHentai features, such as language settings and watched list settings
  • Enhanced views for internal and integrated sources
  • Enhanced usability for internal and delegated sources

Custom sources:

  • E-Hentai/ExHentai

Additional features for some extensions, features include custom description, opening in app, batch add to library, and a bunch of other things based on the source:

  • 8Muses (EroMuse)
  • HBrowse
  • Mangadex
  • NHentai
  • Puruin
  • Tsumino

Download

Get the app from our releases page.

If you want to try new features before they get to the stable release, you can download the preview version here.

Issues, Feature Requests and Contributing

Please make sure to read the full guidelines. Your issue may be closed without warning if you do not.

Issues
  1. Before reporting a new issue, take a look at the FAQ, the changelog and the already opened issues.
  2. If you are unsure, ask here: Discord
Bugs
  • Include version (More → About → Version)
  • If not latest, try updating, it may have already been solved
  • Preview version is equal to the number of commits as seen on the main page
  • Include steps to reproduce (if not obvious from description)
  • Include screenshot (if needed)
  • If it could be device-dependent, try reproducing on another device (if possible)
  • Don't group unrelated requests into one issue

Use the issue forms to submit a bug.

Feature Requests
  • Write a detailed issue, explaining what it should do or how.
  • Include screenshot (if needed).
Contributing

See CONTRIBUTING.md.

Code of Conduct

See CODE_OF_CONDUCT.md.

FAQ

See our website. You can also reach out to us on Discord.

License

Copyright 2015 Javier Tomás

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Disclaimer

The developer of this application does not have any affiliation with the content providers available.