Skip to content

Commit

Permalink
v1.9
Browse files Browse the repository at this point in the history
  • Loading branch information
kanasimi committed Feb 6, 2019
1 parent b23ee46 commit b135b92
Show file tree
Hide file tree
Showing 29 changed files with 128 additions and 64 deletions.
3 changes: 2 additions & 1 deletion .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
本工具以修正錯誤為主,由於人力有限,只能把精力放在維護常用的網站。新增網站僅在行有餘力時為之,請見諒。
英語或韓語的網站煩請利用 Free Manga Downloader 之類軟體會比較好。這邊幾乎不會上英語或者韓語網站,就算做了出來也很少在做維護,沒有專門看英語韓語網站的工具維護得勤勞。
I am sorry that for English or Korean sites, using Free Manga Downloader is much suitable. For the deficiency of time, it is hard to maintain the tools instantly.
新增網站時,請 **一個網站開一個議題,除了在標題說明要新增網站,並加上網站名稱**。
另外增加網站往往要耗費時間、作許多考量,之後還需維護;請確認網站經常更新、付費作品不多,並附個其他網站未揭載之作品。
Expand All @@ -19,7 +20,7 @@ Plese fill the template when you reporting a new issue, thank you!
-->

* **Version**: <!-- 您使用的 work_crawler 為哪個版本: 安裝包, 懶人安裝法 -->
* **Interface**: <!-- 您使用的 work_crawler 為哪個介面: 圖形介面, 命令行介面 -->
* **Interface**: <!-- 您使用的 work_crawler 為哪個介面: 圖形介面, 命令列介面 -->

<!-- 請描述出了什麼問題、造成問題的操作步驟,您可貼上錯誤訊息或者執行時的畫面 -->

