Skip to content

Add ManGeek#17620

Open
duasmisha-hub wants to merge 4 commits into
keiyoushi:mainfrom
duasmisha-hub:codex/add-mangeek
Open

Add ManGeek#17620
duasmisha-hub wants to merge 4 commits into
keiyoushi:mainfrom
duasmisha-hub:codex/add-mangeek

Conversation

@duasmisha-hub

@duasmisha-hub duasmisha-hub commented Jul 15, 2026

Copy link
Copy Markdown

Adds the ManGeek source using the API flow from the official app, with the complete home catalog, latest updates, search, supported tag filters, manga details, chapters, primary/mirror pages, and real discover pagination.

No related issue was found.

Validation performed:

  • :src:pt:mangeek:spotlessCheck
  • :src:pt:mangeek:assembleDebug
  • :src:pt:mangeek:assembleRelease
  • Live API flow for home, search, details, chapters, pages, and images
  • Discover pagination: 25 + 25 unique results with no overlap

Checklist:

  • Updated versionCode value in build.gradle.kts
  • Updated baseVersionCode in build.gradle.kts (if updated multisrc theme code)
  • Referenced all related issues in the PR body (e.g. "Closes #xyz")
  • Set the contentWarning configuration in build.gradle.kts appropriately
  • Have not changed source names
  • Have explicitly kept the id if a source's name or language were changed
  • Have tested the modifications by compiling and running the extension through Android Studio
  • Have removed web_hi_res_512.png when adding a new extension
  • This PR is AI-assisted, I have reviewed the changes manually and confirmed they are not slop

@duasmisha-hub
duasmisha-hub marked this pull request as ready for review July 15, 2026 07:17
import java.util.Locale

@Source
abstract class ManGeek : HttpSource() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please implement KeiSource instead, you also need to set libVersion in build.gradle.kts to 1.6


internal fun getFilters() = FilterList(TagsFilter())

private val TAGS = listOf(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if possible, consider fetching filters/tags from site (see supportsFilterFetching)

}

override suspend fun getSearchMangaList(page: Int, query: String, filters: FilterList): MangasPage {
val requestedPage = page.coerceAtLeast(1)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

page will always start from 1, never less than that

Comment on lines +72 to +73
activeDiscoverTags = includedTags
discoveredIds.clear()

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what? just return everything in one go

Comment on lines +112 to +113
val start = (page - 1) * SEARCH_PAGE_SIZE
val pageMangas = mangas.drop(start).take(SEARCH_PAGE_SIZE)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here


return SMangaUpdate(
manga = dto.toSManga(details = true),
chapters = if (fetchChapters) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you always have updated manga/chapters from the dto, so return everything unconditionally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants