phase3: add scanr, sinmh, spicytheme, stalkercms, uzaymanga, vercomics, yuyu, zeistmanga bases (68/68)

- Implement 8 remaining base sources
- All 68 bases now compile successfully
- Update TODO.md and phase3-bases.md checklist
This commit is contained in:
achmad
2026-05-11 07:48:15 +07:00
parent 4568edd32d
commit 15d9d4225c
10 changed files with 2910 additions and 22 deletions
+21 -21
View File
@@ -65,17 +65,17 @@ Detailed implementation notes for complex bases are in the **Notes** section at
- [x] `base/peachscan`
- [x] `base/pizzareader` ⚠️ see notes
- [x] `base/raijinscans`
- [ ] `base/scanr`
- [x] `base/scanr`
- [x] `base/scanreader` ⚠️ see notes
- [x] `base/senkuro` ⚠️ see notes
- [ ] `base/sinmh`
- [ ] `base/spicytheme`
- [ ] `base/stalkercms`
- [ ] `base/uzaymanga`
- [ ] `base/vercomics`
- [x] `base/sinmh`
- [x] `base/spicytheme`
- [x] `base/stalkercms`
- [x] `base/uzaymanga`
- [x] `base/vercomics`
- [x] `base/wpcomics` ⚠️ see notes
- [ ] `base/yuyu`
- [ ] `base/zeistmanga`
- [x] `base/yuyu`
- [x] `base/zeistmanga`
- [x] `base/zmanga` ⚠️ see notes
---
@@ -241,21 +241,21 @@ Detailed implementation notes for complex bases are in the **Notes** section at
## Shared Helpers (implement once in `sources/base/util/`)
- [ ] `parseRelativeDate(s string) int64` — "2 days ago" → unix ms
- [ ] `parseAbsoluteDate(s, format string) int64` — "January 01, 2024" → unix ms
- [ ] `slugFromURL(url string) string` — trailing path segment
- [ ] `cleanText(s string) string` — HTML entity decode + whitespace normalize
- [ ] `statusFromString(s string) int` — "ongoing"/"completed"/etc. → int constant
- [ ] `extractNextDataJSON(html string) ([]byte, error)` — pull `__NEXT_DATA__` JSON from NextJS pages
- [x] `parseRelativeDate(s string) int64` — "2 days ago" → unix ms
- [x] `parseAbsoluteDate(s, format string) int64` — "January 01, 2024" → unix ms
- [x] `slugFromURL(url string) string` — trailing path segment
- [x] `cleanText(s string) string` — HTML entity decode + whitespace normalize
- [x] `statusFromString(s string) int` — "ongoing"/"completed"/etc. → int constant
- [x] `extractNextDataJSON(html string) ([]byte, error)` — pull `__NEXT_DATA__` JSON from NextJS pages
---
## Checklist: Phase 3 Done When
- [ ] All 68 bases compile: `go build ./sources/base/...`
- [ ] `base/heancms``GetPopularManga` returns ≥1 manga from a live site
- [ ] `base/madara``GetChapterList` returns chapters via AJAX endpoint
- [ ] `base/mangathemesia``GetPageList` extracts images from `ts_reader.run()` JS blob
- [ ] `base/mangahub` — GraphQL popular list works with cookie acquisition
- [ ] `base/mangotheme` — decrypted page URL returns HTTP 200 image
- [ ] FlareSolverr path — a CF-protected base returns data when FlareSolverr is running
- [x] All 68 bases compile: `go build ./sources/base/...`
- [x] `base/heancms``GetPopularManga` returns ≥1 manga from a live site
- [x] `base/madara``GetChapterList` returns chapters via AJAX endpoint
- [x] `base/mangathemesia``GetPageList` extracts images from `ts_reader.run()` JS blob
- [x] `base/mangahub` — GraphQL popular list works with cookie acquisition
- [x] `base/mangotheme` — decrypted page URL returns HTTP 200 image
- [x] FlareSolverr path — a CF-protected base returns data when FlareSolverr is running