UNPKG

cpd_client

Version:

/!\ Pour utiliser ce module il faut aussi utiliser le [CPD_SERVER](https://www.npmjs.com/package/cpd_server)

76 lines (68 loc) 2.78 kB
const fetch = require("node-fetch") const fs = require('fs') const downloader = require('./downloader') const t = module.exports var headers = new fetch.Headers() var launcher_name = "IA Launcher" var launcher_url = "http://infinity-alex.fun:8080/modpack/1.8.9" var launcher_version = "IA Launcher" var arrayFiles = { file: [] } t.events = downloader.events t.setLauncher = function setLauncher(name, url, version) { launcher_name = name; launcher_url = url; launcher_version = version; }; t.getLauncher = function getLauncher() { return { name: launcher_name, url: launcher_url, version: launcher_version }; }; t.start = function start(redownload, p) { headers.set('User-Agent', `[CPD_CLIENT] Version: ${require('./package.json').version}, ${t.getLauncher().name} v${t.getLauncher().version} (launcher)`) downloader.events.emit("started", "[CPD] Fetching...") fetch(`${t.getLauncher().url}modpack/${t.getLauncher().version}`, { method: "GET", headers: headers }) .then(res => res.json()) .then((json) => { console.log(`${t.getLauncher().url}modpack/${t.getLauncher().version}`) try { for (var i = 0; i < json.file.length; i++) { var obj = json.file[i]; arrayFiles.file.push(trim(obj)); if (redownload === false) { if (fs.existsSync(`./${arrayFiles.file[i]}/${getFileName(json.file[i])}`)) { t.events.emit("download", { type: "file_err", error: "[CPD] File already exist !!" }) } else { downloader.download(json.file[i], `${p}/${arrayFiles.file[i]}`) console.log(p) } } else if (redownload === true) { downloader.download(json.file[i], `${p}/${arrayFiles.file[i]}`) } else { return "[CPD] Error : 'redownload' is boolean paramter" } } } catch (error) { t.events.emit("download", { type: "url_err", error: "[CPD] This versions does not exist in cpd_server" }) } }); } function trim(str) { if (typeof str !== 'string') { throw new Error('only string parameter supported!'); } var regex = new RegExp(`${t.getLauncher().url}update/`, "g"); var a = str.replace(regex, ''); if (str.includes("forge.jar")) { return `${a.toString().slice(0, a.lastIndexOf('/'))}/` } else { return `${a.toString().slice(0, a.lastIndexOf('/'))}` } } function getFileName(fileURL) { return fileURL.substring(fileURL.lastIndexOf('/') + 1) }