Skip to content
This repository was archived by the owner on May 14, 2026. It is now read-only.

Feature/sakuhentai: Add Sakuhentai extension#1346

Open
PineappleTwilight wants to merge 13 commits into
Kohi-den:mainfrom
PineappleTwilight:feature/sakuhentai
Open

Feature/sakuhentai: Add Sakuhentai extension#1346
PineappleTwilight wants to merge 13 commits into
Kohi-den:mainfrom
PineappleTwilight:feature/sakuhentai

Conversation

@PineappleTwilight
Copy link
Copy Markdown
Contributor

@PineappleTwilight PineappleTwilight commented May 12, 2026

Checklist:

  • Updated extVersionCode value in build.gradle for individual extensions
  • Updated overrideVersionCode or baseVersionCode as needed for all multisrc extensions
  • Referenced all related issues in the PR body (e.g. "Closes #xyz")
  • Added the isNsfw = true flag in build.gradle when appropriate
  • 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
  • Have made sure all the icons are in png format

Closes #1337.

Website is almost entirely AI slop so idk how much mileage this extension will get but oh well.

Amnesia added 12 commits May 10, 2026 23:48
…s and live-site verified selectors

- Restore lib/voe-extractor/VoeExtractor.kt to committed version (was accidentally overwritten)
- Fix all corrupted generics (angle brackets stripped by tool) in Sakuhentai.kt
- Use img.thumb-v as primary thumbnail selector (wp-post-image is wrong on detail pages)
- Use .recpost elements for homepage/latest feed (not article elements)
- Filter galleries from homepage via title keyword (no CSS class on recposts)
- Two-phase video extraction: VoeExtractor first, then manual redirect fallback (VoeExtractor only checks first script tag for redirect)
- Set latestUpdatesNextPageSelector to null (homepage has no pagination)
- Add server preference with natsumi/hglink/all options
…nly path in SEpisode.url (AnimeHttpSource prepends baseUrl) - Extract by AuthorName from title into author field - Clean author suffix from listing titles (popular, latest, search)
- Replace VoeExtractor with custom SakuhentaiExtractor for reliable video extraction
- Fix episode URL double-concatenation (store path only, AnimeHttpSource prepends baseUrl)
- Fix thumbnail extraction to use img.thumb-v with absUrl fallback
- Extract author from title into author/artist fields
- Add deep link support via PREFIX_SEARCH and getSearchAnime override
- Add filter support with SakuhentaiFilters for series navigation
- Fix search to include gallery articles with Animation in title
- Deduplicate search results by URL
- Improve video sorting with server-aware quality ranking
…ideoListRequest and animeDetailsRequest, set url in animeDetailsParse
@Arkai1
Copy link
Copy Markdown
Collaborator

Arkai1 commented May 13, 2026

  1. Has this extension been tested with actual content from the site? (especially multi-page results)

  2. Why use ISO_8859_1 charset in Base64 decoding?

  3. Add proper Error Handling.

  4. Use version code 1, in build.gradle as you have added the ext there isn't any need to bump the version to 3.

  5. The code treats all of content in entry as a single episode, does site only have single episode in one entries.

  6. You have Hardcoded the filter as i have checked on site it currently has 12 other series where as filter has only 6 entries so might as well update them.

@PineappleTwilight
Copy link
Copy Markdown
Contributor Author

  1. Has this extension been tested with actual content from the site? (especially multi-page results)

  2. Why use ISO_8859_1 charset in Base64 decoding?

  3. Add proper Error Handling.

  4. Use version code 1, in build.gradle as you have added the ext there isn't any need to bump the version to 3.

  5. The code treats all of content in entry as a single episode, does site only have single episode in one entries.

  6. You have Hardcoded the filter as i have checked on site it currently has 12 other series where as filter has only 6 entries so might as well update them.

  1. Yes.
  2. Will look into this, might be unneeded.
  3. Will push a commit for this.
  4. Will also push a commit for this.
  5. Yes every video is less of a series and more of a single video akin to rule34video or another generic singleton video site.
  6. Will push a commit for this.

@PineappleTwilight PineappleTwilight marked this pull request as draft May 13, 2026 21:08
- Add explanatory comment on ISO_8859_1 usage in Base64 decoding
- Refactor error handling: granular per-step try/catch in extractor, per-entry try/catch in parsing methods, proper Log.w messages
- Set extVersionCode to 1 (no need to bump for newly added extension)
- Update series filter list from 6 to 13 entries to match site
@PineappleTwilight PineappleTwilight marked this pull request as ready for review May 14, 2026 01:29
@PineappleTwilight
Copy link
Copy Markdown
Contributor Author

PR ready for merge.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sakuhentai (source request)

2 participants