var rule = { title: '小心儿悠悠', host: 'https://mov.cenguigui.cn', searchUrl: '/duanju/api.php?page=fypage&name=fyfilter&tab_type=19', headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' }, timeout: 10 }; rule.getSearchContent = function(key, quick, pg) { var page = parseInt(pg) || 1; var url = this.host + '/duanju/api.php?page=' + page + '&name=' + encodeURIComponent(key) + '&tab_type=19'; var response = fetch(url, { headers: this.headers, timeout: this.timeout }); if (!response) return JSON.stringify({ list: [] }); var data = JSON.parse(response); if (data.code !== 200 || !data.data) return JSON.stringify({ list: [] }); var videos = []; for (var i = 0; i < data.data.length; i++) { var vod = data.data[i]; videos.push({ vod_id: 'book_id=' + (vod.book_id || ''), vod_name: vod.title || '', vod_pic: vod.cover || '', vod_remarks: vod.type || '' }); } return JSON.stringify({ list: videos }); }; rule.getDetailContent = function(ids) { var bookId = ids[0].match(/book_id=([^&]*)/); if (!bookId) return JSON.stringify({ list: [] }); var url = this.host + '/duanju/api.php?book_id=' + bookId[1]; var response = fetch(url, { headers: this.headers, timeout: this.timeout }); if (!response) return JSON.stringify({ list: [] }); var data = JSON.parse(response); if (data.code !== 200 || !data.data) return JSON.stringify({ list: [] }); var vodList = data.data; var playFrom = ['超清', '高清', '标清']; var playUrl = []; for (var q = 0; q < playFrom.length; q++) { var urls = []; for (var j = 0; j < vodList.length; j++) { var videoId = vodList[j].video_id || ''; var url2 = this.host + '/duanju/api.php?video_id=' + videoId + '&type=json&level=' + (q === 0 ? '2160p' : q === 1 ? '1080p' : '720p'); urls.push((vodList[j].title || '第' + (j+1) + '集') + '$' + url2); } playUrl.push(urls.join('#')); } return JSON.stringify({ list: [{ vod_id: ids[0], vod_name: data.book_name || '', vod_pic: data.book_pic || '', vod_remarks: '共' + vodList.length + '集', vod_play_from: playFrom.join('$$$'), vod_play_url: playUrl.join('$$$') }]}); }; rule.getPlayerContent = function(flag, id, vipFlags) { var response = fetch(id, { headers: this.headers, timeout: this.timeout }); if (response) { var data = JSON.parse(response); if (data.code === 200 && data.data && data.data.url) { return JSON.stringify({ parse: 0, playUrl: '', url: data.data.url }); } } return JSON.stringify({ parse: 0, playUrl: '', url: 'about:blank' }); }; rule;