Skip to content

Commit 4127edf

Browse files
committed
add func
1 parent 661e7c5 commit 4127edf

1 file changed

Lines changed: 34 additions & 2 deletions

File tree

DownloadAllContent/DownloadAllContent.user.js

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// @name:zh-TW 懶人小説下載器
55
// @name:ja 怠惰者小説ダウンロードツール
66
// @namespace hoothin
7-
// @version 1.25
7+
// @version 1.26
88
// @description Fetch and download main content on current page, provide special support for chinese novel
99
// @description:zh-CN 通用网站内容抓取工具,可批量抓取小说、论坛内容等并保存为TXT文档
1010
// @description:zh-TW 通用網站內容抓取工具,可批量抓取小說、論壇內容等並保存為TXT文檔
@@ -38,6 +38,8 @@
3838
downloading:"已下载完成 %s 段,剩余 %s 段<br>正在下载 %s",
3939
complete:"已全部下载完成,共 %s 段",
4040
del:"设置小说干扰码的CSS选择器",
41+
custom:"自定义网址下载",
42+
reSort:"按标题名重新排序",
4143
setting:"懒人小说下载设置"
4244
};
4345
break;
@@ -49,6 +51,8 @@
4951
downloading:"%s pages are downloaded, there are still %s pages left<br>Downloading %s ......",
5052
complete:"Completed! The pages totalled %s",
5153
del:"Set css selectors for delete",
54+
custom:"Custom url for download",
55+
reSort:"ReSort by title",
5256
setting:"DownloadAllContent Setting"
5357
};
5458
break;
@@ -81,6 +85,7 @@
8185
}
8286

8387
function indexDownload(aEles){
88+
if(aEles.length<1)return;
8489
initTxtDownDiv();
8590
var j=0,rCats=[];
8691
function getDocEle(str){
@@ -208,6 +213,7 @@
208213
for(i=0;i<childlist.length;i++){
209214
var child=childlist[i];
210215
if(getDepth(child)==getDepth(largestContent)){
216+
if(!largestContent.className && child.className)continue;
211217
if((largestContent.className && largestContent.className==child.className)||largestContent.parentNode ==child.parentNode){
212218
getRightStr(child, true);
213219
}else {
@@ -275,11 +281,37 @@
275281
var selValue=GM_getValue("selectors");
276282
var selectors=prompt(i18n.del,selValue?selValue:"");
277283
GM_setValue("selectors",selectors);
278-
if(window.confirm("重新排序")){
284+
if(window.confirm(i18n.reSort)){
279285
GM_setValue("contentSort", true);
280286
}else{
281287
GM_setValue("contentSort", false);
282288
}
289+
var urls=window.prompt(i18n.custom,"https://xxx.xxx/book-[20-99].html, https://xxx.xxx/book-[01-10].html");
290+
if(urls){
291+
var processEles=[];
292+
[].forEach.call(urls.split(","),function(i){
293+
var varNum=/\[\d+\-\d+\]/.exec(i)[0].trim();
294+
var num1=/\[(\d+)/.exec(varNum)[1].trim();
295+
var num2=/(\d+)\]/.exec(varNum)[1].trim();
296+
var num1Int=parseInt(num1);
297+
var num2Int=parseInt(num2);
298+
var numLen=num1.length;
299+
var needAdd=num1.charAt(0)=="0";
300+
if(num1Int>=num2Int)return;
301+
for(var j=num1Int;j<=num2Int;j++){
302+
var urlIndex=j.toString();
303+
if(needAdd){
304+
while(urlIndex.length<numLen)urlIndex="0"+urlIndex;
305+
}
306+
var curUrl=i.replace(/\[\d+\-\d+\]/,urlIndex).trim();
307+
var curEle=document.createElement("a");
308+
curEle.href=curUrl;
309+
processEles.push(curEle);
310+
curEle.innerText=processEles.length.toString();
311+
}
312+
});
313+
indexDownload(processEles);
314+
}
283315
}
284316
GM_registerMenuCommand(i18n.fetch, fetch);
285317
GM_registerMenuCommand(i18n.setting, setDel);

0 commit comments

Comments
 (0)