Commit Graph
67 Commits
Author SHA1 Message Date
tiennm99 2855ce5e53 fix: drop sponsor, watermark and navigation blocks from chapter text
Three blocks the site injects inside the chapter body were being extracted
as prose: the sponsor block, a source watermark planted mid-chapter, and
the prev/next chapter links.

Anchors and images are now skipped, since inside a chapter body they are
always site chrome, and the sponsor wrapper and watermark are skipped by
class. Inline emphasis tags are left alone so italics in the prose survive.

The sponsor wrapper has a sibling that must NOT be skipped: on most
chapters the real text sits in a container hidden with display:none,
because the body is gated behind a click on the sponsor link and revealed
with JavaScript. Skipping hidden elements, or treating the two sibling
classes as one family, discards the entire chapter. A test pins the gated
body as kept while its sibling is dropped.

Removes 662 words of injected text across the sample novel and lets the
repeated chapter-number paragraph be recognised again, which the sponsor
block had been masking by displacing it from the top of the body.
2026-07-29 22:36:15 +07:00
tiennm99 6bcdd742d6 feat: add monkeydd novel crawler with phone-sized PDF export
Fetches every chapter of a monkeydd.com novel and renders it as a single
PDF laid out for reading on a phone.

Two site behaviours drive the extractor design:

- Roughly a fifth of each chapter's words are not in the markup. The page
  emits empty spans and supplies the word from the stylesheet via
  ":before { content: ... }" rules, so reading DOM text alone drops them
  with no error. The extractor resolves those rules and substitutes the
  words back; a test asserts they disappear when the rule is removed.
- Chapter URLs cannot be generated. Numbering has gaps and slugs are not
  uniform across novels, so chapter links are always parsed from the page.

The chapter list is read from the landing page and cross-checked against
the dropdown embedded in each chapter page, so a truncated list cannot
silently shorten the export.

PDF defaults to a 90x160mm page rather than A4 with large type: viewers
scale a whole page to fit the screen, so a phone-shaped page fills it at
100% zoom where 12pt stays comfortable. A5 and A4 remain available.

Requests are spaced globally, so raising worker count does not raise the
request rate. Raw pages cache to disk so re-exporting at different font
or page settings needs no network.
2026-07-29 22:26:25 +07:00
tiennm99 9a1b3a43b0 Initial commit 2026-07-29 21:50:24 +07:00
tiennm99 fb0964bb6e feat: replace Python and JS downloaders with a Go crawler
Port both scripts into one Go program with a command per behavior:
gallery walks the numbered ghibli.jp film galleries, scrape downloads
every image referenced by a page.

