diff --git a/JN/dr_py/js/世纪DJ音乐网[听].js b/JN/dr_py/js/世纪DJ音乐网[听].js new file mode 100644 index 00000000..8ede670b --- /dev/null +++ b/JN/dr_py/js/世纪DJ音乐网[听].js @@ -0,0 +1,67 @@ +var rule = { + 类型: '影视',//影视|听书|漫画|小说 + title: '世纪DJ音乐网[听]', + host: 'http://m.dj0898.com', + url: '/dance/lists/id/fyclass/fypage', + homeUrl: '/dance/lists/id/10/1', + searchUrl: '/index.php/dance/so/key?key=**&cid=0&p=fypage', + searchable: 2, + quickSearch: 0, + filterable: 0, + filter: '', + filter_url: '', + filter_def: {}, + headers: { + 'User-Agent': 'MOBILE_UA', + }, + timeout: 5000, + class_parse: $js.toString(() => { + let _classes = [{type_id: 1, type_name: "🎧串烧舞曲"}, {type_id: 2, type_name: "🎧外文舞曲"}, { + type_id: 3, + type_name: "🎧早场暖场" + }, {type_id: 4, type_name: "🎧中文舞曲"}, {type_id: 5, type_name: "🎧其他舞曲"}, { + type_id: 6, + type_name: "🎧国外电音" + }, {type_id: 8, type_name: "🎧慢歌连版"}, {type_id: 9, type_name: "🎧酒吧潮歌"}, { + type_id: 10, + type_name: "🎧中文串烧" + }, {type_id: 11, type_name: "🎧外文串烧"}, {type_id: 12, type_name: "🎧中外串烧"}, { + type_id: 13, + type_name: "🎧车载串烧" + }, {type_id: 14, type_name: "🎧越鼓串烧"}, {type_id: 40, type_name: "🎧3D/环绕"}, { + type_id: 45, + type_name: "🎧口水旋律" + }, {type_id: 46, type_name: "🎧精品收藏"}, {type_id: 47, type_name: "🎧开场舞曲"}, { + type_id: 48, + type_name: "🎧印度舞曲" + }, {type_id: 49, type_name: "🎧编排套曲"}, {type_id: 20, type_name: "🎧DuTch"}, { + type_id: 21, + type_name: "🎧Mash up" + }, {type_id: 22, type_name: "🎧ClubHouse"}, {type_id: 23, type_name: "🎧ElectroHouse"}, { + type_id: 24, + type_name: "🎧越南鼓Dj" + }, {type_id: 30, type_name: "🎧Funky"}, {type_id: 31, type_name: "🎧Reggae"}, { + type_id: 32, + type_name: "🎧Rnb" + }, {type_id: 33, type_name: "🎧Hip Hop"}, {type_id: 34, type_name: "🎧Dubstep"}, { + type_id: 8017, + type_name: "🎧Hardstyle" + }, {type_id: 8018, type_name: "🎧Hands Up"}]; + input = _classes; + }), + cate_exclude: '', + play_parse: true, + lazy: $js.toString(() => { + log(input); + let html = request(input); + let src = pd(html, 'body&&audio[src*=http]&&src', input); + if (src) { + input = {parse: 0, url: src}; + } + }), + double: false, + 推荐: '*', + 一级: 'ul.djddv_djList li;strong&&Text;img&&src;font:eq(5)&&Text;a:eq(1)&&href', + 二级: '*', + 搜索: '*', +} \ No newline at end of file diff --git a/JN/dr_py/js/老白故事[听].js b/JN/dr_py/js/老白故事[听].js index 6aab6164..af54a471 100644 --- a/JN/dr_py/js/老白故事[听].js +++ b/JN/dr_py/js/老白故事[听].js @@ -107,7 +107,10 @@ var rule = { play_parse: true, 预处理: $js.toString(() => { device = getItem('device', '{}'); - device = JSON.parse(device); + if (typeof device == "string") { + device = JSON.parse(device); + } + // device = JSON.parse(device); if (!device.id) { device = randDeviceWithId(32); device.id = device.id.toLowerCase(); @@ -124,7 +127,8 @@ var rule = { // log(content.data); var datas = content.data.split('$6c1cef78ae='); var json = ''; - for (const d of datas) { + for (let d of datas) { + // json += pk.decryptPublic(d, 'utf8').replace(/^\s*\n|\s*$/gm, ''); json += pk.decryptPublic(d, 'utf8'); } appData = JSON.parse(json); @@ -147,19 +151,19 @@ var rule = { let datas = content.data; let classes = []; let filterObj = {}; - for (const data of datas) { + for (let data of datas) { let name = data.title.replace('分类', ''); let type = { key: 'type', name: '类型', }; - var values = data.types.reduce((result, t) => { + var cvalues = data.types.reduce((result, t) => { result.push({n: t.name, v: t.type_id}); return result; }, []); - type['init'] = values[0]['v']; - type['value'] = values; + type['init'] = cvalues[0]['v']; + type['value'] = cvalues; let sort = { key: 'sort', name: '排序', @@ -192,7 +196,7 @@ var rule = { let content = JSON.parse(html); let datas = content.data; let books = []; - for (const book of datas.books) { + for (let book of datas.books) { books.push({ vod_id: book.book_id, vod_name: book.name, @@ -203,9 +207,9 @@ var rule = { VODS = books; }), 二级: $js.toString(() => { - const ids = [orId]; - const books = []; - for (const id of ids) { + let ids = [orId]; + let books = []; + for (let id of ids) { let html = request(appData.json_url + 'cont/' + id + '.json', {headers: rule.headers}); let content = JSON.parse(html); let data = content.data; @@ -243,25 +247,28 @@ var rule = { pid: 0, key: KEY, }; + // var params = pk.encrypt(JSON.stringify(data), 'base64').replace(/^\s*\n|\s*$/gm, ''); var params = pk.encrypt(JSON.stringify(data), 'base64'); + log('params长度:' + params.length); let post_obj = { params: params, version: appVersion, }; - let post_data = buildUrl('', post_obj).slice(1); + let post_data = `params=${params}&version=${appVersion}`; // log('post_data:' + post_data); log('api_url:' + appData.api_url); let headers = JSON.parse(JSON.stringify(rule.headers)); - headers['Accept'] = 'application/json, text/plain, */*'; + // headers['Accept'] = 'application/json, text/plain, */*'; headers['Content-Type'] = 'application/x-www-form-urlencoded'; let html = post(appData.api_url, { headers: headers, - body: post_data, + // body: post_data, + data: post_obj, }); let content = JSON.parse(html); var datas = content.data; let books = []; - for (const book of datas.books) { + for (let book of datas.books) { books.push({ vod_id: book.book_id, vod_name: book.name, @@ -282,21 +289,26 @@ var rule = { aid: info[0], pid: info[1], }; + // var params = pk.encrypt(JSON.stringify(data), 'base64').replace(/^\s*\n|\s*$/gm, ''); var params = pk.encrypt(JSON.stringify(data), 'base64'); // log('params:' + params); + // log([params]); + log('params长度:' + params.length); let post_obj = { params: params, version: appVersion, }; let post_data = buildUrl('', post_obj).slice(1); + // let post_data = `params=${params}&version=${appVersion}`; // log('post_data:' + post_data); log('api_url:' + appData.api_url); let headers = JSON.parse(JSON.stringify(rule.headers)); - headers['Accept'] = 'application/json, text/plain, */*'; + // headers['Accept'] = 'application/json, text/plain, */*'; headers['Content-Type'] = 'application/x-www-form-urlencoded'; let html = post(appData.api_url, { headers: headers, - body: post_data, + // body: post_data, + data: post_obj, }); let content = JSON.parse(html); var datas = content.data;