123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- const axios = require('axios');
- const querystring = require('querystring');
- const config = require("../../../etc/config.json")
- const helper = require('../../helper');
- const https = require('https');
- const tools = require('../../../tools');
- const CMD = {}
- const cookies = {
- passport_csrf_token: 'e5e407280e33da2743aa7389a228401a',
- sid_guard: 'ca22fa2d213a5ac029c2861e79415614%7C1751510164%7C5184000%7CMon%2C+01-Sep-2025+02%3A36%3A04+GMT',
- sessionid: 'ca22fa2d213a5ac029c2861e79415614',
- adUserId: '3657398892890426',
- distributorId: '1823565160001931'
- }
- const temp_cookie = `sid_guard=${cookies.sid_guard}; sessionid=${cookies.sessionid}`
- CMD.根据番茄免费ID查询付费书籍 = async function(bookId){
-
- let client = tools.getOneNewClinet()
- try{
- let response = await client.get(`${config.fanqie_config.find_child_book_host}${bookId}`)
- if(response.data["code"]==401){
- throw response.data["msg"]
- }
- let book_info = response.data
- // console.log(book_info)
- let info = {}
- info.words = book_info.word_count
- info.book_name = book_info.book_name
- info.book_id = book_info.book_id
- info.publish_time = book_info.on_shelf_time
- info.author = book_info.author
- if(book_info.genre==8){
- info.genre = 3;
- }else{
- info.genre = 1;
- }
- return info;
- }catch(e){
- console.error("qm_find_parent_book error:",e)
- return null
- }
- }
- CMD.根据番茄付费ID查询免费书籍 = async function(bookId){
-
- let client = tools.getOneNewClinet()
- try{
- let response = await client.get(`${config.fanqie_mf_config.find_parent_book_host}${bookId}`)
- if(response.data["code"]==401){
- throw response.data["msg"]
- }
- let book_info = response.data
- let info = {}
- info.words = book_info.ad_word_number
- info.book_name = book_info.book_name
- info.book_id = book_info.book_id
- info.publish_time = book_info.on_shelf_time
- info.author = book_info.author
- if(book_info.genre==8){
- info.genre = 3;
- }else{
- info.genre = 1;
- }
- return info;
- }catch(e){
- console.error("qm_find_parent_book error:",e)
- return null
- }
- }
- CMD.search_id = async function(bookId,distributorId){
- const postData = {
- distributor_id: distributorId,
- ts: helper.getCurrentUnixTimestamp(),
- sign: helper.getSign(distributorId,config.fanqie_config.secretKey),
- book_id: bookId
- };
- var url = `https://www.changdunovel.com/novelsale/openapi/content/book_meta/v1/?distributor_id=${postData.distributor_id}&ts=${postData.ts}&sign=${postData.sign}&book_id=${postData.book_id}`
- console.log("url",url)
- let response = await axios.get(url)
- return response.data
-
- }
- // 设置 Cookie
- CMD.search_name = function(keyword){
- // 搜索关键词
- const encodedKeyword = encodeURIComponent(keyword); // 对关键词进行 URL 编码
- // 设置正确的 Cookie 字符串
- const cookie = 'passport_csrf_token=82f80619e2d3c3eb0aa7962d7c94305e; sid_tt=c00d65a0717e75e79ad8aecaa82f4064; sessionid=c00d65a0717e75e79ad8aecaa82f4064';
- // 设置请求的 URL
- const url = `https://www.changdunovel.com/novelsale/distributor/content/book/list/v1?permission_statuses=3,4&search_type=2&query=${encodedKeyword}&page_index=0&page_size=10`;
- // 设置请求头
- const headers = {
- 'Accept': 'application/json, text/plain, */*',
- 'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
- 'Agw-Js-Conv': 'str',
- 'Appid': '546801',
- 'Apptype': '1',
- 'Cache-Control': 'no-cache',
- 'Cookie': cookie,
- 'Distributorid': '1814786227164185',
- 'Pragma': 'no-cache',
- 'Priority': 'u=1, i',
- 'Referer': `https://www.changdunovel.com/sale/novel/list?permission_statuses=3%2C4&search_type=2&query=${encodedKeyword}&page_index=1&page_size=10`,
- 'Sec-Ch-Ua': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"',
- 'Sec-Ch-Ua-Mobile': '?0',
- 'Sec-Ch-Ua-Platform': '"macOS"',
- 'Sec-Fetch-Dest': 'empty',
- 'Sec-Fetch-Mode': 'cors',
- 'Sec-Fetch-Site': 'same-origin',
- 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36',
- 'X-Secsdk-Csrf-Token': 'DOWNGRADE'
- };
- // 执行请求
- axios.get(url, { headers })
- .then(response => {
- console.log(response.data); // 输出结果
- })
- .catch(error => {
- console.error('Error:', error.message); // 输出错误信息
- });
- }
- CMD.search_new_id = async function(bookId,call_back){
- const fetch = require('node-fetch');
- const url = `https://www.changdunovel.com/novelsale/distributor/content/book/list/v1?permission_statuses=3%2C4&search_type=5&query=${bookId}&page_index=0&page_size=10&msToken=Y1ycMk3xTJj-ZZNpi5dVCcNHYRw7NKehmunCGftKYr_s0if-k5jcQlON71uUe7MB2KjvNRoGYmT3xq4s82yZfH9s2gV4Fpun-grz__CT9spTPzqlrZ_y2K6wLJy7g3WR0o6hmxY5_pBG1yoAPghBO6HMNFQoJaiLMV8Mr__5LVqqpg%3D%3D&a_bogus=Ey4jDttwmZR5apAGuCktelelzSDMr0uy8-ToStJy9Oq-GqlO9YefdaGkjoKmDjFU5upZpSIHAn4MKdxcQKwiZHQpKmZfuEhRST9Vn0sL8Z7mGPJZVNbmSiSoKJiG%2F5REO%2FavxM0WltmOZd%2F1pNd%2FM5a7u%2FXomcSBRw9TfxXGE1qh6Pht78f%3D`;
-
- const headers = {
- 'accept': 'application/json, text/plain, */*',
- 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
- 'agw-js-conv': 'str',
- 'appid': '40013175',
- 'apptype': '8',
- 'distributorid': '1826185708850233',
- 'priority': 'u=1, i',
- 'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
- 'sec-ch-ua-mobile': '?1',
- 'sec-ch-ua-platform': '"Android"',
- 'sec-fetch-dest': 'empty',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-site': 'same-origin',
- 'x-secsdk-csrf-token': '000100000001914e91f95f8129843d7ae581c2ae522b975d3994a1f71be6a7a9e478964baf7a183ba7abea3a9c09',
- 'cookie': temp_cookie,
- 'Referer': 'https://www.changdunovel.com/sale/novel/list?permission_statuses=3%2C4&search_type=5&query=7382805882943310874&page_index=1&page_size=10',
- 'Referrer-Policy': 'strict-origin-when-cross-origin'
- };
-
- try{
- let response = await fetch(url, {
- method: 'GET',
- headers: headers
- })
- let data = await response.json()
- if(data.code!=0){
- throw data
- }
- return data.data[0]
- }catch(e){
- console.error("search_new_id error:",e)
- return ""
- }
-
- }
- CMD.search_mf_new_id = async function(bookId){
- return new Promise((resolve, reject) => {
- const options = {
- hostname: 'www.changdunovel.com',
- path: '/novelsale/distributor/content/book/list/v1',
- method: 'GET',
- headers: {
- 'accept': 'application/json, text/plain, */*',
- 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
- 'agw-js-conv': 'str',
- 'appid': '40017687',
- 'apptype': '15',
- 'distributorid': '1819222136130603',
- 'priority': 'u=1, i',
- 'sec-ch-ua': '"Microsoft Edge";v="135", "Not-A.Brand";v="8", "Chromium";v="135"',
- 'sec-ch-ua-mobile': '?1',
- 'sec-ch-ua-platform': '"Android"',
- 'sec-fetch-dest': 'empty',
- 'sec-fetch-mode': 'cors',
- 'sec-fetch-site': 'same-origin',
- 'x-secsdk-csrf-token': '000100000001914e91f95f8129843d7ae581c2ae522b975d3994a1f71be6a7a9e478964baf7a183ba7abea3a9c09',
- 'cookie': temp_cookie
- }
- };
- // 构建查询参数
- const params = new URLSearchParams({
- permission_statuses: '3,4',
- search_type: '6',
- query: `${bookId}`,
- page_index: '0',
- page_size: '1',
- msToken: 'QtOXD1IEPGNjuwS8Lzzew68qWnqxmVU10gPxOLcbijTXMmshIe_toySxUmiovwVBez7c8O3QcscyRES2_uC',
- a_bogus: 'mf0RheSEOx/nKpltmKsUeUHUEy2MrzuyDBTKRijyeNxpTZMaA8eeNOc9rxumZFaaeYpNZSMHUn-AznrcOcwwZ7HpKskvui7RtG9I98so8ZH3bBJg9r6MCGGoqkke/cWE85ltx9011UfO1nclk3dKMp3Jo/4qQODdRJ9zfPvax1q6640a7s8='
- });
- options.path += `?${params.toString()}`;
- const req = https.request(options, (res) => {
- let data = '';
- res.on('data', (chunk) => {
- data += chunk;
- });
- res.on('end', () => {
- try {
- const parsedData = JSON.parse(data);
- if(parsedData.code!=0){
- resolve("");
- return
- }
- if(parsedData.data.length<=0){
- resolve(null);
- return
- }
- resolve(parsedData.data[0]);
- } catch (e) {
- console.error('JSON parsing error:', e);
- reject(e);
- }
- });
- });
- req.on('error', (error) => {
- console.error('Request error:', error);
- reject(error);
- });
- // 设置请求超时
- req.setTimeout(10000, () => {
- req.destroy();
- reject(new Error('Request timeout'));
- });
- req.end();
- });
- }
- module.exports = CMD;
|