forked from qinlili23333/ctfileGet
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ctget.js
90 lines (90 loc) · 3.71 KB
/
ctget.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
window.ctfile = {
version: () => { return "2.6.1" },
getByLink: (link, password, token, firstcallback) => {
return ctfile.getByID(link.substring(link.lastIndexOf("/") + 1, (link.lastIndexOf("?") == -1) ? undefined : link.lastIndexOf("?")), (link.lastIndexOf("p=") == -1) ? password : link.substring(link.lastIndexOf("p=") + 2), token, firstcallback);
},
getByID: async (fileid, password, token, firstcallback) => {
const origin = () => {
//兼容node.js
if (document && !(document.location.origin == 'file://')) {
return document.location.origin;
} else {
return "https://ctfile.qinlili.workers.dev";
}
};
const path = id => {
switch (id.split("-").length) {
case 2: {
return "file";
};
case 3:
default: {
return "f";
}
}
}
jsonText = JSON.parse(await (await fetch("https://webapi.ctfile.com/getfile.php?path=" + path(fileid) + "&f=" + fileid + "&passcode=" + password + "&token=" + token + "false&r=" + Math.random() + "&ref=" + origin(), {
"headers": {
"origin": origin(),
"referer": origin()
},
})).text());
if (jsonText.code == 200) {
if (firstcallback) {
firstcallback({
"name": jsonText.file.file_name,
"size": jsonText.file.file_size,
"time": jsonText.file.file_time,
})
};
if (jsonText.file.is_vip == 1) {
return {
"success": true,
"name": jsonText.file.file_name,
"size": jsonText.file.file_size,
"time": jsonText.file.file_time,
"link": jsonText.file.vip_dx_url
};
} else {
jsonText2 = JSON.parse(await (await fetch("https://webapi.ctfile.com/get_file_url.php?uid=" + jsonText.file.userid + "&fid=" + jsonText.file.file_id + "&file_chk=" + jsonText.file.file_chk + "&app=0&acheck=2&rd=" + Math.random(), {
"headers": {
"origin": origin(),
"referer": origin()
},
})).text());
if (jsonText2.code == 200) {
return {
"success": true,
"name": jsonText.file.file_name,
"size": jsonText.file.file_size,
"time": jsonText.file.file_time,
"link": jsonText2.downurl
};
} else {
if (jsonText2.code == 302) {
return {
"success": false,
"name": jsonText.file.file_name,
"size": jsonText.file.file_size,
"time": jsonText.file.file_time,
"errormsg": "需要登录!"
};
} else {
return {
"success": false,
"name": jsonText.file.file_name,
"size": jsonText.file.file_size,
"time": jsonText.file.file_time,
"errormsg": jsonText2.message
};
}
}
}
} else {
return {
"success": false,
"errormsg": jsonText.file.message
};
}
}
}