Feature/sakuhentai: Add Sakuhentai extension#1346
Conversation
…move gallery support
…tructor, fix naming conventions
…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
|
|
- 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
|
PR ready for merge. |
Checklist:
extVersionCodevalue inbuild.gradlefor individual extensionsoverrideVersionCodeorbaseVersionCodeas needed for all multisrc extensionsisNsfw = trueflag inbuild.gradlewhen appropriateidif a source's name or language were changedweb_hi_res_512.pngwhen adding a new extensionCloses #1337.
Website is almost entirely AI slop so idk how much mileage this extension will get but oh well.