6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Welcome to join [the translating project](https://github.com/kanasimi/work_crawl
| [知音漫客](https://www.zymk.cn/) | zymk.js | |
| [大角虫漫画](https://www.dajiaochongmanhua.com/) | dajiaochong.js | 2018/6/12 開始永久付費制。 |
| [动漫屋网](http://www.dm5.com/) | dm5.js | 似乎不能並行下載圖片,下載速度較慢。似乎拿來下載日本漫畫的人比較多。 |
| [土豪漫画](https://www.tohomh.com/) | tohomh.js | 系統似 dm5。 |
| [土豪漫画](https://www.tohomh123.com/) | tohomh.js | 系統似 dm5。 |
| [快看漫画](https://www.kuaikanmanhua.com/) | kuaikan.js | **本工具無法下載VIP付費內容** |
| [微博动漫](http://manhua.weibo.com/) | weibo.js | **本工具無法下載VIP付費內容**<br />竟然所有資料皆可由API取得,實在是程序猿的好搭檔! |
| [漫画台](http://www.manhuatai.com/) | manhuatai.js | |
Expand All @@ -118,7 +118,7 @@ Welcome to join [the translating project](https://github.com/kanasimi/work_crawl
| [comico](http://www.comico.com.tw/) | comico.js | 本工具經設定帳號資訊後,可自動使用閱讀卷(レンタル券),但無法處理互動式漫畫、coin收費作業。 |
| [WEBTOON](https://www.webtoons.com/zh-hant/) | webtoon.js | NAVER WEBTOON 中文官網 韓國漫畫<br />本工具無法下載有動態效果的漫畫。 |
| [咚漫中文官网](https://www.dongmanmanhua.cn/) | dongman.js | NAVER WEBTOON 中文官网 韩国漫画<br />本工具無法下載有動態效果的漫畫。 |
| [57漫画网](http://www.5qmh.com/) | 57mh.js | 系統同 2manhua.js。可能是早期版本的 圣樱漫画管理系统? MHD模板? |
| [57漫画网](http://www.5qmh.com/) | 57mh.js | 缺話眾多。系統同 2manhua.js。可能是早期版本的 圣樱漫画管理系统? MHD模板? |
| ~~[热漫吧](http://www.remanba.com/)~~ | ~~archive/remanba.js~~ | 自 2016/12/27 14:42 最後一次成功連接後,下午起就持續 404 至 2018/6/11 未復原。 |
| ~~[三七阅读](http://www.37yue.com/)~~ | ~~archive/37yue.js~~ | 自 2017/6/9 下午最後一次連接後,2017/6/10 9時起就持續 404 至 2018/6/11 未復原。 |
| ~~[爱漫画](http://www.2manhua.com/)~~ | ~~archive/2manhua.js~~ | 許多作品似乎從2017/9/3起就沒有更新。2017/5/16 4:43 最後一次成功連接,至 2018/6/11 未復原。 |
Expand Down Expand Up @@ -150,7 +150,7 @@ Welcome to join [the translating project](https://github.com/kanasimi/work_crawl

## Installation 安裝

若是想要使用系統安裝的方法,您可以 **[直接下載安裝包![GitHub release](https://img.shields.io/github/release/kanasimi/work_crawler.svg)](https://github.com/kanasimi/work_crawler/releases/latest/)**,惟 **安裝包不含最新的功能**,有些網站下載起來會出問題。安裝包現在落後最新測試版修正次數:![Github commits (since latest release)](https://img.shields.io/github/commits-since/kanasimi/work_crawler/latest.svg)若是欲採用最新的版本,或者用作研究開發、想要使用命令列介面作批次處理,請採用下列步驟。
若是想要使用系統安裝的方法,或者您的系統並未提供命令列介面,您可以 **[直接下載安裝包![GitHub release](https://img.shields.io/github/release/kanasimi/work_crawler.svg)](https://github.com/kanasimi/work_crawler/releases/latest/)**,惟 **安裝包不含最新的功能**,有些網站下載起來會出問題。安裝包現在落後最新測試版修正次數:![Github commits (since latest release)](https://img.shields.io/github/commits-since/kanasimi/work_crawler/latest.svg)欲採用最新版本,或研究開發、想要使用命令列介面作批次處理,請採用下列步驟。

### Lazy installation 懶人安裝法
為了想趕快嘗鮮的您~<!-- (已經做過的步驟可以跳過) -->
Expand Down
10 changes: 6 additions & 4 deletions arrangement/classify_and_compress.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,9 @@ Object.keys(catalog_directory).forEach(function(catalog) {
// -----------------------------------------------------------------

// 首先整個掃描一次,篩選出需要處理的目錄,放在process_queue。
var process_queue = [], PATTERN_executable_file = /\.(?:exe|dll|pkg)$/i;
var process_queue = [],
// 可執行檔或函式庫
PATTERN_executable_file = /\.(?:exe|dll|pkg)$/i;
fso_name_list.forEach(check_fso);

function check_fso(fso_name) {
Expand Down Expand Up @@ -242,7 +244,7 @@ function check_fso(fso_name) {

// 經過測試,.pkg file 通常越壓縮越大。
if (false && PATTERN_executable_file.test(fso_name)) {
process_queue.push([ directory_path, 'game file', '為遊戲執行檔' ]);
process_queue.push([ directory_path, 'game file', '為遊戲可執行檔或函式庫' ]);
} else
classify(fso_name, directory_path, fso_status);
return;
Expand Down Expand Up @@ -358,7 +360,7 @@ function check_fso(fso_name) {

if ((exe_count > 0 || iso_count > 1 && sub_sub_files_count < 20 || iso_count === sub_sub_files_count)
&& test_size_OK(1e10, 'game folder', '含有 ' + exe_count + '/'
+ sub_sub_files_count + ' 個可執行檔')) {
+ sub_sub_files_count + ' 個可執行檔或函式庫')) {
return;
}

Expand All @@ -383,7 +385,7 @@ function check_fso(fso_name) {
return sub_fso_name_list.some(function(name) {
return PATTERN_executable_file.test(name);
});
}) && test_size_OK(null, 'game folder', '次目錄中含有可執行檔')) {
}) && test_size_OK(null, 'game folder', '次目錄中含有可執行檔或函式庫')) {
return;
}

Expand Down
14 changes: 9 additions & 5 deletions comic.cmn-Hans-CN/57mh.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ var crawler = new CeL.work_crawler({
skip_error : true,

// one_by_one : true,
// 早於2017/11-2019/1底換域名: http://www.57mh.com/
base_URL : 'http://www.5qmh.com/',

// 取得伺服器列表。
Expand Down Expand Up @@ -136,17 +137,20 @@ var crawler = new CeL.work_crawler({
var chapter_data = html.between('<script type="text/javascript">eval',
'\n');
if (!chapter_data || !(chapter_data = decode(chapter_data))) {
CeL.warn(work_data.title + ' #' + chapter_NO + ': '
+ 'No valid chapter data got!');
return;
}

// 設定必要的屬性。
chapter_data.title = get_label(html.between('<h2>', '</h2>'));
chapter_data.image_count = chapter_data.fc;
chapter_data.image_list = chapter_data.fs.map(function(url) {
return {
url : url
}
});
chapter_data.image_list = chapter_data.fs;
if (!chapter_data.fs[chapter_data.fs.length - 1]) {
// for http://www.5qmh.com/6908/0296.html?p=9
chapter_data.fs.pop();
chapter_data.image_count--;
}

return chapter_data;
}
Expand Down
18 changes: 9 additions & 9 deletions comic.cmn-Hans-CN/733dm.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ var crawler = new CeL.work_crawler({
// fs.readdirSync('.').forEach(function(d){if(/^\d+\s/.test(d))fs.renameSync(d,'manhua-'+d);})
// fs.readdirSync('.').forEach(function(d){if(/^manhua-/.test(d))fs.renameSync(d,d.replace(/^manhua-/,''));})
// 所有作品都使用這種作品類別前綴。
use_work_id_prefix : 'mh',
common_catalog : 'mh',

// 解析 作品名稱 → 作品id get_work()
search_URL : 'statics/search.aspx?key=',
Expand All @@ -51,14 +51,14 @@ var crawler = new CeL.work_crawler({
//
/<a href="\/([a-z]+\/[a-z_\-\d]+)\/"[^<>]*?>([^<>]+)/);
// console.log(matched);
if (this.use_work_id_prefix
if (this.common_catalog
// 去掉所有不包含作品類別前綴者。
&& !matched[1].startsWith(this.use_work_id_prefix + '/'))
&& !matched[1].startsWith(this.common_catalog + '/'))
return;
id_list.push(this.use_work_id_prefix
id_list.push(this.common_catalog
//
? matched[1].slice((this.use_work_id_prefix + '/').length)
: matched[1].replace('/', '-'));
? matched[1].slice((this.common_catalog + '/').length) : matched[1]
.replace('/', '-'));
id_data.push(get_label(matched[2]));
}, this);
// console.log([ id_list, id_data ]);
Expand All @@ -67,8 +67,8 @@ var crawler = new CeL.work_crawler({

// 取得作品的章節資料。 get_work_data()
work_URL : function(work_id) {
return (this.use_work_id_prefix ? this.use_work_id_prefix + '/'
+ work_id : work_id.replace('-', '/'))
return (this.common_catalog ? this.common_catalog + '/' + work_id
: work_id.replace('-', '/'))
+ '/';
},
parse_work_data : function(html, get_label, extract_work_data) {
Expand Down Expand Up @@ -146,7 +146,7 @@ var crawler = new CeL.work_crawler({
url = url.replace(/(\.jpg)\/.*/, '$1');
// console.log(url);
if (!url.includes('://')) {
// File_Server 图片服务器
// TODO: using File_Server 图片服务器: 此 URL 會再轉址至圖片真實網址。
url = 'http://img_733.234us.com/' + url;
}
return {
Expand Down
9 changes: 5 additions & 4 deletions comic.cmn-Hans-CN/930mh.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,15 @@ CeL.run('application.net.work_crawler.SinMH');
// ----------------------------------------------------------------------------

var crawler = CeL.SinMH({
// recheck:從頭檢測所有作品之所有章節與所有圖片。不會重新擷取圖片。對漫畫應該僅在偶爾需要從頭檢查時開啟此選項。
// 有些漫畫作品分區分單行本、章節與外傳,當章節數量改變、添加新章節時就需要重新檢查。
// recheck : 'changed',

// one_by_one : true,

base_URL : 'http://www.duzhez.com/',

extract_work_id : CeL.is_digits,

// for 年轻人脱离黑魔法虽然刻不容缓、但试着就业之后待遇却很好、社长和使魔也非常可爱真是棒极了!
acceptable_types : 'images',

search_URL : 'API',
api_base_URL : 'https://api.acg.gd/'
});
Expand Down
3 changes: 2 additions & 1 deletion comic.cmn-Hans-CN/dm5.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ var crawler = new CeL.work_crawler({

// recheck:從頭檢測所有作品之所有章節與所有圖片。不會重新擷取圖片。對漫畫應該僅在偶爾需要從頭檢查時開啟此選項。
// 有些漫畫作品分區分單行本、章節與外傳,當章節數量改變、添加新章節時就需要重新檢查。
recheck : 'changed',
// 當有多個分部的時候才重新檢查。
recheck : 'multi_parts_changed',
// 當無法取得chapter資料時,直接嘗試下一章節。在手動+監視下recheck時可併用此項。
// skip_chapter_data_error : true,

Expand Down
1 change: 1 addition & 0 deletions comic.cmn-Hans-CN/dmzj.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ var crawler = new CeL.work_crawler({

// one_by_one : true,
base_URL : 'http://www.dmzj.com/',
// https://manhua.dmzj.com/update_1.shtml
base_URL_manhua : 'http://manhua.dmzj.com/',

// 提取出引數(如 URL)中的作品ID 以回傳。
Expand Down
2 changes: 1 addition & 1 deletion comic.cmn-Hans-CN/iqg365.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ CeL.run('application.net.work_crawler.qTcms2017');

var crawler = CeL.qTcms2017({
// 本站速度頗慢,必須等待較久否則容易中斷。
timeout : '60s',
// timeout : '60s',

// {Natural}最小容許圖案檔案大小 (bytes)。
// MIN_LENGTH : 500,
Expand Down
7 changes: 3 additions & 4 deletions comic.cmn-Hans-CN/kuaikan.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,9 @@ crawler = new CeL.work_crawler({
},
parse_search_result : function(html, get_label) {
html = JSON.parse(html).data.hit;
var id_list = html.map(function(book) {
return book.id;
});
return [ id_list, html ];
return [ html, html ];
},
id_of_search_result : 'id',
title_of_search_result : 'title',

// 取得作品的章節資料。 get_work_data()
Expand Down Expand Up @@ -87,6 +85,7 @@ crawler = new CeL.work_crawler({
// 轉成由舊至新之順序。
work_data.chapter_list.reverse();
}
// console.log(work_data.chapter_list);
},

// 取得每一個章節的各個影像內容資料。 get_chapter_data()
Expand Down
3 changes: 3 additions & 0 deletions comic.cmn-Hans-CN/manhuadb.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ crawler = new CeL.work_crawler({
// 本站常常無法取得圖片,因此得多重新檢查。
// recheck:從頭檢測所有作品之所有章節與所有圖片。不會重新擷取圖片。對漫畫應該僅在偶爾需要從頭檢查時開啟此選項。
// recheck : true,
// 當有多個分部的時候才重新檢查。
recheck : 'multi_parts_changed',
// 當無法取得chapter資料時,直接嘗試下一章節。在手動+監視下recheck時可併用此項。
// skip_chapter_data_error : true,

Expand Down Expand Up @@ -114,6 +116,7 @@ crawler = new CeL.work_crawler({
}
++NO_in_part;
var chapter_data = {
// 使章節目錄名稱不包含 part_NO。
// part_NO : part_NO,
part_title : part_title,
NO_in_part : NO_in_part,
Expand Down
4 changes: 2 additions & 2 deletions comic.cmn-Hans-CN/manhuagui.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,11 @@ crawler = new CeL.work_crawler({
// 當網站不允許太過頻繁的訪問/access時,可以設定下載之前的等待時間(ms)。
// 模仿實際人工請求。
// 2018/7/12 22:29:18: 9s: NG, ban 2 hr.
// 2019/2/5: 35s: NG, ban 1 day.
// 10s, 15s 在下載過100章(1 hr)之後一樣會 ban 5hr。
// 20s, 30s 在下載過200章(~2 hr)之後一樣會 ban。
// 60s 大致OK
chapter_time_interval : '40s',
// 2019/2/6: 40s: NG, ban 1 day.
chapter_time_interval : '50s',

// 2018/3/3 已經不再有常常出現錯誤的情況。
// allow .jpg without EOI mark.
Expand Down
4 changes: 2 additions & 2 deletions comic.cmn-Hans-CN/manhuagui_tw.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,11 @@ crawler = new CeL.work_crawler({
// 當網站不允許太過頻繁的訪問/access時,可以設定下載之前的等待時間(ms)。
// 模仿實際人工請求。
// 2018/7/12 22:29:18: 9s: NG, ban 2 hr.
// 2019/2/5: 35s: NG, ban 1 day.
// 10s, 15s 在下載過100章(1 hr)之後一樣會 ban 5hr。
// 20s, 30s 在下載過200章(~2 hr)之後一樣會 ban。
// 60s 大致OK
chapter_time_interval : '40s',
// 2019/2/6: 40s: NG, ban 1 day.
chapter_time_interval : '50s',

// 2018/3/3 已經不再有常常出現錯誤的情況。
// allow .jpg without EOI mark.
Expand Down
2 changes: 1 addition & 1 deletion comic.cmn-Hans-CN/manhuatai.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ crawler = new CeL.work_crawler({
// e.g., http://www.manhuatai.com/faqishaonv/99.html
// http://www.kanman.com/27965/99.html
work_data.trying = true;
CeL.info('嘗試用數字遍歷的方法一個一個測試是否能讀取。檢查到第300章都還沒有內容就放棄。');
CeL.info('嘗試用數字遍歷的方法一個一個章節測試是否能讀取。檢查到第300章都還沒有內容就放棄。');
for (var i = 1; i < 300; i++) {
work_data.chapter_list.push({
url : '/' + work_data.id + '/' + i + '.html'
Expand Down
12 changes: 10 additions & 2 deletions comic.cmn-Hans-CN/tohomh.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ var crawler = new CeL.work_crawler({

// recheck:從頭檢測所有作品之所有章節與所有圖片。不會重新擷取圖片。對漫畫應該僅在偶爾需要從頭檢查時開啟此選項。
// recheck : true,
// 當有多個分部的時候才重新檢查。
recheck : 'multi_parts_changed',
// 當無法取得chapter資料時,直接嘗試下一章節。在手動+監視下recheck時可併用此項。
// skip_chapter_data_error : true,

Expand Down Expand Up @@ -195,6 +197,7 @@ var crawler = new CeL.work_crawler({
//
= work_data.chapter_list[chapter_NO - 1].image_list = [
// 第一張圖片的網址在網頁中。
// <div class="comiclist">\n <div class="comicpage">\n <img src="..."
html.between(' class="comiclist"', '</div>').between(' src="', '"') ];

html = html.match(
Expand All @@ -203,13 +206,18 @@ var crawler = new CeL.work_crawler({
// console.log(html);
var config = Object.create(null), matched, PATTERN =
//
/[\s\n;]var\s+([a-z]+)\s*=\s*(\d+)/ig;
/[\s\n;]var\s+([a-z]+)\s*=\s*(\d+|[a-z]+|'[^']*'|"[^"]*")/ig;
while (matched = PATTERN.exec(html)) {
config[matched[1]] = matched[2];
config[matched[1]] = eval(matched[2]);
}
// console.log(config);
var _this = this, base_URL = 'action/play/read?did=' + config.did
+ '&sid=' + config.sid + '&iid=', image_count = config.pcount;
if (!image_list[0].includes('://')) {
// 2019/2/5 13:-17: 間改版。
// assert: image_list[0].startsWith('data:image/')
image_list[0] = config.pl;
}

if (!(image_count >= 1)) {
// e.g., https://www.tohomh.com/shijie/276.html
Expand Down
9 changes: 9 additions & 0 deletions comic.cmn-Hans-CN/weibo.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,18 @@ var crawler = new CeL.work_crawler({

// 取得每一個章節的各個影像內容資料。 get_chapter_data()
parse_chapter_data : function(html, work_data, get_label) {
// console.log(html);
var chapter_data = JSON.parse(html).data, site_ver = 'site_ver='
+ chapter_data.site_ver;

// console.log(chapter_data);
if (!chapter_data.json_content.page
// 本章为付费章节
&& !chapter_data.is_allow_read.is_chapter_read) {
chapter_data.limited = true;
return;
}

// chapter_data.image_count = chapter_data.json_content.header.pageNum;
(chapter_data.image_list = chapter_data.json_content.page)
// @see .formatImgSrc @
Expand Down
8 changes: 6 additions & 2 deletions comic.ja-JP/ComicWalker.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ var crawler = new CeL.work_crawler({
last_update : get_label(html.between(
'<span class="comicIndex-date">', '</span>').replace('更新',
'')),
last_chapter : get_label(html.between(
latest_chapter : get_label(html.between(
'<p class="comicIndex-title">', '</p>')),
next_update : get_label(html.between(
// 【次回更新予定】2018/11/16
Expand All @@ -141,6 +141,10 @@ var crawler = new CeL.work_crawler({
work_data.author = work_data.authors.slice(0, -1);

extract_work_data(work_data, html);
if (work_data.site_name) {
// "ComicWalker - 人気マンガが無料で読める!" → "ComicWalker"
work_data.site_name = work_data.site_name.replace(/ +- .+/, '');
}

// 因為沒有明確記載作品是否完結,一年沒更新就不再檢查。
work_data.recheck_days = 400;
Expand Down Expand Up @@ -193,7 +197,7 @@ var crawler = new CeL.work_crawler({
// console.log(image_data);
if (image_data.meta.drm_hash === null) {
// e.g., 英雄の娘として生まれ変わった英雄は再び英雄を目指す
// 這個情況下所獲得的圖片內容似乎沒問題?
// 這情況下所獲得的圖片內容似乎不用解碼?
// CeL.warn('Bad image data?');
// console.log(image_data);
return;
Expand Down
5 changes: 3 additions & 2 deletions gui_electron/gui_electron.html
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,9 @@ <h3 id="download_job_trigger">
</div>

<hr />
<b class="button" onclick="CeL.Log.clear();"><span
data-gettext="清除訊息"></span></b>
<b class="button" onclick="CeL.Log.clear();"> <!-- ⎚ --> <span
data-gettext="清除訊息"></span>
</b>
<b class="button" onclick="CeL.Log.toggle();"><span
data-gettext="顯示/隱藏訊息"></span></b>
<b class="button" onclick="open_DevTools();"><span
Expand Down
4 changes: 2 additions & 2 deletions gui_electron/gui_electron_functions.js
Original file line number Diff line number Diff line change
Expand Up @@ -917,9 +917,9 @@ function destruct_download_job(crawler) {
// 顯示最後一個錯誤。
+ work_data.error_list[work_data.error_list.length - 1] + '</span>'
//
+ (work_data.error_list.length > 1 ? ' (總共有'
+ (work_data.error_list.length > 1 ? ' <small>(總共有'
//
+ work_data.error_list.length + '個錯誤)' : '');
+ work_data.error_list.length + '個錯誤)</small>' : '');
job.layer.title = work_data.error_list.join('\n');
if (false)
CeL.new_node([ {
Expand Down
Loading

0 comments on commit b135b92

Please sign in to comment.