{"id":19151737,"url":"https://github.com/zhs007/getcomic","last_synced_at":"2025-08-23T03:44:08.346Z","repository":{"id":38968389,"uuid":"236434049","full_name":"zhs007/getcomic","owner":"zhs007","description":"getcomic - 漫画打包器","archived":false,"fork":false,"pushed_at":"2023-01-06T02:28:46.000Z","size":6236,"stargazers_count":41,"open_issues_count":28,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-02T06:03:59.128Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhs007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-27T06:45:11.000Z","updated_at":"2025-03-22T18:10:33.000Z","dependencies_parsed_at":"2023-02-05T03:00:31.736Z","dependency_job_id":null,"html_url":"https://github.com/zhs007/getcomic","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fgetcomic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fgetcomic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fgetcomic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhs007%2Fgetcomic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhs007","download_url":"https://codeload.github.com/zhs007/getcomic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252823669,"owners_count":21809707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T08:15:34.726Z","updated_at":"2025-05-07T05:42:27.411Z","avatar_url":"https://github.com/zhs007.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# getcomic - 漫画打包器\n\n这是一个漫画打包器，可以将线上漫画直接打包成一个 pdf 文件。  \n从`v0.3.x`开始应该就非常稳定了，缺页问题基本上都是源站本来就缺页。  \n后面版本更新，基本上都是添加源站。\n\n考虑到国内网络环境，建议通过 docker 来使用。\n\n## 关于漫画源站\n\n暂时只支持 `manhuadb` 、 `manhuagui` 、`tvbsmh`，暂时只支持 pdf 输出方式，发布到线上环境也只支持`telegraph`。  \n`manhuadb`普遍质量高一些，但有些漫画不全，而且有些漫画会缺页严重，因此后面支持了 `manhuagui`，但`manhuagui`漫画数量较少，所以还支持了`tvbsmh`。  \n建议优先使用 `manhuadb` 来下载，缺失的部分用 `manhuagui` 或 `tvbsmh` 补完。\n\n`tvbsmh` 的漫画，如果是单行本的，很多都是双页。\n\n`manhuagui` 会要求 ip 在国内，防爬虫策略最复杂。\n\n### 关于部署环境\n\n特别建议 windows 用户用 docker 来使用本项目（作者没实测过 windows），记住需要切换内核到 linux。\n\n因为是 docker，按道理很多 nas 环境也能运行（没环境测试）。  \n如果使用云服务器的话，建议内存至少有 2g。\n\n你也可以直接使用[这个项目](https://github.com/zhs007/dockerscripts/tree/master/getcomic)来部署。\n\n### docker 下的使用说明\n\n1. 新建目录，可以是 getcomic，下面所有操作，都在该目录下进行。\n\n2. 通过 dockerhub 拉取镜像。\n\n```\ndocker pull zerrozhao/getcomic\n```\n\n3. 在目录下新建`cfg`目录，并复制下面内容到`cfg/config.yaml`里。\n\n```yaml\n# 漫画源站\nsource: manhuadb\n# 漫画id，如果是manhuadb，其实就是该漫画url最后的数字\ncomicid: 545\n# 只下一册时用，给空就是全下\nbookid:\n# 有些漫画会分为港版台版甚至电子版等，这个是该漫画下载哪个类型，0表示第1个分类，-1表示全部下载。\n# 注意在tvbsmh里，这个值和你看到的其实不一样，话一定是0，卷一定是1\nroottype: 0\n# 这些漫画不下载，适用于下载大部分，但排除少部分的情况。\n# excludebookid 的优先级高于 bookid\nexcludebookid: []\n# 打包多少本书到一个文件\npackagebooks: 1\n# 除非是图形环境，否则不要开启debug模式\nisdebug: false\n# 漫画输出目录\ncomicrootpath: ./comic\n# 是否输出pdf文件\noutputpdf: true\n# 是否发布到telegraph，如果要发布，则需要配置telegraph.yaml文件\npublishtelegraph: true\n# telegraph配置文件\ntelegraphconfig: ./cfg/telegraph.yaml\n# timeout - 60s\ntimeout: 60000\n# 强制转换成png文件，部分站点jpg文件格式较奇怪，如果打包漫画出问题，建议强制转换为png下载。但强制转换png后，一般文件都会变大一些\noutputpng: false\n# 强制转换成jpeg文件，解决强制转换png后图片变大问题\n# outputjpg 的优先级高于 outputpng\noutputjpg: false\n# 强制转换成jpeg文件时，压缩率\noutputjpgquality: 70\n# 只打包，以comicrootpath来打包，里面应该有一层目录来做文件名打包\nonlypackage: false\n```\n\n4. 如果希望发布到`telegraph`，还需要配置`cfg/telegraph.yaml`文件。\n\n```yaml\n# 账号，按我的习惯一般全小写字母加数字，不确定是否有限制\nshortname: zerro\n# 作者名\nauthorname: Zerro Zhao\n# token，如果是新建一个账号，第一次是不知道token的，启动一次以后，将输出的token填到这里\ntoken:\n# 上传文件超时\ntimeout: 30000\n# 输出目录\noutputpath: ./telegraphdata\n```\n\n5. 新建 `comic`、`telegraphdata` 目录。\n\n6. 执行下面脚本，即可开始下载、打包、发布漫画。\n\n```\ndocker stop getcomic\ndocker rm getcomic\ndocker run -d -v $PWD/cfg:/usr/src/app/cfg -v $PWD/comic:/usr/src/app/comic --name getcomic zerrozhao/getcomic\n```\n\n注意：\n\n- 当查看该进程已结束后，漫画就下载完了，可以通过 `docker ps` 查看。\n- 内部有各种错误处理机制，但万一被 ban 或者别的网络错误，可能会很长时间没有反应，这时重启即可，前面已经下载的不会重复下载，中间有缺页的也会再次补齐。\n- 如果很多 TIMEOUT 的报错，建议将 timeout 时间改长，这样对网络不好的环境更合适。\n- 配置文件里的 `outputpng` 要慎用，因为最终文件可能会变大到 3 倍左右，但有些时候，必须转换一次。\n- comicid、bookid 这些配置，不同源站不一样，自己多看看吧，特别是点开一部漫画，分别看看不同章节，应该就能发现规律了。\n- packagebooks 是打包连载版用的，一般建议配置为 8，就是 8 话打包为一本。\n- 如果使用 docker 方式，需要版本更新时，直接执行 `docker pull zerrozhao/getcomic` 即可更新到最新版，配置文件等都会向下兼容。\n- 如果是 npm 安装的，需要版本更新时，直接执行 `npm i getcomic -g` 即可。\n- 发布到`telegraph`时，前面会有一个`upload`图片的过程，由于`telegraph`对同 ip 上传图片频次有限制，可能会提示过段时间再试，建议间隔 1 小时重启，前面已经上传的文件不会重新上传。\n- 关于`telegraph`内容，可以直接查看`telegraphdata`下面的`json`文件，每次重启，都会拉取最新的数据，包括阅读数等。\n- 如果要发布到`telegraph`，`title`尽量不要设置为`account`。\n- `telegraph`在 mac、ios、android 下，阅读体验很好，在 windows 下就是一个普通网页而已。\n\n### nodejs 环境下直接使用\n\n```sh\nnpm i getcomic -g\n```\n\n后续步骤和 docker 一样。\n\n### 测试\n\n少量测试用例，jest 即可执行。\n\n### 依赖\n\n- [jarviscrawlercore](https://github.com/zhs007/jarviscrawlercore): 本项目核心数据采集模块直接来源于 [jarviscrawlercore](https://github.com/zhs007/jarviscrawlercore)，[jarviscrawlercore](https://github.com/zhs007/jarviscrawlercore)还支持很多别的数据采集。\n\n### 更新说明\n\n##### v0.5\n\n- 新增源 `tvbsmh`\n- 优化了 Docker 镜像大小（降低了接近 50%）\n- 支持一次下载特定几本\n- 支持一次下载排除特定几本\n- 支持下载完成后转换图片格式，可以转换为png或jpg（jpg性价比高一些），用来解决pdf打包不标准的图片可能显示错误的问题\n- 新增只打包本地图片文件\n\n##### v0.3\n\n- 新增源 `manhuagui`\n- 修正了某些漫画，对 pdf 页面大小判断不准确的 bug\n- 可以将多话打包成 1 本\n\n##### v0.2\n\n- 新增发布漫画到 telegraph\n- 支持 telegraph 自动传图片\n- 支持 telegraph 上传缓存，不会重复上传文件\n\n##### v0.1\n\n- 支持 manhuadb 源下载\n- 支持直接打包为 pdf，方便各种电子书（特别是非 kindle 系列的大屏电子书）阅读\n- 支持本地缓存，不会重复下载\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fgetcomic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhs007%2Fgetcomic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhs007%2Fgetcomic/lists"}