Skip to content

Commit d78b21b

Browse files
committed
fix
1 parent 9462843 commit d78b21b

3 files changed

Lines changed: 154 additions & 16 deletions

File tree

True URL downloads/True URL downloads.user.js

Lines changed: 11 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

True URL downloads/managerLinks.js

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
/*
2+
managerLinks v0.1
3+
https://github.com/hoothin/UserScripts/tree/master/True%20URL%20downloads/managerLinks.js
4+
(c) 2017-2017 by Hoothin Wang. All rights reserved.
5+
*/
6+
var resReg = /.*(^magnet|^ed2k|\.torrent$|\.mp4$|\.rar$|\.7z$|\.zip$|\.rmvb$|\.mkv$|\.avi$|\.iso$|\.mp3$|\.txt$|\.exe$|\.chm$|\.pdf$|\.ppt$|\.doc$|\.pptx$|\.docx$|\.epub$|\.xlsx$|\.xls$|\.flac$|\.wma$|\.wav$|\.aac$|\.ape$|\.mid$|\.ogg$|\.m4a$|\.dts$|\.dsd$|\.apk$).*/i,
7+
linksArr = [],
8+
frame;
9+
var by = function(byName, secName) {
10+
var compare = function(o, p, name) {
11+
var a, b;
12+
if (typeof o === "object" && typeof p === "object" && o && p) {
13+
a = o[name];
14+
b = p[name];
15+
if (a === b) {
16+
return 0;
17+
}
18+
if (typeof a === typeof b) {
19+
return a < b ? -1 : 1;
20+
}
21+
return typeof a < typeof b ? -1 : 1;
22+
} else {
23+
throw("error");
24+
}
25+
}
26+
return function(o, p) {
27+
var result = compare(o, p, byName);
28+
if (secName && result == 0) {
29+
result = compare(o, p, secName);
30+
}
31+
return result;
32+
}
33+
}
34+
35+
function getLinks() {
36+
var links = document.querySelectorAll('a');
37+
[].forEach.call(document.querySelectorAll('a'), function(link){
38+
if (resReg.test(link.href) && linksArr.toString().indexOf(link.href) == -1) {
39+
linksArr.push(link.href);
40+
}
41+
});
42+
}
43+
44+
function showLinkFrame(callBack) {
45+
var linkItems = [];
46+
var typeHtml = "类型:";
47+
if (!frame) {
48+
frame = $('<div id="managerLinksContent" style="display:none;">
49+
<div style="height:100%; width:100%; position:fixed; top:0; z-index:99998; opacity:0.3; filter: alpha(opacity=30); background-color:#000"></div>
50+
<div id="managerLinksBody" style="width:300px;height:300px;position:fixed;left:50%;top:50%;margin-top:-150px;margin-left:-150px;z-index:100000;background-color:#ffffff;border:1px solid #afb3b6;border-radius:10px;opacity:0.95;filter:alpha(opacity=95);box-shadow:5px 5px 20px 0px #000;">
51+
<div id="managerLinksType" style="width:290px;margin-left:5px;"></div>
52+
<div><input id="managerLinksSortByName" value="按文件名排序" style="width: 33.3%;" type="button"><input id="managerLinksSortByUrl" value="按网址排序" style="width: 33.3%;" type="button"><input id="managerLinksSortByType" value="按扩展名排序" style="width: 33.3%;" type="button">
53+
</div>
54+
<div id="managerLinksLinks" style="width:100%;overflow:auto;word-wrap:break-word;"></div>
55+
<div title="%i代表递增 %n代表文件名"><input id="managerLinksPre" style="width: 48%;" type="text" placeholder="批量前缀"><input id="managerLinksAfter" style="width: 48%;" type="text" placeholder="批量后缀">
56+
</div>
57+
<div><input id="managerLinksCopyAll" value="全部复制" style="width: 33.3%;" type="button"><input id="managerLinksCopySel" value="复制选中" style="width: 33.3%;" type="button"><input id="managerLinksClose" value="关闭" style="width: 33.3%;" type="button">
58+
</div>
59+
</div>
60+
</div>');
61+
$(document.body).append(frame);
62+
$("#managerLinksSortByName").click(function() {
63+
$("#managerLinksLinks").html("");
64+
linkItems.sort(by("linkName", "href"));
65+
linkItems.forEach(function(item) {
66+
$("#managerLinksLinks").append(item.item);
67+
});
68+
});
69+
$("#managerLinksSortByUrl").click(function() {
70+
$("#managerLinksLinks").html("");
71+
linkItems.sort(by("href", "type"));
72+
linkItems.forEach(function(item) {
73+
$("#managerLinksLinks").append(item.item);
74+
});
75+
});
76+
$("#managerLinksSortByType").click(function() {
77+
$("#managerLinksLinks").html("");
78+
linkItems.sort(by("type", "href"));
79+
linkItems.forEach(function(item) {
80+
$("#managerLinksLinks").append(item.item);
81+
});
82+
});
83+
$("#managerLinksCopyAll").click(function() {
84+
var pre = $("#managerLinksPre").val();
85+
var after = $("#managerLinksAfter").val();
86+
callBack(pre + linksArr.join(after + "\n" + pre) + after);
87+
});
88+
$("#managerLinksCopySel").click(function() {
89+
var pre = $("#managerLinksPre").val();
90+
var after = $("#managerLinksAfter").val();
91+
var resultStr = "";
92+
linkItems.forEach(function(item) {
93+
if (item.item[0].checked) {
94+
resultStr += (pre + item.href + after + "\n");
95+
}
96+
});
97+
callBack(resultStr);
98+
});
99+
$("#managerLinksClose").click(function() {
100+
frame.hide();
101+
});
102+
$("#managerLinksContent>div")[0].onclick = function() {
103+
frame.hide();
104+
};
105+
}
106+
getLinks();
107+
if(linksArr.length==0){
108+
callBack();
109+
return;
110+
}
111+
$("#managerLinksLinks").html("");
112+
linksArr.forEach(function(link) {
113+
var type = link.replace(resReg, "$1");
114+
var linkName = type.indexOf(".") == -1 ? link : link.replace(/.*\/([^\/]+)$/i, "$1");
115+
if (typeHtml.indexOf(type) == -1) {
116+
typeHtml += '<a href="javascript:void(0);">' + type + "</a> ";
117+
}
118+
var linkItem = $('<input type="checkbox" style="float:left;"/><a href="' + link + '" style="width:230px;display:block;overflow:hidden;word-break:keep-all;white-space:nowrap;text-overflow:ellipsis;float:left">' + decodeURIComponent(linkName) + '</a><br>');
119+
$("#managerLinksLinks").append(linkItem);
120+
linkItems.push({
121+
item: linkItem,
122+
href: link,
123+
type: type,
124+
linkName: linkName
125+
});
126+
});
127+
$("#managerLinksType").html(typeHtml);
128+
$("#managerLinksType>a").click(function(e) {
129+
var selected = this.style.textDecoration == "underline";
130+
this.style.textDecoration = selected ? "" : "underline";
131+
var type = this.innerHTML;
132+
linkItems.forEach(function(item) {
133+
if (item.type == type) {
134+
item.item[0].checked = !selected;
135+
}
136+
});
137+
});
138+
frame.show();
139+
$("#managerLinksLinks").height($("#managerLinksBody").height() - $("#managerLinksType").height() - $("#managerLinksSortByName").height() * 3 - 20);
140+
$("#managerLinksBody").hide();
141+
$("#managerLinksBody").show("slow");
142+
}

True URL downloads/managerLinks.min.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)