添加清空收藏逻辑
This commit is contained in:
parent
37e2b7ef82
commit
b1607f9e97
126
src/index.js
126
src/index.js
@ -3,6 +3,119 @@ import { readFileSync } from 'fs';
|
||||
const config = JSON.parse(readFileSync('./src/config.json', 'utf8'));
|
||||
const { cookie, sec_user_id } = config;
|
||||
|
||||
async function getCollection() {
|
||||
try {
|
||||
const response = await fetch("https://www.douyin.com/aweme/v1/web/aweme/listcollection/?device_platform=webapp&aid=6383&channel=channel_pc_web&publish_video_strategy_type=2&pc_client_type=1&pc_libra_divert=Windows&update_version_code=170400&support_h265=1&support_dash=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=122.0.6261.95&browser_online=true&engine_name=Blink&engine_version=122.0.6261.95&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=100&webid=7588123201441105427&uifid=e438e504399eecf9c2f65594851517a53fcd0a47c3feace6f386418d12bbc04d0e409b50ec8a21ef6eff4b825cd64059646e0a366a371675723852d9a6540fb6f5091520701820efa27f3a3704dddb313966d30cb1eb174337518d6be3053846f8e3a789519374cdfccbab779ff03ecc6f7e7de633af65c7c8023a60b56e88d25276be703f2bf75e67ae6889151319ddab78703305a3c9034797e4620f16cafc7027bf0cb4e50041e1bf97725dd3c1906f45d3565d6b31aadf8fcfd836827d98&msToken=iSlpjUc-ZZQXUB5K8kTx-rVX40ddZzt9DXqE_3u-wLxKxhafhk8Td9D-ONMw4qNA687n_VJ_i3emaOwGNEqbXabtUXEVISxidkZvl7ey4nZcD3e0p4923IlP9vmLynlQujZVPuhpuRa9tWSOJ0fGEnP8q7gZeiBG7hJBp2lRdAU%3D&a_bogus=DJsVDH6JYZ5jKd%2Ft8KmTtvOU56Elrs8y4eiQSPnPCxPgPhFGPuPBObV-cPP35MMZSYphw9MHcD5VTfdTYUWS0enkqmZkuzU6cz%2FAI08LgqwVbFU8gq8mCghFuwBT8Rwi-QQ1ieXRIssr2jxR9r5EAB2aH5FH5bEgSHBIpMbyjDS8psyTno%2FnCcYWH7L%3D&verifyFp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj&fp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj×tamp=1769677150&x-secsdk-web-signature=6931c547636fc1cfd1186d6bee47414a", {
|
||||
"headers": {
|
||||
"accept": "application/json, text/plain, */*",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
"cache-control": "no-cache",
|
||||
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
"pragma": "no-cache",
|
||||
"sec-ch-ua": "\"Chromium\";v=\"122\", \"Not(A:Brand\";v=\"24\", \"Google Chrome\";v=\"122\"",
|
||||
"sec-ch-ua-mobile": "?0",
|
||||
"sec-ch-ua-platform": "\"Windows\"",
|
||||
"sec-fetch-dest": "empty",
|
||||
"sec-fetch-mode": "cors",
|
||||
"sec-fetch-site": "same-origin",
|
||||
"uifid": "e438e504399eecf9c2f65594851517a53fcd0a47c3feace6f386418d12bbc04d0e409b50ec8a21ef6eff4b825cd64059646e0a366a371675723852d9a6540fb6f5091520701820efa27f3a3704dddb313966d30cb1eb174337518d6be3053846f8e3a789519374cdfccbab779ff03ecc6f7e7de633af65c7c8023a60b56e88d25276be703f2bf75e67ae6889151319ddab78703305a3c9034797e4620f16cafc7027bf0cb4e50041e1bf97725dd3c1906f45d3565d6b31aadf8fcfd836827d98",
|
||||
"x-secsdk-csrf-token": "DOWNGRADE",
|
||||
"cookie": cookie,
|
||||
"Referer": "https://www.douyin.com/user/self?from_tab_name=main&showTab=favorite_collection",
|
||||
"Referrer-Policy": "no-referrer-when-downgrade"
|
||||
},
|
||||
"body": "count=10&cursor=0",
|
||||
"method": "POST"
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Error fetching collection list:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function getAndUnCollection() {
|
||||
try {
|
||||
let ret = await getCollection();
|
||||
if (!ret || !ret.aweme_list) {
|
||||
console.error('No collection list found');
|
||||
return;
|
||||
}
|
||||
|
||||
let aweme_list = ret.aweme_list;
|
||||
let aweme_ids = [];
|
||||
|
||||
for (let index = 0; index < aweme_list.length; index++) {
|
||||
const element = aweme_list[index];
|
||||
if (element && element.aweme_id) {
|
||||
aweme_ids.push(element.aweme_id);
|
||||
}
|
||||
}
|
||||
|
||||
if (aweme_ids.length > 0) {
|
||||
console.log(`Found ${aweme_ids.length} collection items`);
|
||||
await unCollection(aweme_ids);
|
||||
} else {
|
||||
console.log('No collection items to uncollect');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error in getAndUnCollection:', error);
|
||||
}
|
||||
}
|
||||
|
||||
async function unCollection(ids) {
|
||||
try {
|
||||
// 构建 aweme_type_map
|
||||
const aweme_type_map = {};
|
||||
ids.forEach(id => {
|
||||
aweme_type_map[id] = 0;
|
||||
});
|
||||
|
||||
// 构建请求体
|
||||
const body = `aweme_ids=${ids.join('%2C')}&aweme_type_map=${encodeURIComponent(JSON.stringify(aweme_type_map))}`;
|
||||
|
||||
const response = await fetch("https://www.douyin.com/aweme/v1/web/aweme/cancel/collect/multi/?device_platform=webapp&aid=6383&channel=channel_pc_web&pc_client_type=1&pc_libra_divert=Windows&update_version_code=170400&support_h265=1&support_dash=1&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=122.0.6261.95&browser_online=true&engine_name=Blink&engine_version=122.0.6261.95&os_name=Windows&os_version=10&cpu_core_num=8&device_memory=8&platform=PC&downlink=2.25&effective_type=4g&round_trip_time=200&webid=7588123201441105427&uifid=e438e504399eecf9c2f65594851517a53fcd0a47c3feace6f386418d12bbc04d0e409b50ec8a21ef6eff4b825cd64059646e0a366a371675723852d9a6540fb6f5091520701820efa27f3a3704dddb313966d30cb1eb174337518d6be3053846f8e3a789519374cdfccbab779ff03ecc6f7e7de633af65c7c8023a60b56e88d25276be703f2bf75e67ae6889151319ddab78703305a3c9034797e4620f16cafc7027bf0cb4e50041e1bf97725dd3c1906f45d3565d6b31aadf8fcfd836827d98&verifyFp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj&fp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj&msToken=gm3y5Z8Zs-ESl5ZxONjXIQQqhHn6XZvoBLS-ciy0w_wtvszmbAWR_jjXM5F2wLyFkgdBC6MQ2INL4FOCi85sI53qpaOs_yY3A7Fh7WevXbpsIzkD7sQKIjrgVEgbIOAlc4O1zGiU_tLoi2X9ZsIP5TlVg6p9ecYALNzAjwkdLvg%3D&a_bogus=OfsjDwtLEq5jadFbmODstl2UvSoANTWyk-TKRHaPtPYoPhlTXmNPQq4NJoiV5VZzWYphwKZHGD5UGdxb8U1r8CnkwmhkuF7fAT%2FnI60o%2FqwgGts%2FDqmDC0YzzwBFUOJNl%2FCfiAm5Ws0x2VnRVH5gAp2ae5zqQbfgWNpIp%2FG9jDS8psyTno%2FnCcYWH7L%3D", {
|
||||
"headers": {
|
||||
"accept": "application/json, text/plain, */*",
|
||||
"accept-language": "zh-CN,zh;q=0.9",
|
||||
"cache-control": "no-cache",
|
||||
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
"pragma": "no-cache",
|
||||
"sec-ch-ua": "\"Chromium\";v=\"122\", \"Not(A:Brand\";v=\"24\", \"Google Chrome\";v=\"122\"",
|
||||
"sec-ch-ua-mobile": "?0",
|
||||
"sec-ch-ua-platform": "\"Windows\"",
|
||||
"sec-fetch-dest": "empty",
|
||||
"sec-fetch-mode": "cors",
|
||||
"sec-fetch-site": "same-origin",
|
||||
"uifid": "e438e504399eecf9c2f65594851517a53fcd0a47c3feace6f386418d12bbc04d0e409b50ec8a21ef6eff4b825cd64059646e0a366a371675723852d9a6540fb6f5091520701820efa27f3a3704dddb313966d30cb1eb174337518d6be3053846f8e3a789519374cdfccbab779ff03ecc6f7e7de633af65c7c8023a60b56e88d25276be703f2bf75e67ae6889151319ddab78703305a3c9034797e4620f16cafc7027bf0cb4e50041e1bf97725dd3c1906f45d3565d6b31aadf8fcfd836827d98",
|
||||
"x-secsdk-csrf-token": "DOWNGRADE",
|
||||
"cookie": cookie,
|
||||
"Referer": "https://www.douyin.com/user/self?from_tab_name=main&showTab=favorite_collection",
|
||||
"Referrer-Policy": "no-referrer-when-downgrade"
|
||||
},
|
||||
"body": body,
|
||||
"method": "POST"
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log('Uncollection result:', data);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error('Error uncollecting items:', error);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
async function getFavorite() {
|
||||
try {
|
||||
const response = await fetch(`https://www.douyin.com/aweme/v1/web/aweme/favorite/?device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id=${sec_user_id}&max_cursor=0&min_cursor=0&whale_cut_token=&cut_version=1&count=18&publish_video_strategy_type=2&update_version_code=170400&pc_client_type=1&pc_libra_divert=Windows&support_h265=1&support_dash=1&cpu_core_num=8&version_code=170400&version_name=17.4.0&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=122.0.6261.95&browser_online=true&engine_name=Blink&engine_version=122.0.6261.95&os_name=Windows&os_version=10&device_memory=8&platform=PC&downlink=10&effective_type=4g&round_trip_time=100&webid=7588123201441105427&uifid=e438e504399eecf9c2f65594851517a53fcd0a47c3feace6f386418d12bbc04d0e409b50ec8a21ef6eff4b825cd64059646e0a366a371675723852d9a6540fb6f5091520701820efa27f3a3704dddb313966d30cb1eb174337518d6be3053846f8e3a789519374cdfccbab779ff03ecc6f7e7de633af65c7c8023a60b56e88d25276be703f2bf75e67ae6889151319ddab78703305a3c9034797e4620f16cafc7027bf0cb4e50041e1bf97725dd3c1906f45d3565d6b31aadf8fcfd836827d98&verifyFp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj&fp=verify_mjmrx3qn_TELLC7l8_syRO_4t1Z_9xE4_wiK4naxXhlHj&msToken=XVrfBx2H--46EDtKA8gvp94fyaO9Q6EWz4m7eVDiWHfNgRjdqIp07r2di--6kDYgSqY_Aavj6a4uPFIFXvp0vaU-qDIxoi4ACF48HVDaIBG1tEPorMOlTqGBADKGKSngV31AfgHTX5YpCYhMd-ujv3ia8nmQ8fUyqqvPRUvxFhM%3D&a_bogus=Qj4RkeSLExWfcd%2Fb8KNZ76OUUHgANPuyMaTdRyKPSOOOaZFY-bNPKOSXcxoqWhLBSSBzw9-H7fGlbjVbYUXTZHHkFmpvS8hbCT25I0mLZqq6Tl4%2FDNm8CgTzqwse0YvNaA9SiImR1sMN2VnRVH5YAddGH5FqQ5DgSqB9pZt9rDCW3PgTnn2GCrfAVqy%3D×tamp=1769668348&x-secsdk-web-signature=48a49129857d5973920a84fbca09b630`, {
|
||||
@ -121,14 +234,11 @@ async function unFavorites(ids) {
|
||||
|
||||
// 测试函数
|
||||
async function test() {
|
||||
// 测试获取喜欢列表
|
||||
const favoriteResult = await getFavorite();
|
||||
console.log('Favorite list result:', favoriteResult);
|
||||
|
||||
// 测试获取并取消喜欢
|
||||
// 测试获取喜欢列表并取消喜欢
|
||||
await getAndUnFavorite();
|
||||
|
||||
// 测试获取收藏列表并取消收藏
|
||||
await getAndUnCollection();
|
||||
}
|
||||
|
||||
setInterval(() => {
|
||||
test();
|
||||
}, 10 * 1000);
|
||||
test();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user