psyduck/parse/jd/jd_task_rmCart.js
2025-02-11 21:55:02 +08:00

164 lines
7.3 KiB
JavaScript

import {Template} from '../../template.js'
export class Main extends Template {
constructor() {
super()
this.profile = {
title: '京东删除购物车',
prompt: {
whiteList: '保留关键词,关键词1|关键词2',
blackList: '只删除关键词,关键词1|关键词2'
},
headers: {
"referer": "https://cart.jd.com/cart_index/",
}
}
}
async prepare() {
}
async main(p) {
let user = p.data.user;
let context = p.context;
let cart = await this.curl({
'url': `https://api.m.jd.com/api?functionId=pcCart_jc_getCurrentCart&appid=JDC_mall_cart&loginType=3&t=1717947580116&client=pc&clientVersion=1.0.0&body={"serInfo":{"user-key":""},"cartExt":{"specialId":1}}`,
user,
algo: {
appId: 'f961a'
}
}
)
if (!this.haskey(cart, 'resultData.cartInfo.vendors')) {
p.err("没有获取到购物车数据")
return
}
let skus = []
let packs = []
let whiteList, blackList
if (this.profile.whiteList) {
whiteList = (this.profile.whiteList).split(",").join('|')
}
else if (this.profile.blackList) {
blackList = (this.profile.blackList).split(",").join('|')
}
let status = 0
if (this.haskey(cart, 'resultData.cartInfo.vendors')) {
status++
for (let i of cart.resultData.cartInfo.vendors) {
for (let j of this.haskey(i, 'sorted')) {
if (this.haskey(j, 'item.items')) {
if (j.item.items.length>0) {
for (let k of j.item.items) {
if (whiteList) {
if (!k.item.Name.match(whiteList)) {
packs.push(
{
"num": k.item.Num.toString(),
"ybPackId": j.item.promotionId,
"sType": "11",
"TheSkus": [{"num": k.item.Num.toString(), "Id": k.item.Id.toString()}],
"Id": j.item.promotionId
}
)
}
}
else if (blackList) {
if (k.item.Name.match(blackList)) {
packs.push(
{
"num": k.item.Num.toString(),
"ybPackId": j.item.promotionId,
"sType": "11",
"TheSkus": [{"num": k.item.Num.toString(), "Id": k.item.Id.toString()}],
"Id": j.item.promotionId
}
)
}
}
else {
let packss = {
"num": k.item.Num.toString(),
"ybPackId": (j.item.promotionId || j.item.Id).toString(),
"sType": "11",
"TheSkus": [{"num": k.item.Num.toString(), "Id": k.item.Id.toString()}],
"Id": (j.item.promotionId || j.item.vid).toString()
}
if (this.haskey(k, 'item.skuUuid')) {
packss.skuUuid = k.item.skuUuid
packss.TheSkus[0].skuUuid = k.item.skuUuid
// packss.sType = "4"
packss.useUuid = false
packss.TheSkus[0].useUuid = false
}
packs.push(
packss
)
}
// if (k.item.stockState != "无货" && k.item.checkBoxText != "预售") {
// }
}
}
else {
if (whiteList) {
if (!j.item.Name.match(whiteList)) {
skus.push(
{
"num": j.item.Num.toString(),
"Id": j.item.Id.toString(),
"skuUuid": j.item.skuUuid,
"useUuid": j.item.useUuid
}
)
}
}
else if (blackList) {
if (j.item.Name.match(blackList)) {
skus.push(
{
"num": j.item.Num.toString(),
"Id": j.item.Id.toString(),
"skuUuid": j.item.skuUuid,
"useUuid": j.item.useUuid
}
)
}
}
else {
skus.push(
{
"num": j.item.Num.toString(),
"Id": j.item.Id.toString(),
"skuUuid": j.item.skuUuid,
"useUuid": j.item.useUuid
}
)
}
}
}
}
}
}
p.log('即将删除购物车数目:', skus.length + packs.length)
if (skus.length>0 || packs.length>0) {
let cartRemove = await this.curl({
'url': `https://api.m.jd.com/api`,
'form': `functionId=pcCart_jc_cartRemove&appid=JDC_mall_cart&body=${this.dumps({
"operations": [{
"carttype": "4",
"TheSkus": skus,
"ThePacks": packs
}], "serInfo": {}
})}`,
user
}
)
p.msg(`删除购物车: ${skus.length + packs.length}`)
if (status) {
p.info.work = true
}
}
}
}