Downloads now run through a bounded worker pool, and non-200 responses
are no longer written to disk as image files. Drop the orphaned
package-lock.json, which pinned the deprecated request dependency and
was the source of the repository's Dependabot alerts.
2026-07-25 19:41:43 +07:00
tiennm99 07b6b84151 docs(readme): rename project to ghibli-gallery-crawler 2026-07-25 19:28:02 +07:00
tiennm99 3b233d6948 chore: remove dependabot version-update config 2026-07-25 14:14:52 +07:00
tiennm99 9e8f8f5d40 chore: remove dependabot version-update config 2026-07-25 14:13:41 +07:00
tiennm99 2af7523d6d fix(deps): bump golang.org/x/net to patch security advisories 2026-07-17 17:42:06 +07:00
tiennm99 a7d0af64e4 fix(deps): bump golang.org/x/net to patch HTML parser DoS advisory 2026-07-17 17:20:38 +07:00
tiennm99 6fd81dba0f fix(deps): bump golang.org/x/image to patch tiff DoS advisory 2026-07-17 17:19:33 +07:00
tiennm99 1942082c63 fix(deps): bump golang.org/x/image to patch tiff DoS advisory 2026-07-17 17:19:25 +07:00
tiennm99 5b319327b8 chore: drop inapplicable dependabot ecosystems (#2) 2026-05-23 11:09:24 +07:00
tiennm99 82c9c67f7c chore: drop inapplicable dependabot ecosystems (#8) 2026-05-23 11:09:21 +07:00
tiennm99 ed1cdcc790 chore: add dependabot config (#6) 2026-05-23 10:48:33 +07:00
tiennm99 a3827c9e9e chore: add dependabot config (#1) 2026-05-23 10:48:19 +07:00
tiennm99 2e90e684e8 docs(readme): correct to HTTP microservice, add usage, output formats, related link 2026-05-11 21:47:35 +07:00
tiennm99 8b3f2fb145 docs(readme): add scripts index table at top 2026-05-11 21:47:26 +07:00
tiennm99 61f79ddbe3 docs(readme): add sample output and Godot bad-address-index context 2026-05-11 21:45:55 +07:00
tiennm99 8e22bfcbcf docs(readme): add formats table, aspect-ratio note, example, related link 2026-05-11 21:42:52 +07:00
tiennm99 0f2468a467 docs(readme): add output format, Chrome v10+ encryption details 2026-05-11 21:42:43 +07:00
tiennm99 9bcb92fad1 docs(readme): add input format, output behavior, and variant notes 2026-05-11 21:42:38 +07:00
tiennm99 beb4e2f916 docs: expand README — config schema, output format, error handling 2026-05-11 20:44:47 +07:00
tiennm99 17870aa1e6 docs: flesh out README 2026-05-11 20:15:37 +07:00
tiennm99 c09329a0a7 docs: flesh out README 2026-05-11 20:15:17 +07:00
tiennm99 936ec7929e docs: flesh out README 2026-05-11 20:14:50 +07:00
tiennm99 bf010e0f01 docs: flesh out README 2026-05-11 20:14:43 +07:00
tiennm99 cca8081e56 chore: relicense from MIT to Apache-2.0 (sole-author repo) 2026-05-11 17:15:43 +07:00
tiennm99 9e30ba7c64 docs: add README 2026-05-11 17:04:20 +07:00
tiennm99 36a35bcc79 docs: add README 2026-05-11 17:04:19 +07:00
tiennm99 29e254f1bc chore: add Apache-2.0 license 2026-04-29 21:33:48 +07:00
tiennm99 0be94abc75 refactor: rename to gitea-delete-orgs and delete orgs instead of leaving
Use DELETE /api/v1/orgs/{org} to fully delete organizations
rather than just removing the user as a member.
2026-04-13 09:41:06 +07:00
tiennm99 2d4f257a23 feat: auto-load .env via shared internal/env package
Add godotenv dependency and internal/env init loader so all cmd/
scripts get .env vars loaded automatically via blank import.
2026-04-13 09:13:24 +07:00
tiennm99 b7ac3e2074 add Claude Code settings with gopls LSP plugin 2026-04-13 09:04:58 +07:00
tiennm99 e0640ca840 feat: add gitea-leave-orgs script and init Go module
Add cmd/ structure for multiple standalone scripts. First script
leaves all joined Gitea orgs except a configurable keep-list.
2026-04-13 08:54:20 +07:00
tiennm99 de8339b5b7 Initial commit 2026-04-13 08:46:31 +07:00
tiennm99 e410b3bde8 feat: convert to go 2026-01-30 10:40:19 +07:00
tiennm99 f171050906 Update .gitignore 2026-01-30 10:31:24 +07:00
tiennm99 af02abceeb feat: init 2026-01-30 10:30:21 +07:00
tiennm99 f6174317fd chore: migrate 2025-12-21 10:16:18 +07:00
tiennm99 8f70921fcb Update README.md 2025-12-21 08:59:46 +07:00
tiennm99 0cc7463f3c feat: init 2025-12-05 15:11:45 +07:00
tiennm99 f2b2cb33c5 feat(go): rewrite in Go 2025-11-30 20:22:58 +07:00
tiennm99 b38a3cc531 Update README.md 2025-11-28 21:50:47 +07:00
tiennm99 e004d7237d feat(go): rewrite in Go 2025-11-28 20:59:16 +07:00
tiennm99 6f854c6cd7 feat: only save content 2025-08-26 19:51:30 +07:00
tiennm99 ae05d5548e feat: simple version 2025-08-25 21:24:27 +07:00
tiennm99 2fe9268287 feat: init 2025-08-25 20:29:06 +07:00
tiennm99 04c6182984 Update main.py 2025-07-20 18:59:06 +07:00
tiennm99 871a31f564 feat: init 2025-03-28 20:35:09 +07:00
tiennm99 113f5d7ff3 feat: join.bat 2025-03-25 19:01:31 +07:00
tiennm99 29feea38c8 [Init] 2024-10-11 21:03:49 +07:00
tiennm99 befceed53e Update main.sh 2024-05-22 21:04:10 +07:00
tiennm99 a25de1de5b Update main.sh 2024-05-22 21:00:16 +07:00
tiennm99 2426badf69 Update main.sh 2024-05-22 20:46:10 +07:00
tiennm99 d84260a30b Update main.sh 2024-05-22 20:41:51 +07:00
tiennm99 f06ceb9c5d Update main.sh 2024-05-22 20:25:33 +07:00
tiennm99 f5f2cafba7 [Add] init 2024-05-22 20:19:26 +07:00
tiennm99 14128aa4b4 Update main.py 2024-04-04 14:00:40 +07:00
tiennm99 c8866b6d5c Create requirements.txt 2024-04-04 13:40:07 +07:00
tiennm99 ffdba21976 Update main.py 2024-04-04 13:39:28 +07:00
tiennm99 97213b87fc [Temp] stash 2024-04-04 13:35:33 +07:00
tiennm99 3706327204 [Temp] stash 2024-04-03 18:53:17 +07:00
tiennm99 29115d698d Initial commit 2024-04-03 18:07:53 +07:00
tiennm99 ad745efcb6 [Init] 2023-09-27 23:06:47 +07:00
tiennm99 b0dfc8162c Create circular_dependency_checker.py 2023-07-28 18:21:29 +07:00
tiennm99 7c45c1f87c Initial commit 2023-07-28 18:20:28 +07:00
tiennm99 6ba2247509 Init 2020-03-02 14:53:23 +07:00