|
1 | | -var http = require('https'); |
2 | | -var fs = require('fs'); |
| 1 | +const http = require('https'); |
| 2 | +const fs = require('fs'); |
3 | 3 |
|
| 4 | +// Add Pack (downloading pack from mediafire) |
4 | 5 | exports.addPack = function(name){ |
| 6 | + |
5 | 7 | let patt = new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/) |
| 8 | + |
6 | 9 | if(patt.test(name)){ |
| 10 | + |
7 | 11 | download(name, "external") |
| 12 | + |
8 | 13 | } else http.get("https://download1350.mediafire.com/q7aa9e774jug/oyrbdi6fbpqo1bl/mcscri%27%2B%27pt+packages.json", (res) => { |
| 14 | + |
9 | 15 | res.setEncoding('utf8'); |
10 | | - res.on('data', function (chunk) { |
11 | | - let packs = JSON.parse(chunk) |
12 | | - let obj = packs.find(obj => obj.name === name.toLowerCase()) |
13 | | - if(obj && obj.url){ |
14 | | - console.log(obj.url.slice(0, 17)) |
15 | | - if(obj.url.slice(0, 17) == "https://github.com" || obj.url.slice(0, 16) == "http://github.com") downloadFromRedirectLink(obj.url, obj.name) |
16 | | - else download(obj.url, obj.name) |
17 | | - } else { |
18 | | - let packStr = "" |
19 | | - packs.forEach((e, i) => { |
20 | | - packStr += e.name |
21 | | - if(i != packs.length - 1) packStr += ", " |
22 | | - }) |
23 | | - console.log("\x1b[31m","Your pack was not found! Please use one of these: ","\x1b[0m") |
24 | | - console.log("\x1b[36m",packStr,"\x1b[0m") |
25 | | - } |
| 16 | + res.on('data', function (chunk) { |
| 17 | + |
| 18 | + let packs = JSON.parse(chunk) |
| 19 | + let obj = packs.find(obj => obj.name === name.toLowerCase()) |
| 20 | + |
| 21 | + if(obj && obj.url){ |
| 22 | + console.log(obj.url.slice(0, 17)) |
| 23 | + if(obj.url.slice(0, 17) == "https://github.com" || obj.url.slice(0, 16) == "http://github.com") downloadFromRedirectLink(obj.url, obj.name) |
| 24 | + |
| 25 | + else download(obj.url, obj.name) |
| 26 | + |
| 27 | + } else { |
| 28 | + |
| 29 | + let packStr = "" |
| 30 | + packs.forEach((e, i) => { |
| 31 | + |
| 32 | + packStr += e.name |
| 33 | + if(i != packs.length - 1) packStr += ", " |
| 34 | + |
| 35 | + }) |
| 36 | + |
| 37 | + console.log("\x1b[31m","Your pack was not found! Please use one of these: ","\x1b[0m") |
| 38 | + console.log("\x1b[36m",packStr,"\x1b[0m") |
| 39 | + |
| 40 | + } |
26 | 41 | }); |
27 | 42 |
|
28 | 43 | }).on('error', function(e) { |
| 44 | + |
29 | 45 | console.log("\x1b[31m","Got error: " + e.message,"\x1b[0m"); |
| 46 | + |
30 | 47 | }); |
31 | 48 | } |
| 49 | + |
| 50 | +// Download File From url |
32 | 51 | var download = function (url, name){ |
| 52 | + |
33 | 53 | console.log("\x1b[36m","Downloading "+name+".zip ...","\x1b[0m") |
| 54 | + |
34 | 55 | let file = fs.createWriteStream(name + '.zip'); |
35 | 56 | let request = http.get(url, function(response) { |
| 57 | + |
36 | 58 | response.pipe(file) |
37 | 59 | response.on('end', () => { |
38 | 60 | console.log("\x1b[32m","Download of "+name+".zip finished!","\x1b[0m") |
39 | 61 | }); |
| 62 | + |
40 | 63 | }).on('error', function(e) { |
| 64 | + |
41 | 65 | console.log("\x1b[31m","Got error: " + e.message,"\x1b[0m"); |
| 66 | + |
42 | 67 | }); |
43 | 68 | } |
| 69 | + |
| 70 | +// Download File From Redirected-Url (in this programm mostly github.com) |
44 | 71 | function downloadFromRedirectLink(url, file) { |
| 72 | + |
45 | 73 | http.get(url, function(res) { |
46 | | - if(res.statusCode != 302){ |
| 74 | + |
| 75 | + if(res.statusCode != 302){ // No redirect |
| 76 | + |
47 | 77 | console.log("error: no redirect found"); |
48 | 78 | return; |
| 79 | + |
49 | 80 | } |
| 81 | + |
50 | 82 | download(res.headers.location,file); |
| 83 | + |
51 | 84 | }).on('error', function(e) { |
| 85 | + |
52 | 86 | console.log("\x1b[31m", "Got error: " + e.message,"\x1b[0m"); |
| 87 | + |
53 | 88 | }); |
54 | 89 | } |
0 commit comments