Files
KJD_WebService/Work/Api/GetEditDetail.cs
T
2025-06-29 19:38:31 +08:00

143 lines
4.2 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using AllBase;
namespace Work.Api
{
public class GetEditDetail
{
public ShopChatBase Shop;
public string Name;
public GetEditDetail(ShopChatBase shop,string name)
{
Shop = shop;
Name = name;
}
public ResultBase Get(long pin)
{
string html = GetHtmlBy(pin);
if (string.IsNullOrEmpty(html) || !html.Contains("\"success\":true"))
{
LogSave.Add(Name, "商品不存在:" + pin);
return null;
}
if (BaseRegex.GetIntJson(ref html, "is_onsale") == 0)
{
LogSave.Add(Name, "商品已下架:" + pin);
return null;
}
GetEditDetailBase tp = JsonHelper.DeserializeJsonToObject<GetEditDetailBase>(html);
tp.result.fabricx = BaseRegex.GetIntJson(ref html, "fabric");
tp.result.fabric_contentx = BaseRegex.GetIntJson(ref html, "fabric_content");
return tp.result;
}
public string GetHtmlBy(long pin)
{
string url = "https://mms.pinduoduo.com/glide/v2/mms/query/commit/detail/"+pin;
string refere = "https://mms.pinduoduo.com/Pdd.html";
WebClientx wb = new WebClientx();
wb.Timeout = 30;
wb.AllowAutoRedirect = false;
wb.Headers.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
wb.Headers.Add("Accept-Encoding", "gzip,deflate");
wb.Headers.Add("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");
wb.Headers.Add("User-Agent", BaseClass.ChromeUserAgent);
wb.Headers.Add("Upgrade-Insecure-Requests", "1");
wb.Headers.Add("Referer", "https://mms.pinduoduo.com/Pdd.html");
wb.Headers.Add("Cookie", Shop.Cookies);
try
{
var b = wb.DownloadData(url);
return Encoding.UTF8.GetString(b);
}
catch (Exception e)
{
return e.Message;
}
}
}
public class GetEditDetailBase
{
public bool success;
public ResultBase result;
}
public class ResultBase
{
public long id;
public long goods_id;
public int check_status;
public int commit_deleted;
public string owner;
public int is_shop;
public string goods_sn;
public int is_folt;
public string warm_tips;
public int fabricx;
public int fabric_contentx;
public int cost_template_id;
public int cat_id;
public int mall_id;
public string goods_name;
public string tiny_name;
public string goods_desc;
public string share_desc;
public List<string> list_desc = new List<string>();
public int market_price;
public string thumb_url;
public string image_url;
public string hd_thumb_url;
public CommitExtensionBase commit_extension;
public List<GalleriesBase> galleries;
public List<SkuDetailBase> sku;
public List<int> cat_ids;
public List<string> cats;
public string owner_name;
}
public class CommitExtensionBase
{
public long goods_commit_id;
public string out_goods_sn;
}
public class GalleriesBase
{
public string url;
public int width;
public int height;
public int type;
}
public class SkuDetailBase
{
public long id;
public long sku_id;
public string sku_sn;
public int is_onsale;
public int limit_quantity;
public int multi_price;
public int price;
public int quantity;
public string thumb_url;
public List<SpecDetailBase> spec;
public string out_sku_sn;
}
public class SpecDetailBase
{
public int parent_id;
public string parent_name;
public long spec_id;
public string spec_name;
}
}