diff --git a/js/KTV歌厅_听_.js b/js/KTV歌厅_听_.js index e962ef4..1df3b42 100644 --- a/js/KTV歌厅_听_.js +++ b/js/KTV歌厅_听_.js @@ -1 +1,137 @@ -Z2xvYmFsVGhpcy5wb3N0MiA9IGZ1bmN0aW9uIChfdXJsLCBfZGF0YSkgewogICAgLy8gbGV0IGRhdGEgPSBidWlsZFVybChfdXJsLF9kYXRhKS5zcGxpdCgnPycpWzFdOwogICAgLy8gcmV0dXJuIHBvc3QoX3VybCx7Ym9keTplbmNvZGVVUklDb21wb25lbnQoZGF0YSksaGVhZGVyczpydWxlLmhlYWRlcnN9KTsKICAgIHJldHVybiBwb3N0KF91cmwsIHtkYXRhOiBfZGF0YSwgaGVhZGVyczogcnVsZS5oZWFkZXJzfSk7Cn0KdmFyIHJ1bGUgPSB7CiAgICDnsbvlnos6ICflkKzmrYwnLC8v5b2x6KeGfOWQrOS5pnzmvKvnlLt85bCP6K+0CiAgICB0aXRsZTogJ0tUVuatjOWOhVvlkKxdJywKICAgIC8vIGhvc3Q6ICdodHRwczovL3Zwc2RuLmxldXNlLnRvcCcsCiAgICBob3N0OiAnaHR0cHM6Ly9hcGkuY2xvdWRmbGFyZS5jb20nLAogICAgcm9vdDogJ2h0dHBzOi8vYXBpLmNsb3VkZmxhcmUuY29tL2NsaWVudC92NC9hY2NvdW50cy8xZWNjNGE5NDdjNWE1MTg0MjcxNDFmNGE2OGM4NmVhMS9kMS9kYXRhYmFzZS80ZjEzODVhYi1mOTUyLTQwNGEtODcwYS1lNGNmZWY0YmQ5ZmQvcXVlcnknLAogICAgbWt0dlVybDogJ2h0dHA6Ly90eHlzb25nLm15c290by5jYy9zb25ncy8nLAogICAgdXJsOiAnL3NlYXJjaG12P3RhYmxlPWZ5Y2xhc3MmcGc9ZnlwYWdlI2Z5ZmlsdGVyJywKICAgIHNlYXJjaFVybDogJy9zZWFyY2htdj9rZXl3b3Jkcz0qKiZwZz1meXBhZ2UnLAogICAgcGljOiAnaHR0cHM6Ly9hcGkucGF1Z3JhbS5jb20vd2FsbHBhcGVyLz9zb3VyY2U9c2luYSZjYXRlZ29yeT11cycsCiAgICBzZWFyY2hhYmxlOiAyLAogICAgcXVpY2tTZWFyY2g6IDAsCiAgICBmaWx0ZXJhYmxlOiAxLAogICAgZmlsdGVyOiAnSDRzSUFBQUFBQUFBQTUyU1RVL0NNQmpIdjB2UEhBVGZ1ZXJGa3dlUGhnT0hTUlpobUlFbWhKQmdCTElJQkVnSTAvQnFBZ0ZFd2dZUkRiandaV3pwdm9VcjJ0R2xYT1RXL3ArbjdhKy9OZzRpb2hRUVpPQzlqSU5ySVFhOFFCWUNZbGdDTGlENVE0STFoelVONW1iV1hKVEVxRFczUm5mKzRLMndXaUtSaG5UUGZPaVJtRlFUcnZocTRDWTdrR3E3YXo1bjdOanpGNlBQRVN4b2RyeEx1NnNHYkZkQXdrY0t2enhYWVRtMHBsbnFjNmdNdHFaWmxqODRGTmlaY0J6TGVRb1dGY0xoYzRGSVdBb3dnb0oreGc0ZURYRXZ1ZWJ4L0JNSXF3VnJDNTZwYXJBeHhUS2JmVGJlb3pMVkRodnYwMjdWZ0htVnJSelFVN002R3gvU1c0L2JiSHhFWWRMVDczbkZqby9wOXYwM1ZIY2M3TjZoUUJQTmtkdWZJYTlCN2N0Um9qZkcwMGNLeXp4K05IWWpPQisva2QzNjhkSDdQWDdKOGE2TENpenJuR3VVVENLMXk3bUdxUVVhNW5qWDlUNHNHWnhvcEpYWWJpb2FLdzFVSGZPaUt6VTR5M0NpOGVMVkhEeHRzS3kyVUw1NWVuWnhjcjVCdGFIamJtYjFneE0vOHNpOVRPWURBQUE9JywKICAgIGZpbHRlcl91cmw6ICd7e2ZsfX0nLAogICAgaGVhZGVyczogewogICAgICAgICdVc2VyLUFnZW50JzogJ01PQklMRV9VQScsCiAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywKICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgTHVlTnJ5Y1ctNmprczd4QmpQcVg5bWpGcTJBMk01S3VsNklnM0Q4eicsCiAgICB9LAogICAgdGltZW91dDogNTAwMCwKICAgIGNsYXNzX25hbWU6ICfmrYzmiYsm5puy5bqTJywKICAgIGNsYXNzX3VybDogJ3NpbmdlciZzb25nJywKICAgIOS4gOe6pzogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBsZXQgZCA9IFtdOwogICAgICAgIC8vIGxldCBfdXJsID0gaW5wdXQuc3BsaXQoJyMnKVswXTsKICAgICAgICBsZXQgX3VybCA9IHJ1bGUucm9vdDsKICAgICAgICBsZXQgcGFyYW1zID0gW107CiAgICAgICAgbGV0IHNxbCA9ICcnOwogICAgICAgIGxldCBzaXplID0gMjA7CiAgICAgICAgbGV0IHBnID0gTVlfUEFHRTsKICAgICAgICBpZiAoTVlfQ0FURSA9PT0gJ3NpbmdlcicpIHsKICAgICAgICAgICAgc3FsID0gJ3NlbGVjdCBuYW1lLCBpZCBmcm9tIHNpbmdlciB3aGVyZSAxPTEnOwogICAgICAgICAgICBpZiAoTVlfRkwucmVnaW9uKSB7CiAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChNWV9GTC5yZWdpb24pOwogICAgICAgICAgICAgICAgc3FsICs9ICcgYW5kIHJlZ2lvbl9pZCA9ID8nOwogICAgICAgICAgICAgICAgLy8gX3VybCArPSAnJndoZXJlPXJlZ2lvbl9pZCZrZXl3b3Jkcz0nICsgTVlfRkwucmVnaW9uICsgJyZzaXplPTIxJzsKICAgICAgICAgICAgfSBlbHNlIGlmIChNWV9GTC5mb3JtKSB7CiAgICAgICAgICAgICAgICBwYXJhbXMucHVzaChNWV9GTC5mb3JtKTsKICAgICAgICAgICAgICAgIHNxbCArPSAnIGFuZCBmb3JtX2lkID0gPyc7CiAgICAgICAgICAgICAgICAvLyBfdXJsICs9ICcmd2hlcmU9Zm9ybV9pZCZrZXl3b3Jkcz0nICsgTVlfRkwuZm9ybSArICcmc2l6ZT0yMSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3FsICs9IGAgb3JkZXIgYnkgaWQgbGltaXQgJHsocGcgLSAxKSAqIHNpemV9LCR7c2l6ZX07YDsKICAgICAgICAgICAgbGV0IGh0bWwgPSBwb3N0MihfdXJsLCB7cGFyYW1zOiBwYXJhbXMsIHNxbDogc3FsfSk7CiAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgZCA9IGpzb24ucmVzdWx0WzBdLnJlc3VsdHMubWFwKGl0ZW0gPT4gewogICAgICAgICAgICAgICAgbGV0IHBpYyA9IHJ1bGUubWt0dlVybCArIGl0ZW0uaWQgKyAnLmpwZyc7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIHZvZF9pZDogaXRlbS5uYW1lICsgJ0BAJyArIGl0ZW0ubmFtZSArICdAQCcgKyBwaWMsCiAgICAgICAgICAgICAgICAgICAgdm9kX25hbWU6IGl0ZW0ubmFtZSwKICAgICAgICAgICAgICAgICAgICB2b2RfcGljOiBwaWMsCiAgICAgICAgICAgICAgICAgICAgdm9kX3JlbWFya3M6ICcnLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgaWYgKE1ZX0NBVEUgPT09ICdzb25nJykgewogICAgICAgICAgICBzcWwgPSAnc2VsZWN0IG51bWJlciwgbmFtZSBmcm9tIHNvbmcgd2hlcmUgMT0xJzsKICAgICAgICAgICAgaWYgKE1ZX0ZMLmxhbikgewogICAgICAgICAgICAgICAgcGFyYW1zLnB1c2goTVlfRkwubGFuKTsKICAgICAgICAgICAgICAgIHNxbCArPSAnIGFuZCBsYW5ndWFnZV9pZCA9ID8nOwogICAgICAgICAgICAgICAgLy8gX3VybCArPSAnJndoZXJlPWxhbmd1YWdlX2lkJmtleXdvcmRzPScgKyBNWV9GTC5sYW4gKyAnJnNpemU9MjEnOwogICAgICAgICAgICB9IGVsc2UgaWYgKE1ZX0ZMLnR5cGUpIHsKICAgICAgICAgICAgICAgIHBhcmFtcy5wdXNoKE1ZX0ZMLnR5cGUpOwogICAgICAgICAgICAgICAgc3FsICs9ICcgYW5kIHR5cGVfaWQgPSA/JzsKICAgICAgICAgICAgICAgIC8vIF91cmwgKz0gJyZ3aGVyZT10eXBlX2lkJmtleXdvcmRzPScgKyBNWV9GTC50eXBlICsgJyZzaXplPTIxJzsKICAgICAgICAgICAgfQogICAgICAgICAgICBzcWwgKz0gYCBvcmRlciBieSBudW1iZXIgbGltaXQgJHsocGcgLSAxKSAqIHNpemV9LCR7c2l6ZX07YDsKICAgICAgICAgICAgbGV0IGh0bWwgPSBwb3N0MihfdXJsLCB7cGFyYW1zOiBwYXJhbXMsIHNxbDogc3FsfSk7CiAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgZCA9IGpzb24ucmVzdWx0WzBdLnJlc3VsdHMubWFwKGl0ZW0gPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICB2b2RfaWQ6IHJ1bGUubWt0dlVybCArIGl0ZW0ubnVtYmVyICsgJy5ta3YnICsgJ0BAJyArIGl0ZW0ubmFtZSArICdAQCcgKyAnJywKICAgICAgICAgICAgICAgICAgICB2b2RfbmFtZTogaXRlbS5uYW1lLAogICAgICAgICAgICAgICAgICAgIHZvZF9waWM6IHJ1bGUucGljLAogICAgICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiAnJywKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIFZPRFMgPSBkOwogICAgfSksCiAgICDkuoznuqc6ICRqcy50b1N0cmluZygoKSA9PiB7CiAgICAgICAgbGV0IF91cmwgPSBydWxlLnJvb3Q7CiAgICAgICAgbGV0IGlkID0gb3JJZC5zcGxpdCgnQEAnKVswXTsKICAgICAgICBsZXQgbmFtZSA9IG9ySWQuc3BsaXQoJ0BAJylbMV07CiAgICAgICAgaWYgKGlkLmVuZHNXaXRoKCcubWt2JykpIHsKICAgICAgICAgICAgVk9EID0gewogICAgICAgICAgICAgICAgdm9kX25hbWU6IG5hbWUsCiAgICAgICAgICAgICAgICB2b2RfcGxheV9mcm9tOiAn6YGT6ZW/5Zyo57q/JywKICAgICAgICAgICAgICAgIHZvZF9jb250ZW50OiAn6YGT6ZW/5Zyo57q/JywKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFZPRCA9IHsKICAgICAgICAgICAgICAgIHZvZF9uYW1lOiBpZCwKICAgICAgICAgICAgICAgIHZvZF9wbGF5X2Zyb206ICfpgZPplb/lnKjnur8nLAogICAgICAgICAgICAgICAgdm9kX2NvbnRlbnQ6ICfpgZPplb/lnKjnur8nLAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChpZC5lbmRzV2l0aCgnLm1rdicpKSB7CiAgICAgICAgICAgIFZPRC52b2RfcGxheV91cmwgPSAn5ZeF5o6i5pKt5pS+JCcgKyBpZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsZXQgcGFyYW1zID0gW2lkXTsKICAgICAgICAgICAgbGV0IHNxbCA9ICdzZWxlY3QgbnVtYmVyLG5hbWUgZnJvbSBzb25nIHdoZXJlIHNpbmdlcl9uYW1lcyA9ID8gb3JkZXIgYnkgbnVtYmVyIGxpbWl0IDAsOTk5JzsKICAgICAgICAgICAgbGV0IGh0bWwgPSBwb3N0MihfdXJsLCB7cGFyYW1zOiBwYXJhbXMsIHNxbDogc3FsfSk7CiAgICAgICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICAgICAgbGV0IGRhdGEgPSBqc29uLnJlc3VsdFswXS5yZXN1bHRzOwoKICAgICAgICAgICAgVk9ELnZvZF9wbGF5X3VybCA9IChkYXRhLm1hcChpdGVtID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgKyAnJCcgKyBydWxlLm1rdHZVcmwgKyBpdGVtLm51bWJlciArICcubWt2JzsKICAgICAgICAgICAgfSkpLmpvaW4oJyMnKTsKICAgICAgICB9CiAgICB9KSwKICAgIOaQnOe0ojogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBsZXQgX3VybCA9IHJ1bGUucm9vdDsKICAgICAgICBsZXQgd2QgPSBLRVk7CiAgICAgICAgbGV0IHNxbCA9ICJzZWxlY3QgbnVtYmVyLG5hbWUgZnJvbSBzb25nIHdoZXJlIG5hbWUgbGlrZSAnJSIgKyB3ZCArICIlJyBvciBzaW5nZXJfbmFtZXMgbGlrZSAnJSIgKyB3ZCArICIlJyI7CiAgICAgICAgbGV0IGQgPSBbXTsKICAgICAgICBsZXQgaHRtbCA9IHBvc3QyKF91cmwsIHtzcWw6IHNxbH0pOwogICAgICAgIGxldCBqc29uID0gSlNPTi5wYXJzZShodG1sKTsKICAgICAgICBkID0ganNvbi5yZXN1bHRbMF0ucmVzdWx0cy5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICB2b2RfaWQ6IHJ1bGUubWt0dlVybCArIGl0ZW0ubnVtYmVyICsgJy5ta3YnICsgJ0BAJyArIGl0ZW0ubmFtZSArICdAQCcgKyAnJywKICAgICAgICAgICAgICAgIHZvZF9uYW1lOiBpdGVtLm5hbWUsCiAgICAgICAgICAgICAgICB2b2RfcGljOiBydWxlLnBpYywKICAgICAgICAgICAgICAgIHZvZF9yZW1hcmtzOiBpdGVtLnNpbmdlcl9uYW1lcywKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIFZPRFMgPSBkOwogICAgfSksCiAgICBwbGF5X3BhcnNlOiB0cnVlLAogICAgbGF6eTogJGpzLnRvU3RyaW5nKCgpID0+IHsKICAgICAgICBpbnB1dCA9IHtwYXJzZTogMCwgdXJsOiBpbnB1dH07CiAgICB9KSwKfQ== \ No newline at end of file +globalThis.post2 = function (_url, _data) { + // let data = buildUrl(_url,_data).split('?')[1]; + // return post(_url,{body:encodeURIComponent(data),headers:rule.headers}); + return post(_url, {data: _data, headers: rule.headers}); +} +var rule = { + 类型: '听歌',//影视|听书|漫画|小说 + title: 'KTV歌厅[听]', + // host: 'https://vpsdn.leuse.top', + host: 'https://api.cloudflare.com', + root: 'https://api.cloudflare.com/client/v4/accounts/1ecc4a947c5a518427141f4a68c86ea1/d1/database/4f1385ab-f952-404a-870a-e4cfef4bd9fd/query', + mktvUrl: 'http://em.21dtv.com/songs/', + url: '/searchmv?table=fyclass&pg=fypage#fyfilter', + searchUrl: '/searchmv?keywords=**&pg=fypage', + pic: 'https://api.paugram.com/wallpaper/?source=sina&category=us', + searchable: 2, + quickSearch: 0, + filterable: 1, + filter: 'H4sIAAAAAAAAA52STU/CMBjHv0vPHATfuerFkwePhgOHSRZhmIEmhJBgBLIIBEgI0/BqAgFEwgYRDbjwZWzpvoUr2tGlXOTW/p+n7a+/Ng4iohQQZOC9jINrIQa8QBYCYlgCLiD5Q4I1hzUN5mbWXJTEqDW3Rnf+4K2wWiKRhnTPfOiRmFQTrvhq4CY7kGq7az5n7NjzF6PPESxodrxLu6sGbFdAwkcKvzxXYTm0plnqc6gMtqZZlj84FNiZcBzLeQoWFcLhc4FIWAowgoJ+xg4eDXEvuebx/BMIqwVrC56parAxxTKbfTbeozLVDhvv027VgHmVrRzQU7M6Gx/SW4/bbHxEYdLT73nFjo/p9v03VHcc7N6hQBPNkdufIa9B7ctRojfG00cKyzx+NHYjOB+/kd368dH7PX7J8a6LCizrnGuUTCK1y7mGqQUa5njX9T4sGZxopJXYbioaKw1UHfOiKzU4y3Ci8eLVHDxtsKy2UL55enZxcr5BtaHjbmb1gxM/8si9TOYDAAA=', + filter_url: '{{fl}}', + headers: { + 'User-Agent': 'MOBILE_UA', + 'Content-Type': 'application/json', + 'Authorization': 'Bearer LueNrycW-6jks7xBjPqX9mjFq2A2M5Kul6Ig3D8z', + }, + timeout: 5000, + class_name: '歌手&曲库', + class_url: 'singer&song', + 一级: $js.toString(() => { + let d = []; + // let _url = input.split('#')[0]; + let _url = rule.root; + let params = []; + let sql = ''; + let size = 20; + let pg = MY_PAGE; + if (MY_CATE === 'singer') { + sql = 'select name, id from singer where 1=1'; + if (MY_FL.region) { + params.push(MY_FL.region); + sql += ' and region_id = ?'; + // _url += '&where=region_id&keywords=' + MY_FL.region + '&size=21'; + } else if (MY_FL.form) { + params.push(MY_FL.form); + sql += ' and form_id = ?'; + // _url += '&where=form_id&keywords=' + MY_FL.form + '&size=21'; + } + sql += ` order by id limit ${(pg - 1) * size},${size};`; + let html = post2(_url, {params: params, sql: sql}); + let json = JSON.parse(html); + d = json.result[0].results.map(item => { + let pic = rule.mktvUrl + item.id + '.jpg'; + return { + vod_id: item.name + '@@' + item.name + '@@' + pic, + vod_name: item.name, + vod_pic: pic, + vod_remarks: '', + } + }); + } else if (MY_CATE === 'song') { + sql = 'select number, name from song where 1=1'; + if (MY_FL.lan) { + params.push(MY_FL.lan); + sql += ' and language_id = ?'; + // _url += '&where=language_id&keywords=' + MY_FL.lan + '&size=21'; + } else if (MY_FL.type) { + params.push(MY_FL.type); + sql += ' and type_id = ?'; + // _url += '&where=type_id&keywords=' + MY_FL.type + '&size=21'; + } + sql += ` order by number limit ${(pg - 1) * size},${size};`; + let html = post2(_url, {params: params, sql: sql}); + let json = JSON.parse(html); + d = json.result[0].results.map(item => { + return { + vod_id: rule.mktvUrl + item.number + '.mkv' + '@@' + item.name + '@@' + '', + vod_name: item.name, + vod_pic: rule.pic, + vod_remarks: '', + } + }); + } + VODS = d; + }), + 二级: $js.toString(() => { + let _url = rule.root; + let id = orId.split('@@')[0]; + let name = orId.split('@@')[1]; + if (id.endsWith('.mkv')) { + VOD = { + vod_name: name, + vod_play_from: '道长在线', + vod_content: '道长在线', + } + } else { + VOD = { + vod_name: id, + vod_play_from: '道长在线', + vod_content: '道长在线', + } + } + if (id.endsWith('.mkv')) { + VOD.vod_play_url = '嗅探播放$' + id; + } else { + let params = [id]; + let sql = 'select number,name from song where singer_names = ? order by number limit 0,999'; + let html = post2(_url, {params: params, sql: sql}); + let json = JSON.parse(html); + let data = json.result[0].results; + + VOD.vod_play_url = (data.map(item => { + return item.name + '$' + rule.mktvUrl + item.number + '.mkv'; + })).join('#'); + } + }), + 搜索: $js.toString(() => { + let _url = rule.root; + let wd = KEY; + let sql = "select number,name from song where name like '%" + wd + "%' or singer_names like '%" + wd + "%'"; + let d = []; + let html = post2(_url, {sql: sql}); + let json = JSON.parse(html); + d = json.result[0].results.map(item => { + return { + vod_id: rule.mktvUrl + item.number + '.mkv' + '@@' + item.name + '@@' + '', + vod_name: item.name, + vod_pic: rule.pic, + vod_remarks: item.singer_names, + } + }); + VODS = d; + }), + play_parse: true, + lazy: $js.toString(() => { + input = {parse: 0, url: input}; + }), +} \ No newline at end of file