import * as fs from 'fs';
|
import axios from "axios";
|
|
// const filenameWs = fs.createWriteStream('baidu-filenames.txt', { flags: 'a', encoding: 'utf8' });
|
// const pathWs = fs.createWriteStream('baidu-paths.txt', { flags: 'a', encoding: 'utf8' });
|
// const fileList = [];
|
// fatchList('1007852250511447', fileList)
|
// .finally(() => {
|
// const filenames = [];
|
// const paths = [];
|
// for (const file of fileList) {
|
// filenames.push(file.filename);
|
// paths.push(file.path);
|
// }
|
// // fs.writeFileSync('baidu-filenames.txt', filenames.join('\n'));
|
// // fs.writeFileSync('baidu-filepaths.txt', paths.join('\n'));
|
// filenameWs.close();
|
// pathWs.close();
|
// });
|
|
const formatMap = {
|
'Pdf': true,
|
'pdf': true,
|
'PDF': true,
|
'epub': true,
|
'EPUB': true,
|
'ePub': true,
|
'mobi': true,
|
'MOBI': true,
|
'azw3': true,
|
'azw': true,
|
'djvu': true,
|
};
|
|
async function fatchList(fs_id, fileList) {
|
const headers = {
|
Cookie: `BIDUPSID=26D8BFCB9921A8B8CFF88D554B389A36; PSTM=1649675032; MCITY=-324%3A; PANWEB=1; BAIDU_WISE_UID=wapp_1717165789588_726; BAIDUID=75245788C1BC8BF2F60DBD44402471CA:SL=0:NR=10:FG=1; BAIDUID_BFESS=75245788C1BC8BF2F60DBD44402471CA:SL=0:NR=10:FG=1; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; PSINO=1; delPer=0; ZFY=BbxItP0R:Ar496cxky2Ut2GFMaz2CaB0kcDH2FTPaMB8:C; H_PS_PSSID=60276_60521_60566_60573; ZD_ENTRY=bing; csrfToken=A5a7OncLSPxifurVy_zpZufT; newlogin=1; Hm_lvt_95fc87a381fad8fcb37d76ac51fefcea=1723548657; HMACCOUNT=73556D45FFE12A61; PANPSC=450778318030811434%3AKkwrx6t0uHBFxO38YBEwbzuv496EomYGCAqT9gdLi878w7eY56A7XxM4dDjxBdlpIqNQStgZBhRv5lJmgFLcWaGe416fovhgrwSpwCr5jvdFah9uWgECZx89VaJxt2prglpnIkZD9Kmi%2BY1X7udr9G2gud9gLjYtpqvB0tQPnfltcQe%2BbgwEaTCo8bcT1HMK; ppfuid=FOCoIC3q5fKa8fgJnwzbE67EJ49BGJeplOzf+4l4EOvDuu2RXBRv6R3A1AZMa49I27C0gDDLrJyxcIIeAeEhD8JYsoLTpBiaCXhLqvzbzmvy3SeAW17tKgNq/Xx+RgOdb8TWCFe62MVrDTY6lMf2GrfqL8c87KLF2qFER3obJGluLczhecqgremvAygsVvJeGEimjy3MrXEpSuItnI4KD2DdU2dlyNY9t4hl20SaxehR4EaoY7dI60LOhq0HnLAJjYJfQxS6ZeJem/A3CmAQtQkCbDM23TdA0CXmF0zgX4nGgLbz7OSojK1zRbqBESR5Pdk2R9IA3lxxOVzA+Iw1TWLSgWjlFVG9Xmh1+20oPSbrzvDjYtVPmZ+9/6evcXmhcO1Y58MgLozKnaQIaLfWRFwa8A3ZyTRp/cDxRMhYc94UFIDif2s87oqXVFSvZHNYVEAF9J/3enbpAXV6XgHRuXeTNkbS2el0J2+pbyoXJb2BYVXTjpL4gXqZ55zG8C/uqfhwWryYacZfOfIdenDLSkJsc4rBzsbBPyjKAzWGBO7nCxNtgYtDo26K+8ukl31Y+/geIrmTvn+xVA1gAbbf1lkKhylX1zGsOVlJip30kecMEGvjdNWpsel/qfsfe5JBpqDTksMVoBr7nszRboiUHbedcq1mi/UXvX2b3lxbCLv4Mxoy+dFS3Fr9jSAmssiPARPZutqXQT8krr+KVakPUpdbkwv/8CHDu0C/Z5vtDeiYLQpEgFjmQoey69Fz+kM7Y5cg925MGCeBU4jWp2g2gxX/Z9WRL7Ng71lvihGF7jz4ZT3bA2KOpkia/4zzCht1eHXVXzDUMxpGt9aRmXStLkhpOuhw8bYyjFOBzzWtHbb/bZjYuTi397a21776RWy1hAfIX+LOYnlmJLoIfeQJGyV88cwcM1svp+zVDjUpc+tX+hKCutoGOSxoeD09wtPvkfIibk/f1wuA5XvSHYqqJRx8VJ2MfThAR9JY85BUmPjqOlbhrblXFkBQG7n4JKiZyalk9X22FXe2MsdipOHFxSUHSqbPo2PPJzEor12m6lThR7YgmlfLt7kntJD5XeM7GEQw3OLo5dsSUeQDd6vDnkb72/TMYcbPW48WuSnSgMDL820G6v5sII3fbIl1IswRGEQw3OLo5dsSUeQDd6vDntVllC1+aCCc8K28RWpYmU0S24R9DDZVx3j3+tLLpw3BRuF/lI7yGQ5dEntCEMtnVaOBuNLhAhlddA7KpjMdW1UU5ZZ2QvNYYVj4McvsdmZl2ssb09Yk1KUaxhNd9iuw6w==; BDUSS=2FKMlpkNktUbFo1eExCfmllYXN-M1QweHpTT3NUQU5Ca2RKNUI5d2Y3QUgxT0ptRUFBQUFBJCQAAAAAAAAAAAEAAAB7CegOMTU0MzExNzE3MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHu2YHR7tma; BDUSS_BFESS=2FKMlpkNktUbFo1eExCfmllYXN-M1QweHpTT3NUQU5Ca2RKNUI5d2Y3QUgxT0ptRUFBQUFBJCQAAAAAAAAAAAEAAAB7CegOMTU0MzExNzE3MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdHu2YHR7tma; bce-sessionid=00189e93f952e9743059334d76c7b7c2818; __bid_n=1914b8dcc1123045b8e84d; RT="z=1&dm=baidu.com&si=3b60e45c-be81-4722-b84c-754f439ce8b2&ss=lzscrau0&sl=a&tt=d3y&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=3ylg&ul=41oj&hd=41om"; STOKEN=f5703b02f0370574a1fdfa28759771354b151598a9cc9dedfdc14f43354e6baa; Hm_lpvt_95fc87a381fad8fcb37d76ac51fefcea=1723549765; ndut_fmt=D094F534F142F8E2076E4850AC3D8512F0031FC3AB4D8066A8DCDF37A1228874`,
|
'User-Agent': `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0`,
|
'Content-Type': `application/x-www-form-urlencoded`,
|
'sec-ch-ua': `"Not)A;Brand";v="99", "Microsoft Edge";v="127", "Chromium";v="127"`,
|
'Origin': 'https://pan.baidu.com',
|
Accept: 'application/json, text/plain, */*',
|
|
};
|
let page = 1;
|
let hasMore = true;
|
while (hasMore) {
|
let retry = 3;
|
while (retry) {
|
try {
|
const url = `https://pan.baidu.com/mbox/msg/shareinfo?from_uk=1100996502544&msg_id=4797301806302061514&type=2&num=50&page=${page}&fs_id=${fs_id}&gid=418650227780964415&limit=50&desc=1&clienttype=0&app_id=250528&web=1&dp-logid=12522300853002690550`
|
// const url = `https://pan.baidu.com/mbox/msg/shareinfo?from_uk=1099855072643&msg_id=1687020473988377142&type=2&num=50&page=${page}&fs_id=${fs_id}&gid=524702303282861882&limit=50&desc=1&clienttype=0&app_id=250528&web=1&dp-logid=12522300853002690402`;
|
const resp = await axios.post(url, {}, { headers });
|
hasMore = resp.data.has_more;
|
if (resp.status === 200 && resp.data.errno === 0) {
|
for (const record of resp.data.records) {
|
if (record.isdir) {
|
await fatchList(record.fs_id, fileList);
|
} else {
|
const ext = record.server_filename.split('.').pop();
|
if (formatMap[ext]) {
|
filenameWs.write(record.server_filename + '\n');
|
pathWs.write(record.path + '\n');
|
}
|
// fileList.push({ filename: record.server_filename, path: record.path });
|
}
|
}
|
}
|
page++;
|
retry = 0;
|
} catch (e) {
|
console.error(e.message);
|
retry--;
|
}
|
}
|
}
|
}
|
|
function genBookList() {
|
const files = [
|
'baidu-filenames.txt',
|
'baidu-filenames0.txt',
|
// 'baidu-filenames1.txt',
|
'baidu-filenames2.txt',
|
'baidu-filenames3.txt',
|
'baidu-filenames4.txt',
|
];
|
const map = new Map();
|
const books = [];
|
for (const file of files) {
|
fs.readFileSync(file, 'utf8').replace(/\r/g, '').split('\n').forEach(line => {
|
const name = line.substring(0, line.lastIndexOf('.'));
|
if (/^[^\u4e00-\u9fa5]+$/g.test(name)) {
|
return;
|
}
|
if (name.includes('扫描版')) { return; }
|
const ext = line.substring(line.lastIndexOf('.') + 1).toLocaleLowerCase();
|
if (!map.has(name)) {
|
map.set(name, ext);
|
} else {
|
if (ext == 'epub') {
|
map.set(name, ext);
|
}
|
}
|
});
|
}
|
map.forEach((ext, name) => {
|
books.push(name + '.' + ext);
|
});
|
fs.writeFileSync('baidu-books.txt', books.join('\n'));
|
}
|
genBookList();
|