feat: implement phase 4 batch — 54 base-class wrapper sources

Add 8 all/ sources (7 Masonry, 1 Madara) and 38 en/ sources spanning
Madara, MangaThemesia, MadTheme, Keyoapp, and Guya bases, plus 8 earlier
all/ standalone sources from the previous session (ahottie, akuma,
allporncomicsco, asmhentai, baobua, beauty3600000, buondua, comicfury,
comicgrowl, comicklive, comicsvalley, comikey, commitstrip, coomer).

Also annotates phase4-standalone.md with base-class tags for 43 additional
unimplemented en/ sources identified in a full scan.
This commit is contained in:
achmad
2026-05-13 23:11:26 +07:00
parent e17de903b2
commit 316ae2f9db
62 changed files with 4027 additions and 104 deletions
+126 -104
View File
@@ -3,6 +3,28 @@
Complete port checklist. Check a box when the source passes a basic smoke test
(popular/latest list returns ≥1 result, or detail+pages resolve for a known URL).
**After implementing each source:** mark its checkbox `[x]` in this doc and add it to the import list in `cmd/server/main.go`.
## Important: Source Types
### Base Sources (`lib-multisrc`)
Shared implementations in:
- `/Users/achmad/Documents/Belajar/Android/extensions-source/lib-multisrc/`
- `/Users/achmad/Documents/Belajar/Web/goyomi/sources/base/`
These are the core implementations that standalone sources may use.
### Standalone Sources (`all/` and `en/`)
Individual extensions in:
- `/Users/achmad/Documents/Belajar/Android/extensions-source/src/all/`
- `/Users/achmad/Documents/Belajar/Android/extensions-source/src/en/`
These may or may not use a base source from lib-multisrc — and even when they do, they often add their own
implementation on top (overriding methods, adding extra parsing, custom filters, etc.).
When porting, check if the Kotlin source extends a base class (e.g., `MangaReader`, `Madara`, `ComicGeek`) —
if so, use the corresponding Go base implementation as the foundation, then layer the source-specific overrides.
Otherwise, implement fully standalone.
Reference:
- `/Users/achmad/Documents/Belajar/Android/extensions-source/src/all/`
- `/Users/achmad/Documents/Belajar/Android/extensions-source/src/en/`
@@ -13,21 +35,21 @@ Detailed implementation notes for complex sources are in the **Notes** section a
## `sources/all/` — 125 sources
- [ ] `all/ahottie`
- [ ] `all/akuma`
- [ ] `all/allporncomicsco`
- [ ] `all/asmhentai`
- [ ] `all/baobua`
- [ ] `all/beauty3600000`
- [ ] `all/buondua`
- [ ] `all/comicfury`
- [ ] `all/comicgrowl`
- [ ] `all/comicklive`
- [ ] `all/comicskingdom`
- [ ] `all/comicsvalley`
- [ ] `all/comikey`
- [ ] `all/commitstrip`
- [ ] `all/coomer`
- [x] `all/ahottie`
- [x] `all/akuma`
- [x] `all/allporncomicsco`
- [x] `all/asmhentai`
- [x] `all/baobua`
- [x] `all/beauty3600000`
- [x] `all/buondua`
- [x] `all/comicfury`
- [x] `all/comicgrowl`
- [x] `all/comicklive`
- [ ] `all/comicskingdom` ⚠️ no Kotlin reference found — skip
- [x] `all/comicsvalley`
- [x] `all/comikey`
- [x] `all/commitstrip`
- [x] `all/coomer`
- [ ] `all/coronaex`
- [ ] `all/cosplaytele`
- [ ] `all/cubari`
@@ -35,14 +57,14 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/deviantart`
- [ ] `all/dragonballmultiverse`
- [ ] `all/e621` ⚠️ see notes
- [ ] `all/elitebabes`
- [x] `all/elitebabes`
- [ ] `all/everiaclub`
- [ ] `all/everiaclubcom`
- [ ] `all/femjoyhunter`
- [x] `all/femjoyhunter`
- [ ] `all/foamgirl`
- [ ] `all/foolslidecustomizable`
- [ ] `all/fourkhd`
- [ ] `all/ftvhunter`
- [x] `all/ftvhunter`
- [ ] `all/fuwayomi`
- [ ] `all/globalcomix` ⚠️ see notes
- [ ] `all/grabberzone`
@@ -62,7 +84,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/imhentai`
- [ ] `all/izneo`
- [ ] `all/jjcos`
- [ ] `all/joymiihub`
- [x] `all/joymiihub`
- [ ] `all/junmeitu`
- [x] `all/kemono` ⚠️ see notes
- [ ] `all/kiutaku`
@@ -76,7 +98,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/magicaltranslators`
- [ ] `all/manga18me`
- [ ] `all/mangaball`
- [ ] `all/mangacrazy`
- [x] `all/mangacrazy`
- [ ] `all/mangadex` ⚠️ see notes
- [ ] `all/mangadraft`
- [ ] `all/mangafire`
@@ -94,7 +116,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/manhwaclubnet`
- [ ] `all/manhwadashraw`
- [ ] `all/mayotune`
- [ ] `all/metarthunter`
- [x] `all/metarthunter`
- [ ] `all/miauscan`
- [ ] `all/misskon`
- [ ] `all/mitaku`
@@ -110,7 +132,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/peppercarrot`
- [ ] `all/photos18`
- [ ] `all/pixiv` ⚠️ see notes
- [ ] `all/playmatehunter`
- [x] `all/playmatehunter`
- [ ] `all/pornpics`
- [ ] `all/projectsuki`
- [ ] `all/qtoon`
@@ -130,7 +152,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `all/uncensoredmanhwa`
- [ ] `all/vinnieVeritas`
- [ ] `all/webtoons` ⚠️ see notes
- [ ] `all/xarthunter`
- [x] `all/xarthunter`
- [ ] `all/xasiatalbums`
- [ ] `all/xgmn`
- [ ] `all/xinmeitulu`
@@ -152,11 +174,11 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/allporncomicio`
- [ ] `en/anisascans`
- [ ] `en/apcomics`
- [ ] `en/aquamanga`
- [ ] `en/arcrelight`
- [ ] `en/arenascans`
- [x] `en/aquamanga`
- [ ] `en/arcrelight` → base: Madara
- [x] `en/arenascans`
- [ ] `en/armageddon`
- [ ] `en/artlapsa`
- [x] `en/artlapsa`
- [ ] `en/arvencomics`
- [ ] `en/arvenscans`
- [ ] `en/aryascans`
@@ -165,27 +187,27 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/assortedscans`
- [ ] `en/asurascans` ⚠️ see notes
- [ ] `en/athreascans`
- [ ] `en/atsumaru`
- [ ] `en/aurora`
- [ ] `en/azcomic`
- [ ] `en/atsumaru` → base: Madara
- [ ] `en/aurora` → base: Madara
- [ ] `en/azcomic` → base: Madara
- [ ] `en/azuki`
- [ ] `en/baektoons`
- [x] `en/bakkin` ⚠️ see notes
- [ ] `en/bakkinselfhosted`
- [ ] `en/batcave`
- [ ] `en/battleinfivesecondsaftermeeting`
- [ ] `en/beehentai`
- [ ] `en/beehentai` → base: MadTheme
- [ ] `en/bookwalker` ⚠️ see notes
- [ ] `en/boratscans`
- [ ] `en/boxmanhwa`
- [ ] `en/broccolisoup`
- [ ] `en/bunmanga`
- [ ] `en/buttsmithy`
- [ ] `en/clonemanga`
- [ ] `en/clowncorps`
- [ ] `en/boratscans` → base: Madara
- [ ] `en/boxmanhwa` → base: MadTheme
- [ ] `en/broccolisoup` → base: Madara
- [ ] `en/bunmanga` → base: Madara
- [ ] `en/buttsmithy` → base: Madara
- [ ] `en/clonemanga` → base: Madara
- [ ] `en/clowncorps` → base: Madara
- [ ] `en/cmanhua`
- [ ] `en/cocomic`
- [ ] `en/coffeemanga`
- [x] `en/cocomic`
- [ ] `en/coffeemanga` → base: Madara (complex)
- [ ] `en/collectedcurios`
- [ ] `en/comicasura`
- [ ] `en/comiccx`
@@ -193,19 +215,19 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/comickfan`
- [ ] `en/comickiba`
- [ ] `en/comicland`
- [ ] `en/comicsland`
- [x] `en/comicsland`
- [ ] `en/comix`
- [ ] `en/crowscans`
- [ ] `en/cucumbermanga`
- [x] `en/crowscans`
- [ ] `en/cucumbermanga` → base: Madara
- [ ] `en/culturedworks`
- [ ] `en/cutiecomics`
- [ ] `en/dankefurslesen`
- [x] `en/dankefurslesen`
- [ ] `en/darklegacycomics`
- [ ] `en/darkscans`
- [ ] `en/darkscience`
- [ ] `en/darthsdroids`
- [ ] `en/deathtollscans`
- [ ] `en/decadencescans`
- [ ] `en/decadencescans` → base: Madara
- [ ] `en/dflowscans`
- [ ] `en/digitalcomicmuseum`
- [x] `en/divascans`
@@ -219,7 +241,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/eighteenporncomic`
- [ ] `en/eightmuses`
- [ ] `en/elanschool`
- [ ] `en/elftoon`
- [x] `en/elftoon`
- [ ] `en/epicmanga`
- [ ] `en/erisscans`
- [ ] `en/ero18x`
@@ -232,11 +254,11 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/ezmanga`
- [ ] `en/fablescans`
- [ ] `en/fairyscans`
- [ ] `en/firescans`
- [ ] `en/firescans` → base: Madara (complex)
- [ ] `en/flamecomics`
- [ ] `en/frierenonline`
- [ ] `en/gakamangas`
- [ ] `en/galaxydegenscans`
- [x] `en/gakamangas`
- [x] `en/galaxydegenscans`
- [ ] `en/galaxymanga`
- [ ] `en/gedecomix`
- [ ] `en/gingertoon`
@@ -248,16 +270,16 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/gunnerkriggcourt`
- [x] `en/guya` ⚠️ see notes
- [ ] `en/gwtb`
- [ ] `en/hachirumi`
- [x] `en/hachirumi`
- [ ] `en/hadesscans`
- [ ] `en/harimanga`
- [ ] `en/hentai3zcc`
- [ ] `en/hentai4free`
- [x] `en/hentai4free`
- [ ] `en/hentaidex`
- [ ] `en/hentaihere`
- [ ] `en/hentaikun`
- [ ] `en/hentainexus`
- [ ] `en/hentairead`
- [ ] `en/hentairead` → base: Madara (complex)
- [ ] `en/hentaireadio`
- [ ] `en/hentaisco`
- [ ] `en/hentaixcomic`
@@ -276,13 +298,13 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/infinityscans`
- [ ] `en/irovedout`
- [ ] `en/isekaiscantop`
- [ ] `en/jinmangas`
- [x] `en/jinmangas`
- [ ] `en/jnovel`
- [ ] `en/kagane`
- [x] `en/kaizenscan`
- [ ] `en/kaliscancom`
- [ ] `en/kaliscanio`
- [ ] `en/kaliscanme`
- [ ] `en/kaliscancom` → base: MadTheme
- [ ] `en/kaliscanio` → base: MadTheme
- [x] `en/kaliscanme`
- [ ] `en/kappabeast`
- [ ] `en/kaynscans`
- [ ] `en/keenspot`
@@ -290,20 +312,20 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [x] `en/kewnscans`
- [ ] `en/killsixbilliondemons`
- [ ] `en/kingcomix`
- [ ] `en/kingofshojo`
- [ ] `en/kissmangain`
- [x] `en/kingofshojo`
- [x] `en/kissmangain`
- [ ] `en/kmanga`
- [ ] `en/kodansha`
- [ ] `en/ksgroupscans`
- [ ] `en/kunmanga`
- [x] `en/kunmanga`
- [ ] `en/kuramanga`
- [ ] `en/lagoonscans`
- [ ] `en/leslievictims`
- [ ] `en/lhtranslation`
- [x] `en/lhtranslation`
- [ ] `en/likemanga`
- [ ] `en/likemangain`
- [ ] `en/lilymanga`
- [ ] `en/linkmanga`
- [ ] `en/linkmanga` → base: Madara
- [ ] `en/loadingartist`
- [ ] `en/luascans`
- [ ] `en/luminaretranslations`
@@ -316,16 +338,16 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/manga18club`
- [ ] `en/manga18free`
- [ ] `en/manga18fx`
- [ ] `en/manga18x`
- [x] `en/manga18x`
- [ ] `en/mangabat`
- [ ] `en/mangablaze`
- [ ] `en/mangabolt`
- [ ] `en/mangabtt`
- [ ] `en/mangabuddy`
- [ ] `en/mangabuddyme`
- [ ] `en/mangabuddy` → base: MadTheme
- [ ] `en/mangabuddyme` → base: MadTheme
- [ ] `en/mangaclash`
- [ ] `en/mangacloud`
- [ ] `en/mangacute`
- [ ] `en/mangacute` → base: MadTheme
- [ ] `en/mangadass`
- [ ] `en/mangade`
- [ ] `en/mangademon`
@@ -333,64 +355,64 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/mangadistrict`
- [ ] `en/mangadotnet`
- [ ] `en/mangadrama`
- [ ] `en/mangafab`
- [ ] `en/mangaforest`
- [ ] `en/mangafab` → base: MadTheme
- [ ] `en/mangaforest` → base: MadTheme
- [ ] `en/mangaforfreecom`
- [ ] `en/mangafox`
- [ ] `en/mangafoxfun`
- [ ] `en/mangafoxfun` → base: MangaHub
- [ ] `en/mangafreak`
- [ ] `en/mangafree`
- [ ] `en/mangagg`
- [x] `en/mangagg`
- [ ] `en/mangago`
- [ ] `en/mangagofun`
- [ ] `en/mangahe`
- [x] `en/mangahe`
- [ ] `en/mangahen`
- [ ] `en/mangahentai`
- [x] `en/mangahentai`
- [ ] `en/mangahere`
- [ ] `en/mangahereonl`
- [ ] `en/mangahubio`
- [ ] `en/mangahereonl` → base: MangaHub
- [ ] `en/mangahubio` → base: MangaHub
- [ ] `en/mangaka`
- [ ] `en/mangakakalot`
- [ ] `en/mangakakalotfun`
- [ ] `en/mangakakalotfun` → base: MangaHub
- [ ] `en/mangakatana`
- [ ] `en/mangakiss`
- [ ] `en/mangamaniacs`
- [ ] `en/mangamo`
- [ ] `en/mangamob`
- [ ] `en/mangamonk`
- [ ] `en/manganel`
- [ ] `en/mangamonk` → base: MadTheme
- [ ] `en/manganel` → base: MangaHub
- [ ] `en/manganelo`
- [ ] `en/manganow`
- [ ] `en/mangaonlinefun`
- [ ] `en/mangaonlinefun` → base: MangaHub
- [ ] `en/mangaowlio`
- [ ] `en/mangapandaonl`
- [ ] `en/mangapandaonl` → base: MangaHub
- [ ] `en/mangapill`
- [ ] `en/mangapuma`
- [ ] `en/mangarawclub`
- [ ] `en/mangaread`
- [ ] `en/mangareadercc`
- [ ] `en/mangareadersite`
- [ ] `en/mangareadersite` → base: MangaHub
- [ ] `en/mangareadorg`
- [ ] `en/mangasaga`
- [ ] `en/mangasaga` → base: MadTheme
- [ ] `en/mangasect`
- [ ] `en/mangaspin`
- [ ] `en/mangaspin` → base: MadTheme
- [ ] `en/mangasushi`
- [ ] `en/mangatellers`
- [ ] `en/mangatoday`
- [ ] `en/mangatoday` → base: MangaHub
- [ ] `en/mangatown`
- [ ] `en/mangatrend`
- [ ] `en/mangatx`
- [ ] `en/mangaxyz`
- [ ] `en/mangaxyz` → base: MadTheme
- [ ] `en/manhuafast`
- [ ] `en/manhuafastnet`
- [ ] `en/manhuahot`
- [ ] `en/manhuanext`
- [ ] `en/manhuanow`
- [ ] `en/manhuanow` → base: MadTheme
- [ ] `en/manhuaplus`
- [ ] `en/manhuaplusorg`
- [ ] `en/manhuarush`
- [ ] `en/manhuascanus`
- [ ] `en/manhuasite`
- [ ] `en/manhuasite` → base: MadTheme
- [ ] `en/manhuatop`
- [ ] `en/manhuaus`
- [ ] `en/manhuazonghe`
@@ -405,13 +427,13 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/manhwahub`
- [ ] `en/manhwajoy`
- [ ] `en/manhwalike`
- [ ] `en/manhwalover`
- [x] `en/manhwalover`
- [ ] `en/manhwamanhua`
- [ ] `en/manhwaread`
- [ ] `en/manhwareads`
- [x] `en/manhwareads`
- [ ] `en/manhwatoon`
- [ ] `en/manhwatop`
- [ ] `en/manhwax`
- [x] `en/manhwatop`
- [x] `en/manhwax`
- [ ] `en/manhwaxxl`
- [ ] `en/manhwaz`
- [ ] `en/manhwazone`
@@ -419,7 +441,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/megatokyo`
- [ ] `en/mehgazone`
- [ ] `en/meitoon`
- [ ] `en/mgjinx`
- [x] `en/mgjinx`
- [ ] `en/mgreadio`
- [ ] `en/milftoon`
- [x] `en/mistscans`
@@ -444,12 +466,12 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [x] `en/nyanukafe`
- [ ] `en/nyrascans`
- [x] `en/nyxscans`
- [ ] `en/octopusmanga`
- [x] `en/octopusmanga`
- [ ] `en/oglaf`
- [ ] `en/ohjoysextoy`
- [ ] `en/omegascans`
- [ ] `en/onemangaco`
- [ ] `en/onemangainfo`
- [ ] `en/onemangaco` → base: MangaHub
- [ ] `en/onemangainfo` → base: MangaHub
- [ ] `en/onepunchmanonline`
- [ ] `en/onlythebesthentai`
- [ ] `en/oots`
@@ -460,7 +482,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/paragonscans`
- [ ] `en/paritehaber`
- [ ] `en/patchfriday`
- [ ] `en/pawmanga`
- [x] `en/pawmanga`
- [ ] `en/petrotechsociety`
- [ ] `en/philiascans`
- [ ] `en/plutoscans`
@@ -470,7 +492,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/questionablecontent`
- [ ] `en/ragescans`
- [ ] `en/randowiz`
- [ ] `en/ravenscans`
- [x] `en/ravenscans`
- [ ] `en/razure`
- [ ] `en/rdscans`
- [ ] `en/readallcomicscom`
@@ -500,13 +522,13 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/retsu`
- [ ] `en/revivalscans`
- [ ] `en/rinkocomics`
- [ ] `en/ritharscans`
- [x] `en/ritharscans`
- [ ] `en/rizzcomic`
- [ ] `en/rizzcomicunoriginal`
- [ ] `en/rokaricomics`
- [ ] `en/roliascan`
- [ ] `en/rosesquadscans`
- [ ] `en/ryumanga`
- [x] `en/rosesquadscans`
- [x] `en/ryumanga`
- [ ] `en/s2manga`
- [x] `en/sanascans`
- [ ] `en/saturdaymorningbreakfastcomics`
@@ -516,7 +538,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/shojoscans`
- [x] `en/sirenscans`
- [ ] `en/skymanga`
- [ ] `en/sleepytranslations`
- [ ] `en/sleepytranslations` → base: MangaThemesia
- [ ] `en/solarandsundry`
- [ ] `en/spmanhwa`
- [ ] `en/spyfakku`
@@ -527,7 +549,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/swordscomic`
- [ ] `en/tapastic`
- [ ] `en/tcbscans`
- [ ] `en/tcbscansunoriginal`
- [x] `en/tcbscansunoriginal`
- [ ] `en/teamshadowi`
- [ ] `en/templescan`
- [ ] `en/theblank`
@@ -538,10 +560,10 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/toon18`
- [ ] `en/toongod`
- [ ] `en/toonily`
- [ ] `en/toonilyme`
- [ ] `en/toonitube`
- [x] `en/toonilyme`
- [x] `en/toonitube`
- [ ] `en/toonizy`
- [ ] `en/topmanhua`
- [x] `en/topmanhua`
- [ ] `en/topmanhuafan`
- [ ] `en/topmanhuanet`
- [ ] `en/tritiniascans`
@@ -571,7 +593,7 @@ Detailed implementation notes for complex sources are in the **Notes** section a
- [ ] `en/xoxocomics`
- [ ] `en/yakshacomics`
- [ ] `en/yaoihot`
- [ ] `en/yaoihub`
- [x] `en/yaoihub`
- [ ] `en/yaoiscan`
- [ ] `en/yaoitoon`
- [ ] `en/yorai`