diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 54cd82d..5503dee 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -4,7 +4,7 @@ on: push jobs: build: - if: startsWith(github.ref, 'refs/tags/v') + # if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest env: diff --git a/android/www/src/download.js b/android/www/src/download.js index d5f9795..f805334 100644 --- a/android/www/src/download.js +++ b/android/www/src/download.js @@ -1,5 +1,6 @@ const config = require("./config"); const qm = require("./qq"); +const sixYinGetUrl = require("./sixyin"); const { createWriteStream, @@ -45,7 +46,7 @@ async function getUrl(id, provider, br) { console.debug("==== start getUrl", provider, id); if (provider === "adapterQQ") { - return qm.url(id); + return sixYinGetUrl(id); } let options = { diff --git a/android/www/src/sixyin/index.js b/android/www/src/sixyin/index.js new file mode 100644 index 0000000..eb42492 --- /dev/null +++ b/android/www/src/sixyin/index.js @@ -0,0 +1,12 @@ +const { wrap } = require("./lx-wrap"); +const originGetUrlPromise = wrap("./s2.js"); + +async function getUrl(id) { + const fn = await originGetUrlPromise; + return fn({ + provider: "tx", + id, + }); +} + +module.exports = getUrl; diff --git a/android/www/src/sixyin/lx-wrap.js b/android/www/src/sixyin/lx-wrap.js new file mode 100644 index 0000000..9b8ab9e --- /dev/null +++ b/android/www/src/sixyin/lx-wrap.js @@ -0,0 +1,268 @@ +const zlib = require("zlib"); +const needle = require("needle"); +const fs = require("fs"); +const { + createCipheriv, + publicEncrypt, + constants, + randomBytes, + createHash, +} = require("crypto"); + +function defer() { + let resolve; + let reject; + + const promise = new Promise((rs, rj) => { + resolve = rs; + reject = rj; + }); + + return { promise, resolve: resolve, reject: reject }; +} + +function parseScript(filePath) { + const scriptContent = fs.readFileSync(filePath, "utf-8"); + const name = (scriptContent.match(/@name\s*([^\n]+)/) || [])[1]; + const description = (scriptContent.match(/@description\s*([^\n]+)/) || [])[1]; + const author = (scriptContent.match(/@author\s*([^\n]+)/) || [])[1]; + const version = (scriptContent.match(/@version\s*([^\n]+)/) || [])[1]; + const homepage = (scriptContent.match(/@homepage\s*([^\n]+)/) || [])[1]; + + return { + name, + description, + version, + author, + homepage, + rawScript: scriptContent, + }; +} + +async function wrap(filePath) { + const deferred = defer(); + const currentScriptInfo = parseScript(filePath); + const { rawScript, ...rest } = currentScriptInfo; + // console.log("========currentScriptInfo==========", rest); + + const EVENT_NAMES = { + request: "request", + inited: "inited", + updateAlert: "updateAlert", + }; + const eventNames = Object.values(EVENT_NAMES); + const events = { + request: null, + }; + + let isInitedApi = false; + + globalThis.lx = { + EVENT_NAMES: EVENT_NAMES, + request( + url, + { method = "get", timeout, headers, body, form, formData }, + callback + ) { + console.log("========request==========", url, { + method, + timeout, + headers, + body, + form, + formData, + }); + + let options = { + headers, + }; + let data; + if (body) { + data = body; + } else if (form) { + data = form; + options.json = false; + } else if (formData) { + data = formData; + options.json = false; + } + options.response_timeout = + typeof timeout == "number" && timeout > 0 + ? Math.min(timeout, 60_000) + : 60_000; + + let request = needle.request( + method, + url, + data, + options, + (err, resp, body) => { + // console.log("============response======", url, body); + try { + if (err) { + callback.call(this, err, null, null); + } else { + body = resp.body = resp.raw.toString(); + try { + resp.body = JSON.parse(resp.body); + } catch (_) {} + body = resp.body; + callback.call( + this, + err, + { + statusCode: resp.statusCode, + statusMessage: resp.statusMessage, + headers: resp.headers, + bytes: resp.bytes, + raw: resp.raw, + body, + }, + body + ); + } + } catch (err) { + console.log("==================", err); + console.warn(err.message); + } + } + ).request; + + return () => { + if (!request.aborted) request.abort(); + request = null; + }; + }, + on(eventName, handler) { + // console.log("========on==========", eventName, handler); + if (!eventNames.includes(eventName)) + return Promise.reject( + new Error("The event is not supported: " + eventName) + ); + switch (eventName) { + case EVENT_NAMES.request: + events.request = handler; + break; + default: + return Promise.reject( + new Error("The event is not supported: " + eventName) + ); + } + return Promise.resolve(); + }, + send(eventName, data) { + // console.log("========send==========", eventName, data); + return new Promise((resolve, reject) => { + if (!eventNames.includes(eventName)) + return reject(new Error("The event is not supported: " + eventName)); + switch (eventName) { + case EVENT_NAMES.inited: + if (isInitedApi) return reject(new Error("Script is inited")); + isInitedApi = true; + // handleInit(this, data); + console.log("========inited==========", data); + deferred.resolve(({ provider, id }) => { + console.log("========get url==========", provider, id); + return events.request + .call( + {}, + { + source: provider, + action: "musicUrl", + info: { + type: "128k", + musicInfo: { + songmid: id, + }, + }, + } + ) + .then((response) => { + console.log("=========get url response=========", response); + + if ( + typeof response != "string" || + response.length > 2048 || + !/^https?:/.test(response) + ) { + throw new Error("failed"); + } + + return response; + }); + }); + + resolve(); + break; + case EVENT_NAMES.updateAlert: + if (isShowedUpdateAlert) + return reject( + new Error("The update alert can only be called once.") + ); + isShowedUpdateAlert = true; + console.log("========handleShowUpdateAlert==========", data); + // handleShowUpdateAlert(data, resolve, reject); + break; + default: + reject(new Error("Unknown event name: " + eventName)); + } + }); + }, + utils: { + crypto: { + aesEncrypt(buffer, mode, key, iv) { + const cipher = createCipheriv(mode, key, iv); + return Buffer.concat([cipher.update(buffer), cipher.final()]); + }, + rsaEncrypt(buffer, key) { + buffer = Buffer.concat([Buffer.alloc(128 - buffer.length), buffer]); + return publicEncrypt( + { key, padding: constants.RSA_NO_PADDING }, + buffer + ); + }, + randomBytes(size) { + return randomBytes(size); + }, + md5(str) { + return createHash("md5").update(str).digest("hex"); + }, + }, + buffer: { + from(...args) { + return Buffer.from(...args); + }, + bufToString(buf, format) { + return Buffer.from(buf, "binary").toString(format); + }, + }, + zlib: { + inflate(buf) { + return new Promise((resolve, reject) => { + zlib.inflate(buf, (err, data) => { + if (err) reject(new Error(err.message)); + else resolve(data); + }); + }); + }, + deflate(data) { + return new Promise((resolve, reject) => { + zlib.deflate(data, (err, buf) => { + if (err) reject(new Error(err.message)); + else resolve(buf); + }); + }); + }, + }, + }, + currentScriptInfo, + version: "2.0.0", + env: "desktop", + }; + + require(filePath); + + return deferred.promise; +} + +module.exports = { wrap }; diff --git a/android/www/src/sixyin/s2.js b/android/www/src/sixyin/s2.js new file mode 100644 index 0000000..ac293f0 --- /dev/null +++ b/android/www/src/sixyin/s2.js @@ -0,0 +1,671 @@ +/*! + * @name 六音音源 + * @description v1.2.0 如失效请前往 www.sixyin.com 下载最新版本 + * @version v1.2.0 + * @author 六音 + * @homepage www.sixyin.com + * @netease MUSIC_U=; + * @tencent ts_last=y.qq.com/n/ryqq/album; + * @preserve + */ + +(() => { + var _0x2f49fc = { + 124: (_0x3f74f1, _0xcf7707, _0x87b2ca) => { + const _0xf5466e = [0x1fn, 0x0n, 0x1n, 0x2n, 0x3n, 0x4n, -0x1n, -0x1n, 0x3n, 0x4n, 0x5n, 0x6n, 0x7n, 0x8n, -0x1n, -0x1n, 0x7n, 0x8n, 0x9n, 0xan, 0xbn, 0xcn, -0x1n, -0x1n, 0xbn, 0xcn, 0xdn, 0xen, 0xfn, 0x10n, -0x1n, -0x1n, 0xfn, 0x10n, 0x11n, 0x12n, 0x13n, 0x14n, -0x1n, -0x1n, 0x13n, 0x14n, 0x15n, 0x16n, 0x17n, 0x18n, -0x1n, -0x1n, 0x17n, 0x18n, 0x19n, 0x1an, 0x1bn, 0x1cn, -0x1n, -0x1n, 0x1bn, 0x1cn, 0x1dn, 0x1en, 0x1fn, 0x1en, -0x1n, -0x1n]; + const _0x4ac3f4 = [0x39n, 0x31n, 0x29n, 0x21n, 0x19n, 0x11n, 0x9n, 0x1n, 0x3bn, 0x33n, 0x2bn, 0x23n, 0x1bn, 0x13n, 0xbn, 0x3n, 0x3dn, 0x35n, 0x2dn, 0x25n, 0x1dn, 0x15n, 0xdn, 0x5n, 0x3fn, 0x37n, 0x2fn, 0x27n, 0x1fn, 0x17n, 0xfn, 0x7n, 0x38n, 0x30n, 0x28n, 0x20n, 0x18n, 0x10n, 0x8n, 0x0n, 0x3an, 0x32n, 0x2an, 0x22n, 0x1an, 0x12n, 0xan, 0x2n, 0x3cn, 0x34n, 0x2cn, 0x24n, 0x1cn, 0x14n, 0xcn, 0x4n, 0x3en, 0x36n, 0x2en, 0x26n, 0x1en, 0x16n, 0xen, 0x6n]; + const _0x17b955 = [0x27n, 0x7n, 0x2fn, 0xfn, 0x37n, 0x17n, 0x3fn, 0x1fn, 0x26n, 0x6n, 0x2en, 0xen, 0x36n, 0x16n, 0x3en, 0x1en, 0x25n, 0x5n, 0x2dn, 0xdn, 0x35n, 0x15n, 0x3dn, 0x1dn, 0x24n, 0x4n, 0x2cn, 0xcn, 0x34n, 0x14n, 0x3cn, 0x1cn, 0x23n, 0x3n, 0x2bn, 0xbn, 0x33n, 0x13n, 0x3bn, 0x1bn, 0x22n, 0x2n, 0x2an, 0xan, 0x32n, 0x12n, 0x3an, 0x1an, 0x21n, 0x1n, 0x29n, 0x9n, 0x31n, 0x11n, 0x39n, 0x19n, 0x20n, 0x0n, 0x28n, 0x8n, 0x30n, 0x10n, 0x38n, 0x18n]; + const _0x23e2ff = [0x1n, 0x1n, 0x2n, 0x2n, 0x2n, 0x2n, 0x2n, 0x2n, 0x1n, 0x2n, 0x2n, 0x2n, 0x2n, 0x2n, 0x2n, 0x1n]; + const _0x44b354 = [0x0n, 0x100001n, 0x300003n]; + const _0x1ceb2c = [0x1n, 0x2n, 0x4n, 0x8n, 0x10n, 0x20n, 0x40n, 0x80n, 0x100n, 0x200n, 0x400n, 0x800n, 0x1000n, 0x2000n, 0x4000n, 0x8000n, 0x10000n, 0x20000n, 0x40000n, 0x80000n, 0x100000n, 0x200000n, 0x400000n, 0x800000n, 0x1000000n, 0x2000000n, 0x4000000n, 0x8000000n, 0x10000000n, 0x20000000n, 0x40000000n, 0x80000000n, 0x100000000n, 0x200000000n, 0x400000000n, 0x800000000n, 0x1000000000n, 0x2000000000n, 0x4000000000n, 0x8000000000n, 0x10000000000n, 0x20000000000n, 0x40000000000n, 0x80000000000n, 0x100000000000n, 0x200000000000n, 0x400000000000n, 0x800000000000n, 0x1000000000000n, 0x2000000000000n, 0x4000000000000n, 0x8000000000000n, 0x10000000000000n, 0x20000000000000n, 0x40000000000000n, 0x80000000000000n, 0x100000000000000n, 0x200000000000000n, 0x400000000000000n, 0x800000000000000n, 0x1000000000000000n, 0x2000000000000000n, 0x4000000000000000n, -0x8000000000000000n]; + const _0x4a12fb = [0xfn, 0x6n, 0x13n, 0x14n, 0x1cn, 0xbn, 0x1bn, 0x10n, 0x0n, 0xen, 0x16n, 0x19n, 0x4n, 0x11n, 0x1en, 0x9n, 0x1n, 0x7n, 0x17n, 0xdn, 0x1fn, 0x1an, 0x2n, 0x8n, 0x12n, 0xcn, 0x1dn, 0x5n, 0x15n, 0xan, 0x3n, 0x18n]; + const _0x4f9c25 = [0x38n, 0x30n, 0x28n, 0x20n, 0x18n, 0x10n, 0x8n, 0x0n, 0x39n, 0x31n, 0x29n, 0x21n, 0x19n, 0x11n, 0x9n, 0x1n, 0x3an, 0x32n, 0x2an, 0x22n, 0x1an, 0x12n, 0xan, 0x2n, 0x3bn, 0x33n, 0x2bn, 0x23n, 0x3en, 0x36n, 0x2en, 0x26n, 0x1en, 0x16n, 0xen, 0x6n, 0x3dn, 0x35n, 0x2dn, 0x25n, 0x1dn, 0x15n, 0xdn, 0x5n, 0x3cn, 0x34n, 0x2cn, 0x24n, 0x1cn, 0x14n, 0xcn, 0x4n, 0x1bn, 0x13n, 0xbn, 0x3n]; + const _0x1efaab = [0xdn, 0x10n, 0xan, 0x17n, 0x0n, 0x4n, -0x1n, -0x1n, 0x2n, 0x1bn, 0xen, 0x5n, 0x14n, 0x9n, -0x1n, -0x1n, 0x16n, 0x12n, 0xbn, 0x3n, 0x19n, 0x7n, -0x1n, -0x1n, 0xfn, 0x6n, 0x1an, 0x13n, 0xcn, 0x1n, -0x1n, -0x1n, 0x28n, 0x33n, 0x1en, 0x24n, 0x2en, 0x36n, -0x1n, -0x1n, 0x1dn, 0x27n, 0x32n, 0x2cn, 0x20n, 0x2fn, -0x1n, -0x1n, 0x2bn, 0x30n, 0x26n, 0x37n, 0x21n, 0x34n, -0x1n, -0x1n, 0x2dn, 0x29n, 0x31n, 0x23n, 0x1cn, 0x1fn, -0x1n, -0x1n]; + const _0x570b49 = [[0xen, 0x4n, 0x3n, 0xfn, 0x2n, 0xdn, 0x5n, 0x3n, 0xdn, 0xen, 0x6n, 0x9n, 0xbn, 0x2n, 0x0n, 0x5n, 0x4n, 0x1n, 0xan, 0xcn, 0xfn, 0x6n, 0x9n, 0xan, 0x1n, 0x8n, 0xcn, 0x7n, 0x8n, 0xbn, 0x7n, 0x0n, 0x0n, 0xfn, 0xan, 0x5n, 0xen, 0x4n, 0x9n, 0xan, 0x7n, 0x8n, 0xcn, 0x3n, 0xdn, 0x1n, 0x3n, 0x6n, 0xfn, 0xcn, 0x6n, 0xbn, 0x2n, 0x9n, 0x5n, 0x0n, 0x4n, 0x2n, 0xbn, 0xen, 0x1n, 0x7n, 0x8n, 0xdn], [0xfn, 0x0n, 0x9n, 0x5n, 0x6n, 0xan, 0xcn, 0x9n, 0x8n, 0x7n, 0x2n, 0xcn, 0x3n, 0xdn, 0x5n, 0x2n, 0x1n, 0xen, 0x7n, 0x8n, 0xbn, 0x4n, 0x0n, 0x3n, 0xen, 0xbn, 0xdn, 0x6n, 0x4n, 0x1n, 0xan, 0xfn, 0x3n, 0xdn, 0xcn, 0xbn, 0xfn, 0x3n, 0x6n, 0x0n, 0x4n, 0xan, 0x1n, 0x7n, 0x8n, 0x4n, 0xbn, 0xen, 0xdn, 0x8n, 0x0n, 0x6n, 0x2n, 0xfn, 0x9n, 0x5n, 0x7n, 0x1n, 0xan, 0xcn, 0xen, 0x2n, 0x5n, 0x9n], [0xan, 0xdn, 0x1n, 0xbn, 0x6n, 0x8n, 0xbn, 0x5n, 0x9n, 0x4n, 0xcn, 0x2n, 0xfn, 0x3n, 0x2n, 0xen, 0x0n, 0x6n, 0xdn, 0x1n, 0x3n, 0xfn, 0x4n, 0xan, 0xen, 0x9n, 0x7n, 0xcn, 0x5n, 0x0n, 0x8n, 0x7n, 0xdn, 0x1n, 0x2n, 0x4n, 0x3n, 0x6n, 0xcn, 0xbn, 0x0n, 0xdn, 0x5n, 0xen, 0x6n, 0x8n, 0xfn, 0x2n, 0x7n, 0xan, 0x8n, 0xfn, 0x4n, 0x9n, 0xbn, 0x5n, 0x9n, 0x0n, 0xen, 0x3n, 0xan, 0x7n, 0x1n, 0xcn], [0x7n, 0xan, 0x1n, 0xfn, 0x0n, 0xcn, 0xbn, 0x5n, 0xen, 0x9n, 0x8n, 0x3n, 0x9n, 0x7n, 0x4n, 0x8n, 0xdn, 0x6n, 0x2n, 0x1n, 0x6n, 0xbn, 0xcn, 0x2n, 0x3n, 0x0n, 0x5n, 0xen, 0xan, 0xdn, 0xfn, 0x4n, 0xdn, 0x3n, 0x4n, 0x9n, 0x6n, 0xan, 0x1n, 0xcn, 0xbn, 0x0n, 0x2n, 0x5n, 0x0n, 0xdn, 0xen, 0x2n, 0x8n, 0xfn, 0x7n, 0x4n, 0xfn, 0x1n, 0xan, 0x7n, 0x5n, 0x6n, 0xcn, 0xbn, 0x3n, 0x8n, 0x9n, 0xen], [0x2n, 0x4n, 0x8n, 0xfn, 0x7n, 0xan, 0xdn, 0x6n, 0x4n, 0x1n, 0x3n, 0xcn, 0xbn, 0x7n, 0xen, 0x0n, 0xcn, 0x2n, 0x5n, 0x9n, 0xan, 0xdn, 0x0n, 0x3n, 0x1n, 0xbn, 0xfn, 0x5n, 0x6n, 0x8n, 0x9n, 0xen, 0xen, 0xbn, 0x5n, 0x6n, 0x4n, 0x1n, 0x3n, 0xan, 0x2n, 0xcn, 0xfn, 0x0n, 0xdn, 0x2n, 0x8n, 0x5n, 0xbn, 0x8n, 0x0n, 0xfn, 0x7n, 0xen, 0x9n, 0x4n, 0xcn, 0x7n, 0xan, 0x9n, 0x1n, 0xdn, 0x6n, 0x3n], [0xcn, 0x9n, 0x0n, 0x7n, 0x9n, 0x2n, 0xen, 0x1n, 0xan, 0xfn, 0x3n, 0x4n, 0x6n, 0xcn, 0x5n, 0xbn, 0x1n, 0xen, 0xdn, 0x0n, 0x2n, 0x8n, 0x7n, 0xdn, 0xfn, 0x5n, 0x4n, 0xan, 0x8n, 0x3n, 0xbn, 0x6n, 0xan, 0x4n, 0x6n, 0xbn, 0x7n, 0x9n, 0x0n, 0x6n, 0x4n, 0x2n, 0xdn, 0x1n, 0x9n, 0xfn, 0x3n, 0x8n, 0xfn, 0x3n, 0x1n, 0xen, 0xcn, 0x5n, 0xbn, 0x0n, 0x2n, 0xcn, 0xen, 0x7n, 0x5n, 0xan, 0x8n, 0xdn], [0x4n, 0x1n, 0x3n, 0xan, 0xfn, 0xcn, 0x5n, 0x0n, 0x2n, 0xbn, 0x9n, 0x6n, 0x8n, 0x7n, 0x6n, 0x9n, 0xbn, 0x4n, 0xcn, 0xfn, 0x0n, 0x3n, 0xan, 0x5n, 0xen, 0xdn, 0x7n, 0x8n, 0xdn, 0xen, 0x1n, 0x2n, 0xdn, 0x6n, 0xen, 0x9n, 0x4n, 0x1n, 0x2n, 0xen, 0xbn, 0xdn, 0x5n, 0x0n, 0x1n, 0xan, 0x8n, 0x3n, 0x0n, 0xbn, 0x3n, 0x5n, 0x9n, 0x4n, 0xfn, 0x2n, 0x7n, 0x8n, 0xcn, 0xfn, 0xan, 0x7n, 0x6n, 0xcn], [0xdn, 0x7n, 0xan, 0x0n, 0x6n, 0x9n, 0x5n, 0xfn, 0x8n, 0x4n, 0x3n, 0xan, 0xbn, 0xen, 0xcn, 0x5n, 0x2n, 0xbn, 0x9n, 0x6n, 0xfn, 0xcn, 0x0n, 0x3n, 0x4n, 0x1n, 0xen, 0xdn, 0x1n, 0x2n, 0x7n, 0x8n, 0x1n, 0x2n, 0xcn, 0xfn, 0xan, 0x4n, 0x0n, 0x3n, 0xdn, 0xen, 0x6n, 0x9n, 0x7n, 0x8n, 0x9n, 0x6n, 0xfn, 0x1n, 0x5n, 0xcn, 0x3n, 0xan, 0xen, 0x5n, 0x8n, 0x7n, 0xbn, 0x0n, 0x4n, 0xdn, 0x2n, 0xbn]]; + const _0x4d56cb = "ylzsxkwm"; + const _0x36a264 = _0x87b2ca.g.BigInt; + const _0x44bc84 = (_0x8447d2, _0x163d4a, _0x2e2955) => { + let _0x5ea34a = 0x0n; + for (let _0x2c48a2 = 0; _0x2c48a2 < _0x163d4a; _0x2c48a2++) { + if (_0x8447d2[_0x2c48a2] < 0 || _0x36a264(_0x2e2955 & _0x1ceb2c[_0x8447d2[_0x2c48a2]]) == 0x0n) { + continue; + } + _0x5ea34a |= _0x1ceb2c[_0x2c48a2]; + } + return _0x5ea34a; + }; + const _0x11d26a = (_0x331e88, _0x1161d5) => { + let _0x15780c = 0x0n; + let _0x219ff1 = 0x0n; + let _0x350009 = new Array(8).fill(0); + let _0x4d03dd = [0, 0]; + let _0x691259 = 0x0n; + let _0x2a91ba = 0x0n; + _0x15780c = _0x44bc84(_0x4ac3f4, 0x40n, _0x1161d5); + _0x4d03dd[0] = 0xffffffffn & _0x15780c; + _0x4d03dd[1] = (-0x100000000n & _0x15780c) >> 0x20n; + for (let _0x59e0a3 = 0; _0x59e0a3 < 16; _0x59e0a3++) { + _0x2a91ba = _0x4d03dd[1]; + _0x2a91ba = _0x44bc84(_0xf5466e, 0x40n, _0x2a91ba); + _0x2a91ba ^= _0x331e88[_0x59e0a3]; + for (let _0x5d90dc = 0; _0x5d90dc < 8; _0x5d90dc++) { + _0x350009[_0x5d90dc] = 0xffn & _0x2a91ba >> _0x36a264(_0x5d90dc) * 0x8n; + } + _0x219ff1 = 0x0n; + for (let _0x38cdab = 7; _0x38cdab > -1; _0x38cdab--) { + _0x219ff1 <<= 0x4n; + _0x219ff1 |= _0x570b49[_0x38cdab][_0x350009[_0x38cdab]]; + } + _0x2a91ba = _0x44bc84(_0x4a12fb, 0x20n, _0x219ff1); + _0x691259 = _0x4d03dd[0]; + _0x4d03dd[0] = _0x4d03dd[1]; + _0x4d03dd[1] = _0x691259 ^ _0x2a91ba; + } + _0x4d03dd = _0x4d03dd.reverse(); + _0x15780c = -0x100000000n & _0x4d03dd[1] << 0x20n | 0xffffffffn & _0x4d03dd[0]; + _0x15780c = _0x44bc84(_0x17b955, 0x40n, _0x15780c); + return _0x15780c; + }; + const _0xe671fd = (_0x494c73, _0x1834e3, _0x25ac3a) => { + let _0x5434a8 = _0x44bc84(_0x4f9c25, 0x38n, _0x494c73); + for (let _0xd54f32 = 0; _0xd54f32 < 16; _0xd54f32++) { + _0x5434a8 = (_0x5434a8 & _0x44b354[_0x23e2ff[_0xd54f32]]) << 0x1cn - _0x23e2ff[_0xd54f32] | (_0x5434a8 & ~_0x44b354[_0x23e2ff[_0xd54f32]]) >> _0x23e2ff[_0xd54f32]; + _0x1834e3[_0xd54f32] = _0x44bc84(_0x1efaab, 0x40n, _0x5434a8); + } + if (_0x25ac3a === 1) { + for (let _0x8592a1 = 0; _0x8592a1 < 8; _0x8592a1++) { + let _0xaedbdf = _0x1834e3[_0x8592a1]; + _0x1834e3[_0x8592a1] = _0x1834e3[15 - _0x8592a1]; + _0x1834e3[15 - _0x8592a1] = _0xaedbdf; + } + } + }; + const _0x347d4c = (_0x2ea142, _0x29b0af = _0x4d56cb) => { + let _0x2cd42d = 0x0n; + for (let _0x53b28a = 0; _0x53b28a < 8; _0x53b28a++) { + _0x2cd42d = _0x2cd42d | _0x36a264(_0x29b0af.charCodeAt(_0x53b28a)) << _0x36a264(_0x53b28a) * 0x8n; + } + let _0x39c007 = parseInt(_0x2ea142.length / 8); + let _0x54ffd2 = new Array(16).fill(0x0n); + _0xe671fd(_0x2cd42d, _0x54ffd2, 0x0n); + let _0x6ce84f = new Array(_0x39c007).fill(0x0n); + for (let _0x436da6 = 0; _0x436da6 < _0x39c007; _0x436da6++) { + for (let _0x427908 = 0; _0x427908 < 8; _0x427908++) { + _0x6ce84f[_0x436da6] |= _0x36a264(_0x2ea142.charCodeAt(_0x427908 + _0x436da6 * 8)) << _0x36a264(_0x427908) * 0x8n; + } + } + let _0x422688 = new Array(parseInt((1 + (_0x39c007 + 1) * 8) / 8)).fill(0x0n); + for (let _0x3948fa = 0; _0x3948fa < _0x39c007; _0x3948fa++) { + _0x422688[_0x3948fa] = _0x11d26a(_0x54ffd2, _0x6ce84f[_0x3948fa]); + } + let _0x11768f = _0x2ea142.substring(_0x39c007 * 8); + let _0x262f81 = 0x0n; + for (let _0x993a06 = 0, _0x3c87ee = _0x2ea142.length % 8; _0x993a06 < _0x3c87ee; _0x993a06++) { + _0x262f81 |= _0x36a264(_0x11768f.charCodeAt(_0x993a06)) << _0x36a264(_0x993a06) * 0x8n; + } + _0x422688[_0x39c007] = _0x11d26a(_0x54ffd2, _0x262f81); + let _0x8fe6d8 = new Array(_0x422688.length * 8).fill(0); + let _0x61e186 = 0; + _0x422688.forEach(_0x54ce0e => { + for (let _0x54bae7 = 0; _0x54bae7 < 8; _0x54bae7++) { + _0x8fe6d8[_0x61e186] = Number(0xffn & _0x54ce0e >> _0x36a264(_0x54bae7) * 0x8n); + _0x61e186++; + } + }); + return _0x8fe6d8; + }; + _0x3f74f1.exports = _0x347d4c; + }, + 527: (_0x2b37be, _0x579e37, _0x3fdb61) => { + 'use strict'; + + ; + const { + EVENT_NAMES: _0x4376c9, + on: _0x8bd95b, + send: _0x44e30b, + env: _0x3aca81, + currentScriptInfo: _0xd1f78, + request: _0x175058, + utils: _0x251468, + version: _0x1d9553 + } = globalThis.lx; + const _0x334821 = { + from: _0x251468.buffer.from, + bufToString: _0x251468.buffer.bufToString + }; + const _0x2e1259 = { + aesEncrypt: _0x251468.crypto.aesEncrypt, + md5: _0x251468.crypto.md5, + randomBytes: _0x251468.crypto.randomBytes, + rsaEncrypt: _0x251468.crypto.rsaEncrypt + }; + const _0x4b9c83 = { + buffer: _0x334821, + crypto: _0x2e1259 + }; + const _0x1044a1 = _0x4b9c83; + const _0x188333 = function () { + // TOLOOK + setTimeout(() => { + return _0x175058.apply(this, arguments); + }, 500); + }; + const _0x162fed = { + i8: "1.2.0" + }; + ; + const _0x31b7a5 = _0x2d9f7d => { + if (_0x1d9553) { + return _0x1044a1.buffer.bufToString(_0x2d9f7d, "hex"); + } else { + return [...new Uint8Array(_0x2d9f7d)].map(_0x53d8b9 => _0x53d8b9.toString(16).padStart(2, "0")).join(""); + } + }; + const _0x4e6f89 = (_0x33916d, _0x337490, _0x740050, _0x3d8b30) => { + if (!_0x1d9553) { + _0x3d8b30 = _0x3d8b30.split("-").pop(); + } + return _0x1044a1.crypto.aesEncrypt(_0x33916d, _0x3d8b30, _0x337490, _0x740050); + }; + const _0xcb3b64 = _0x2212ca => _0x1044a1.crypto.md5(_0x2212ca); + const _0xac8adb = (_0x26ced3, _0x35ea78) => { + let _0x32dcc3 = _0x26ced3.split("//"); + let _0x1c2be5 = _0x32dcc3[1].substring(_0x32dcc3[1].indexOf("/")); + if (_0x1c2be5.indexOf("?") !== -1) { + _0x1c2be5 = _0x1c2be5.split("?")[0]; + } + console.log(_0x1c2be5 + " wycheck " + _0x35ea78); + return _0x1044a1.crypto.md5(_0x1c2be5 + "wycheck" + _0x35ea78).substr(0, 16); + }; + const _0x5863c8 = (_0x56e799, _0x1924d5, _0x406a5a, _0x18f02d, _0x5ed6d3, _0x48a534, _0x44debf) => { + console.log(_0x56e799, _0x18f02d, _0x5ed6d3); + const _0x3a6d4a = "aHR0cDovL2x4Lml0b29pLmNuL29wZW5BcGkvcm91dGUvbHgvdjIvdXJsLw=="; + const _0x49d171 = "" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x3a6d4a, "base64"), "utf-8") + _0x56e799 + "/" + _0x1924d5 + "/" + _0x406a5a + "?p=" + _0x18f02d + "&v=" + _0x5ed6d3; + console.log(_0x49d171, _0x1924d5, _0x406a5a); + _0x188333(_0x49d171, { + method: "GET", + headers: { + "User-Agent": "lx-music request", + wycheck: _0xac8adb(_0x49d171, _0x5ed6d3) + } + }, (_0x186637, _0x1cf286) => { + console.log(_0x1cf286.body); + if (_0x186637) { + return _0x48a534(_0x186637); + } + if (_0x1cf286.statusCode !== 200) { + return _0x48a534(new Error("failed")); + } + _0x44debf(_0x1cf286.body.result); + }); + }; + const _0x4a0e83 = () => { + if (!_0xd1f78 || !_0x3aca81) { + _0x44e30b(_0x4376c9.updateAlert, { + log: "加载音源脚本失败,请前往,请前往下载最新版本", + updateUrl: "https://www.sixyin.com" + }); + throw new Error("当前客户端不支持,请更新至最新版本!"); + } + let _0x36d42f = _0x3aca81; + let _0x49534e = _0xd1f78.name; + let _0x12204a = _0xd1f78.description; + let _0x17b7fe = _0xd1f78.version; + console.log("name " + _0x49534e + ",desc " + _0x12204a + ",version " + _0x17b7fe); + if (!_0x49534e || !_0x12204a || !_0x17b7fe) { + throw new Error("脚本错误,加载音源信息失败,请前往 http://www.sixyin.com 下载最新版本!"); + } + _0x49534e = _0x49534e.trim(); + _0x12204a = _0x12204a.trim(); + _0x17b7fe = _0x17b7fe.trim().replace("v", ""); + if (_0x49534e !== "六音音源" || _0x12204a !== "v" + _0x162fed.i8 + " 如失效请前往 www.sixyin.com 下载最新版本" || _0x17b7fe !== "1.2.0") { + _0x44e30b(_0x4376c9.updateAlert, { + log: "加载音源脚本失败,请前往下载最新版本", + updateUrl: "https://www.sixyin.com" + }); + throw new Error("加载音源脚本失败,请前往 http://www.sixyin.com 下载最新版本!"); + } + console.log("name " + _0x49534e + ",desc " + _0x12204a + ",version " + _0x17b7fe); + const _0x42b4a0 = "" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from("aHR0cDovL3d3dy5oaWJhaS5jbi9hcGkucGhwP3A9", "base64"), "utf-8") + _0x36d42f + "&v=" + _0x17b7fe; + return new Promise((_0x5db9f5, _0x59041d) => { + _0x188333(_0x42b4a0, { + method: "GET" + }, (_0x36e6d0, _0x3b0afa) => { + if (_0x36e6d0) { + _0x59041d("当前版本音源已关闭,请前往 http://www.sixyin.com 下载最新版本!"); + } + if (_0x3b0afa.statusCode !== 200) { + _0x59041d("当前版本音源已关闭,请前往 http://www.sixyin.com 下载最新版本!"); + } + _0x5db9f5(_0x3b0afa.body); + }); + }); + }; + const _0x2ea19e = ["Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1", "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Mobile Safari/537.36", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Mobile Safari/537.36", "Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Mobile Safari/537.36", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Mobile/14F89;GameHelper", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1", "Mozilla/5.0 (iPad; CPU OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:46.0) Gecko/20100101 Firefox/46.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.1.1 Safari/603.2.4", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/13.10586"]; + const _0x70b5e2 = _0x3a4a06 => { + let _0xe02d64 = 0; + switch (_0x3a4a06) { + case "mobile": + _0xe02d64 = Math.floor(Math.random() * 7); + break; + case "pc": + _0xe02d64 = Math.floor(Math.random() * 5) + 8; + break; + default: + _0xe02d64 = Math.floor(Math.random() * _0x2ea19e.length); + break; + } + return _0x2ea19e[_0xe02d64]; + }; + const _0x12253e = _0x16353 => { + const _0x4424fe = /@([^\s]+)\s([^\s;]+)/g; + let _0x187440; + const _0x363f2e = {}; + while ((_0x187440 = _0x4424fe.exec(_0x16353)) !== null) { + const _0x30c520 = _0x187440[1]; + const _0x5e2af5 = _0x187440[2].trim(); + _0x363f2e[_0x30c520] = _0x5e2af5; + } + return _0x363f2e; + }; + var _0x5ec5ca = _0x3fdb61(124); + var _0x5a8397 = _0x3fdb61.n(_0x5ec5ca); + ; + const _0x38436a = { + info: { + name: "酷我音乐", + type: "music", + actions: ["musicUrl"] + }, + musicUrl({ + songmid: _0x7239cb + }, _0x4a5ca1) { + let _0x396d16 = /url=(.+)/; + let _0x10ec70 = "bitrate=1\r\n"; + let _0x55cde2; + switch (_0x4a5ca1) { + case "128k": + _0x4a5ca1 = "128kmp3"; + _0x55cde2 = "mp3"; + break; + case "192k": + _0x4a5ca1 = "192kmp3"; + _0x55cde2 = "mp3"; + break; + case "320k": + _0x4a5ca1 = "320kmp3"; + _0x55cde2 = "mp3"; + break; + case "ape": + _0x4a5ca1 = "2000kape"; + _0x55cde2 = "ape"; + break; + case "flac": + _0x4a5ca1 = "2000kflac"; + _0x55cde2 = "flac"; + break; + case "flac24bit": + _0x4a5ca1 = "4000kflac"; + _0x55cde2 = "flac"; + break; + default: + _0x4a5ca1 = "128kmp3"; + _0x55cde2 = "mp3"; + break; + } + const _0xb5d85a = "type=convert_url&br=" + _0x4a5ca1 + "&format=" + _0x55cde2 + "&sig=0&rid=" + _0x7239cb + "&network=wifi&response=url&prod=kwplayer_ar_10.3.3.0"; + const _0x82c9fe = "aHR0cDovL21vYmkua3V3by5jbi9tb2JpLnM/Zj1rdXdvJnE9"; + const _0x897840 = "" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x82c9fe, "base64"), "utf-8") + _0x1044a1.buffer.bufToString(_0x5a8397()(_0xb5d85a), "base64"); + return new Promise((_0x3bfa2a, _0x1aa581) => { + console.log(_0x897840, _0x7239cb, _0x4a5ca1); + _0x188333(_0x897840, { + method: "GET", + headers: { + "User-Agent": _0x70b5e2("mobile"), + Referer: "http://kuwo.cn/" + } + }, (_0x11c5f9, _0x300fa1) => { + let _0x33f58e = _0x300fa1.body; + console.log(_0x33f58e); + let _0x18c489 = _0x300fa1.statusCode; + if (_0x11c5f9) { + return _0x1aa581(_0x11c5f9); + } + if (_0x18c489 !== 200) { + return _0x1aa581(new Error("failed")); + } + if (_0x33f58e.includes(_0x10ec70)) { + return _0x1aa581(new Error("failed")); + } + let _0x175c09 = _0x33f58e.match(_0x396d16); + if (!_0x175c09) { + return _0x1aa581(new Error("failed")); + } + _0x3bfa2a(_0x175c09[1].split("?")[0]); + }); + }); + } + }; + ; + const _0x102136 = { + info: { + name: "酷狗音乐", + type: "music", + actions: ["musicUrl"] + }, + musicUrl({ + hash: _0x3a6a1c, + albumId: _0x5948a5, + platform: _0x13147c, + version: _0x552b0c + }, _0x11e882) { + const _0x1a65bd = "aHR0cHM6Ly93d3dhcGkua3Vnb3UuY29tL3l5L2luZGV4LnBocD9yPXBsYXkvZ2V0ZGF0YSZoYXNoPQ=="; + const _0x12ac1b = "" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x1a65bd, "base64"), "utf-8") + _0x3a6a1c + "&dfid=dfid&mid=mid&platid=4&album_id=" + _0x5948a5; + return new Promise((_0x1179d4, _0x3ecd68) => { + console.log(_0x3a6a1c, _0x11e882, _0x13147c, _0x552b0c); + _0x188333(_0x12ac1b, { + method: "GET" + }, (_0x7741ec, _0x2efd3c) => { + console.log(_0x2efd3c.body); + if (_0x7741ec) { + return _0x5863c8("kugou", _0x3a6a1c, _0x11e882, _0x13147c, _0x552b0c, _0x3ecd68, _0x1179d4); + } + const _0x5120e7 = _0x2efd3c.body; + if (_0x5120e7.status !== 1) { + return _0x5863c8("kugou", _0x3a6a1c, _0x11e882, _0x13147c, _0x552b0c, _0x3ecd68, _0x1179d4); + } + if (_0x5120e7.data.privilege > 9) { + return _0x5863c8("kugou", _0x3a6a1c, _0x11e882, _0x13147c, _0x552b0c, _0x3ecd68, _0x1179d4); + } + _0x1179d4(_0x2efd3c.body.data.play_url); + }); + }); + } + }; + ; + const _0x3fccd9 = (_0xcee1f, _0x5952c5) => { + let _0x7b568f; + switch (_0xcee1f) { + case "128k": + _0x7b568f = "M5000.mp3"; + break; + case "320k": + _0x7b568f = "M8000.mp3"; + break; + case "flac": + _0x7b568f = "F0000.flac"; + break; + } + return _0x7b568f; + }; + const _0x5614ef = { + info: { + name: "企鹅音乐", + type: "music", + actions: ["musicUrl"] + }, + musicUrl({ + songmid: _0x4b0a3d, + tencentCookie: _0x22ee74, + platform: _0x2f0f6e, + version: _0x69256e + }, _0x31305e) { + console.log(_0x2f0f6e, _0x69256e, _0x22ee74); + console.log("tencent ck => " + _0x22ee74); + const _0x61bccf = "aHR0cHM6Ly91LnkucXEuY29tL2NnaS1iaW4vbXVzaWN1LmZjZz9kYXRhPXsicXVlcnl2a2V5Ijp7Im1ldGhvZCI6IkNnaUdldFZrZXkiLCJtb2R1bGUiOiJ2a2V5LkdldFZrZXlTZXJ2ZXIiLCJwYXJhbSI6eyJjaGVja2xpbWl0IjowLCJjdHgiOjEsImRvd25sb2FkZnJvbSI6MCwidWluIjoiMCIsImZpbGVuYW1lIjpbIg=="; + let _0x2ac2ec = "" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x61bccf, "base64"), "utf-8") + _0x3fccd9(_0x31305e, _0x4b0a3d) + "\"],\"guid\":\"0\",\"songmid\":[\"" + _0x4b0a3d + "\"]}}}"; + console.log(_0x2ac2ec); + return new Promise((_0x3f87b0, _0x56f84a) => { + _0x188333(_0x2ac2ec, { + method: "GET", + headers: { + "User-Agent": _0x70b5e2("pc"), + origin: "https://y.qq.com", + referer: "https://y.qq.com/portal/search.html", + cookie: _0x22ee74 + } + }, function (_0x470acc, _0x245a6f) { + console.log(_0x245a6f.body); + if (_0x470acc) { + return _0x5863c8("qq", _0x4b0a3d, _0x31305e, _0x2f0f6e, _0x69256e, _0x56f84a, _0x3f87b0); + } + if (_0x245a6f.statusCode !== 200) { + return _0x5863c8("qq", _0x4b0a3d, _0x31305e, _0x2f0f6e, _0x69256e, _0x56f84a, _0x3f87b0); + } + const _0x17b9a1 = _0x245a6f.body.queryvkey?.data?.midurlinfo?.[0]?.purl; + console.log(_0x17b9a1); + if (!_0x17b9a1) { + return _0x5863c8("qq", _0x4b0a3d, _0x31305e, _0x2f0f6e, _0x69256e, _0x56f84a, _0x3f87b0); + } + const _0x2f798d = "aHR0cDovL3dzLnN0cmVhbS5xcW11c2ljLnFxLmNvbQ=="; + _0x3f87b0("" + _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x2f798d, "base64"), "utf-8") + _0x17b9a1); + }); + }); + } + }; + ; + const _0x4570f0 = { + "128k": 128000, + "320k": 320000, + flac: 999000 + }; + const _0x3b71b0 = (_0x329e8e, _0x3e1a31) => { + const _0x3d33d9 = "e82ckenh8dichen8"; + const _0x33d6c5 = typeof _0x3e1a31 === "object" ? JSON.stringify(_0x3e1a31) : _0x3e1a31; + const _0x199573 = "nobody" + _0x329e8e + "use" + _0x33d6c5 + "md5forencrypt"; + const _0x19e269 = _0xcb3b64(_0x199573); + const _0x3d7288 = _0x329e8e + "-36cd479b6b5-" + _0x33d6c5 + "-36cd479b6b5-" + _0x19e269; + return { + params: _0x31b7a5(_0x4e6f89(_0x3d7288, _0x3d33d9, "", "aes-128-ecb")).toUpperCase() + }; + }; + const _0x1d35b2 = { + info: { + name: "网易音乐", + type: "music", + actions: ["musicUrl"] + }, + musicUrl({ + songmid: _0x30a4ac, + neteaseCookie: _0xad9e1b + }, _0x5645dc) { + _0x5645dc = _0x4570f0[_0x5645dc]; + const _0x4dee09 = "aHR0cHM6Ly9pbnRlcmZhY2UzLm11c2ljLjE2My5jb20vZWFwaS9zb25nL2VuaGFuY2UvcGxheWVyL3VybA=="; + const _0x5b7e02 = _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x4dee09, "base64"), "utf-8"); + const _0x3ba5ed = "/api/song/enhance/player/url"; + console.log(_0xad9e1b); + const _0x29d123 = { + ids: "[" + _0x30a4ac + "]", + br: _0x5645dc + }; + const _0x5f46cf = _0x29d123; + const _0x2699e2 = _0x3b71b0(_0x3ba5ed, _0x5f46cf); + return new Promise((_0x51dce4, _0x2e55e3) => { + console.log(_0x30a4ac, _0x5645dc); + const _0x4b00e4 = { + cookie: "os=pc;" + _0xad9e1b + }; + _0x188333(_0x5b7e02, { + method: "POST", + form: _0x2699e2, + headers: _0x4b00e4 + }, (_0x23a01a, _0x184d79) => { + console.log(_0x184d79.body); + if (_0x23a01a) { + return _0x2e55e3(_0x23a01a); + } + let _0x4744f3 = _0x184d79.body; + const { + url: _0x482b2c + } = _0x4744f3.data[0]; + if (!_0x482b2c) { + return _0x2e55e3(new Error("failed")); + } + _0x51dce4(_0x482b2c); + }); + }); + } + }; + ; + const _0x47e7cb = { + info: { + name: "咪咕音乐", + type: "music", + actions: ["musicUrl"] + }, + musicUrl({ + copyrightId: _0x4da7aa, + platform: _0x465306, + version: _0xc073e4 + }, _0x546e55) { + const _0x306503 = "aHR0cDovL2x4Lml0b29pLmNuL29wZW5BcGkvcm91dGUvbHgvdjIvdXJsLw=="; + const _0x3e1745 = _0x1044a1.buffer.bufToString(_0x1044a1.buffer.from(_0x306503, "base64"), "utf-8") + "migu/" + _0x4da7aa + "/" + _0x546e55 + "?p=" + _0x465306 + "&v=" + _0xc073e4; + return new Promise((_0x2336ca, _0x58218e) => { + console.log(_0x3e1745, _0x4da7aa, _0x546e55); + _0x188333(_0x3e1745, { + method: "GET", + headers: { + "User-Agent": "lx-music request", + wycheck: _0xac8adb(_0x3e1745, _0xc073e4) + } + }, (_0x3d5243, _0x39d253) => { + console.log(_0x39d253.body); + if (_0x3d5243) { + return _0x58218e(_0x3d5243); + } + if (_0x39d253.statusCode !== 200) { + return _0x58218e(new Error("failed")); + } + _0x2336ca(_0x39d253.body.result); + }); + }); + } + }; + ; + const _0x1fdcff = { + kw: _0x38436a, + kg: _0x102136, + tx: _0x5614ef, + wy: _0x1d35b2, + mg: _0x47e7cb + }; + const _0x11f1cb = _0x1fdcff; + ; + console.log("start" + new Date().getTime()); + _0x4a0e83().then(_0x51cfef => { + let _0x2242dd = ["128k"]; + if (_0x51cfef.success) { + console.log("验证数据返回", _0x51cfef.success); + _0x2242dd = _0x51cfef.qualityList; + let _0x456aeb = _0x51cfef.platformList; + let _0x55f4a5 = _0x12253e(_0xd1f78.rawScript); + console.log(_0x55f4a5); + let _0x5e0f8a = _0x55f4a5.netease; + if (_0x5e0f8a) { + if (_0x5e0f8a.trim().replace("MUSIC_U=;", "").length > 0) { + _0x456aeb.push("wy"); + } + } + let _0x55d22d = _0x55f4a5.tencent; + if (_0x55d22d) { + if (_0x55d22d.trim().indexOf("ts_last=y.qq.com/n/ryqq/album;", "") < 0) { + _0x55d22d = ""; + } + } + console.log("最终支持的平台信息", _0x456aeb); + _0x8bd95b(_0x4376c9.request, ({ + source: _0x3a24bd, + action: _0x2353a8, + info: _0x5dba5d + }) => { + console.log(_0x5dba5d); + _0x5dba5d.musicInfo.platform = _0x3aca81; + _0x5dba5d.musicInfo.version = _0xd1f78.version; + _0x5dba5d.musicInfo.neteaseCookie = _0x5e0f8a; + _0x5dba5d.musicInfo.tencentCookie = _0x55d22d; + switch (_0x2353a8) { + case "musicUrl": + return _0x11f1cb[_0x3a24bd].musicUrl(_0x5dba5d.musicInfo, _0x5dba5d.type).catch(_0x540ec8 => { + console.log(_0x540ec8.message); + return Promise.reject(_0x540ec8); + }); + } + }); + const _0x451872 = {}; + for (const [_0x3f4b39, _0xda8ca2] of Object.entries(_0x11f1cb)) { + if (_0x456aeb.indexOf(_0x3f4b39) >= 0) { + _0xda8ca2.info.qualitys = _0x2242dd; + } else { + continue; + } + _0x451872[_0x3f4b39] = _0xda8ca2.info; + } + console.log("初始化事件开始" + new Date().getTime()); + const _0x3d430f = { + openDevTools: false, + sources: _0x451872 + }; + _0x44e30b(_0x4376c9.inited, _0x3d430f); + console.log("初始化事件结束" + new Date().getTime()); + } else { + throw new Error("当前版本音源已关闭,请前往 http://www.sixyin.com 下载最新版本!"); + } + }).catch(_0x9ade98 => { + console.log(_0x9ade98); + throw new Error(_0x9ade98); + }); + } + }; + var _0x4a9212 = {}; + function _0x5674e1(_0x333e38) { + var _0x1bd0d1 = _0x4a9212[_0x333e38]; + if (_0x1bd0d1 !== undefined) { + return _0x1bd0d1.exports; + } + var _0x213978 = _0x4a9212[_0x333e38] = { + exports: {} + }; + _0x2f49fc[_0x333e38](_0x213978, _0x213978.exports, _0x5674e1); + return _0x213978.exports; + } + (() => { + _0x5674e1.n = _0x5bd07b => { + var _0x2acfe0 = _0x5bd07b && _0x5bd07b.__esModule ? () => _0x5bd07b.default : () => _0x5bd07b; + _0x5674e1.d(_0x2acfe0, { + a: _0x2acfe0 + }); + return _0x2acfe0; + }; + })(); + (() => { + _0x5674e1.d = (_0x3e4cda, _0x2e8239) => { + for (var _0x40c6f4 in _0x2e8239) { + if (_0x5674e1.o(_0x2e8239, _0x40c6f4) && !_0x5674e1.o(_0x3e4cda, _0x40c6f4)) { + Object.defineProperty(_0x3e4cda, _0x40c6f4, { + enumerable: true, + get: _0x2e8239[_0x40c6f4] + }); + } + } + }; + })(); + (() => { + _0x5674e1.g = function () { + if (typeof globalThis === "object") { + return globalThis; + } + try { + return this || new Function("return this")(); + } catch (_0x13373c) { + if (typeof window === "object") { + return window; + } + } + }(); + })(); + (() => { + _0x5674e1.o = (_0x3a3190, _0x937f06) => Object.prototype.hasOwnProperty.call(_0x3a3190, _0x937f06); + })(); + var _0x353bff = _0x5674e1(527); +})(); \ No newline at end of file