You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1778 lines
68 KiB
1778 lines
68 KiB
using CefSharp;
|
|
using CefSharp.Wpf;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net.Http;
|
|
using System.Text.RegularExpressions;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using 齐越慧眼.cefhelper;
|
|
using 齐越慧眼.Models;
|
|
|
|
namespace 齐越慧眼.UserControls
|
|
{
|
|
/// <summary>
|
|
/// BrowerControl.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class BrowerControl : UserControl
|
|
{
|
|
public HandyControl.Controls.TabItem Tab { get; set; }
|
|
public ExtChromiumBrowser web;
|
|
|
|
/// <summary>
|
|
/// 是否登录京东
|
|
/// </summary>
|
|
public bool IsJustLoginJd { get; set; }
|
|
|
|
/// <summary>
|
|
/// 处理拼多多
|
|
/// </summary>
|
|
public bool IsPddPage { get; set; }
|
|
|
|
public BrowerControl(string url, HandyControl.Controls.TabItem tabItem)
|
|
{
|
|
InitializeComponent();
|
|
|
|
|
|
if (url.Contains("ltype=logout&ReturnUrl=https://home.jd.com"))
|
|
{
|
|
IsJustLoginJd = true;
|
|
}
|
|
|
|
if (url.Contains("yangkeduo.com"))
|
|
{
|
|
IsPddPage = true;
|
|
}
|
|
|
|
Tab = tabItem;
|
|
web = new ExtChromiumBrowser(url)
|
|
{
|
|
BrowserSettings =
|
|
{
|
|
DefaultEncoding = "UTF-8",
|
|
Plugins = CefState.Enabled,
|
|
//关于跨域限制
|
|
//WebSecurity = CefState.Disabled,
|
|
ApplicationCache = CefState.Enabled,
|
|
LocalStorage = CefState.Enabled,
|
|
|
|
|
|
},
|
|
|
|
//RequestHandler =new MyRequestHandler()
|
|
};
|
|
|
|
if (!IsJustLoginJd)
|
|
{
|
|
MyResourceRequestHandlerFactory myResourceRequestHandlerFactory = new MyResourceRequestHandlerFactory(this);
|
|
myResourceRequestHandlerFactory.Handlers.TryAdd("test", null);
|
|
|
|
web.ResourceRequestHandlerFactory = myResourceRequestHandlerFactory;
|
|
}
|
|
grid.Children.Add(web);
|
|
Loaded += BrowerControl_Loaded;
|
|
|
|
if (!IsJustLoginJd)
|
|
{
|
|
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
|
|
var cjs = new CefAsyncJS();
|
|
cjs.Brower = this;
|
|
web.JavascriptObjectRepository.Register("hyCoreModel", cjs, BindingOptions.DefaultBinder);
|
|
web.StartNewWindow += Web_StartNewWindow;
|
|
web.TitleChanged += Web_TitleChanged;
|
|
}
|
|
web.AddressChanged += Web_AddressChanged;
|
|
|
|
|
|
|
|
this.KeyUp += BrowerControl_KeyUp;
|
|
}
|
|
|
|
|
|
private void BrowerControl_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
|
|
{
|
|
|
|
if (e.Key == System.Windows.Input.Key.F12)
|
|
{
|
|
web.ShowDevTools();
|
|
}
|
|
}
|
|
|
|
private void Visitor_SendCookie(Cookie obj)
|
|
{
|
|
string cookies = obj.Name + "=" + obj.Value + ";";
|
|
App.JdCookie += cookies;
|
|
}
|
|
|
|
private void Web_AddressChanged(object sender, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
txtUrl.Text = e.NewValue.ToString();
|
|
});
|
|
|
|
|
|
|
|
if (IsJustLoginJd)
|
|
{
|
|
if (e.NewValue.ToString().StartsWith("https://home.jd.com"))
|
|
{
|
|
CookieVisitor visitor = new CookieVisitor();
|
|
visitor.SendCookie += Visitor_SendCookie;
|
|
ICookieManager cookieManager = web.GetCookieManager();
|
|
cookieManager.VisitAllCookies(visitor);
|
|
|
|
WpfNoticeMsg.NoticeMessage.Show("请稍后,正在登录中...");
|
|
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
while (IsJustLoginJd)
|
|
{
|
|
Thread.Sleep(5000);
|
|
|
|
using (HttpClient http = new HttpClient())
|
|
{
|
|
http.DefaultRequestHeaders.Add("Cookie", App.JdCookie);
|
|
var result = http.GetAsync("https://passport.jd.com/user/petName/getUserInfoForMiniJd.action?callback=jQuery3218901&_=0").Result;
|
|
if (result.IsSuccessStatusCode)
|
|
{
|
|
WpfNoticeMsg.NoticeMessage.Show("登录成功,请返回重试!");
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
public void Exit()
|
|
{
|
|
|
|
web.Dispose();
|
|
}
|
|
|
|
private void Web_TitleChanged(object sender, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
Tab.Header = e.NewValue;
|
|
});
|
|
}
|
|
|
|
int nowPatlom = 0;
|
|
|
|
public void OnUrlEnd(string url)
|
|
{
|
|
if (url.Contains("s_new.php"))
|
|
{
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
nowPatlom = 1;
|
|
lastUrl = "search.jd.com";
|
|
DoWork();
|
|
});
|
|
}
|
|
|
|
if (url.Contains("/marketOfferResultViewService"))
|
|
{
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
var items= Get1688ShopIds();
|
|
|
|
while (items == Get1688ShopIds())
|
|
{
|
|
Thread.Sleep(100);
|
|
}
|
|
nowPatlom = 2;
|
|
lastUrl = "s.1688.com";
|
|
StartPage();
|
|
});
|
|
}
|
|
|
|
//if (url.Contains("mobile.yangkeduo.com/proxy/api/search"))
|
|
//{
|
|
// nowPatlom = 3;
|
|
// lastUrl = "mobile.yangkeduo.com";
|
|
// DoWork();
|
|
//}
|
|
}
|
|
|
|
private void Web_StartNewWindow(object sender, NewWindowEventArgs e)
|
|
{
|
|
// WpfNoticeMsg.NoticeMessage.Show(e.Url);
|
|
BrowerHelper.OpenUrl(e.Url);
|
|
//MainWindow.Main.brower.NewTab(e.Url);
|
|
//web.Load(e.Url);
|
|
}
|
|
|
|
private void BrowerControl_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
Thread t = new Thread(() => {
|
|
|
|
IWebBrowser webBrowser = null;
|
|
|
|
Application.Current.Dispatcher.Invoke(() => {
|
|
webBrowser = web.WebBrowser;
|
|
});
|
|
|
|
while (webBrowser == null)
|
|
{
|
|
Thread.Sleep(100);
|
|
Application.Current.Dispatcher.Invoke(() => {
|
|
webBrowser = web.WebBrowser;
|
|
});
|
|
}
|
|
|
|
Application.Current.Dispatcher.Invoke(() => {
|
|
web.WebBrowser.LoadingStateChanged += WebBrowser_LoadingStateChanged;
|
|
});
|
|
});
|
|
|
|
t.Start();
|
|
}
|
|
|
|
private string lastUrl = string.Empty;
|
|
|
|
private void WebBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e)
|
|
{
|
|
if (lastUrl != e.Browser.MainFrame.Url)
|
|
{
|
|
lastUrl = e.Browser.MainFrame.Url;
|
|
//开始单页查询
|
|
if (lastUrl.StartsWith("https://s.taobao.com/search")|| lastUrl.StartsWith("https://search.jd.com/")||lastUrl.StartsWith("https://s.1688.com/selloffer/offer_search.htm")|| lastUrl.StartsWith("https://mobile.yangkeduo.com/search_result.html?search_key"))
|
|
{
|
|
if (lastUrl.StartsWith("https://s.taobao.com/search")) {
|
|
|
|
nowPatlom = 0;
|
|
}
|
|
if (lastUrl.StartsWith("https://search.jd.com/"))
|
|
{
|
|
|
|
nowPatlom =1;
|
|
}
|
|
if (lastUrl.StartsWith("https://s.1688.com/"))
|
|
{
|
|
|
|
nowPatlom = 2;
|
|
}
|
|
if (lastUrl.StartsWith("https://mobile.yangkeduo.com/search_result.html?search_key"))
|
|
{
|
|
nowPatlom = 3;
|
|
}
|
|
StartPage();
|
|
}
|
|
}
|
|
}
|
|
|
|
object doWorkObj = new object();
|
|
|
|
private void StartPage()
|
|
{
|
|
Thread t = new Thread(() =>
|
|
{
|
|
lock (doWorkObj)
|
|
{
|
|
if (string.IsNullOrEmpty(lastUrl))
|
|
return;
|
|
|
|
if (!lastUrl.Contains("jd.com"))
|
|
{
|
|
AddJquery();
|
|
}
|
|
|
|
// AddAjaxHook();
|
|
|
|
DoWork();
|
|
}
|
|
});
|
|
|
|
t.Start();
|
|
}
|
|
|
|
object lockWork = new object();
|
|
|
|
private void DoWork()
|
|
{
|
|
lock (lockWork)
|
|
{
|
|
while (true)
|
|
{
|
|
if (string.IsNullOrEmpty(lastUrl))
|
|
break;
|
|
|
|
Task<JavascriptResponse> task = null;
|
|
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
task = web.EvaluateScriptAsPromiseAsync("return $(document.body).html();");
|
|
});
|
|
|
|
var result = task.Result;
|
|
|
|
//判断是否加载完成
|
|
if (result.Success)
|
|
{
|
|
AddCss();
|
|
|
|
if (nowPatlom==0)
|
|
{
|
|
AddTaoBaoOptionDiv();
|
|
CheckTaoBaoPageItem();
|
|
}
|
|
|
|
if (nowPatlom == 1)
|
|
{
|
|
AddJDOptionDiv();
|
|
CheckJDPageItem();
|
|
}
|
|
|
|
if (nowPatlom == 2)
|
|
{
|
|
Add1688OptionDiv();
|
|
Check1688PageItem();
|
|
// web.ShowDevTools();
|
|
}
|
|
|
|
if (nowPatlom == 3)
|
|
{
|
|
ChangePddStyle();
|
|
|
|
AddPDDOptionDiv();
|
|
CheckPDDPageItem();
|
|
}
|
|
|
|
//lastUrl = string.Empty;
|
|
break;
|
|
}
|
|
|
|
Thread.Sleep(100);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加jq操作类
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool AddJquery()
|
|
{
|
|
return DoJavaScript("var script=document.createElement('script'); script.type='text/javascript'; script.src='https://code.jquery.com/jquery-1.12.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script); ").isOk;
|
|
}
|
|
|
|
#region 淘宝代码
|
|
|
|
/// <summary>
|
|
/// 检测页面商品
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private void CheckTaoBaoPageItem()
|
|
{
|
|
var res = DoJavaScript(@"var ids=[]; $('div#mainsrp-itemlist .items .item .J_ItemPicA').each(function(){ids.push($(this).attr(""data-nid""))});return ids;");
|
|
|
|
List<string> itemIds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
|
|
|
|
var result = ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.Taobao);
|
|
|
|
if (result.isOk)
|
|
{
|
|
foreach (var item in result.datas)
|
|
{
|
|
//不是自己团队只判断是否过滤
|
|
if (!item.IsMyTeam)
|
|
{
|
|
//判断是否集团过滤
|
|
if (item.HasFilter)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')");
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
|
|
}
|
|
|
|
//选品团海选
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div class=""smallpopBg""></div>')");
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
|
|
//判断是否团队过滤
|
|
if (item.IsFilter)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsCompeting)
|
|
{
|
|
if ((int)DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateYellow').length").result <= 0)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsScreening)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""popBg"")");
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
//smallpopBg
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加操作面板
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool AddTaoBaoOptionDiv()
|
|
{
|
|
///添加js事件
|
|
DoJavaScript(@"
|
|
window.optClick= function (ele,type){
|
|
var itemid= $(ele).parent().parent().find(""a"").attr(""data-nid"");
|
|
var infoDiv=$($(ele).parent().parent().parent().parent().find("".J_IconMoreNew""));
|
|
var price=infoDiv.find("".g_price"").text();
|
|
var sales=infoDiv.find("".deal-cnt"").text();
|
|
var title=infoDiv.find("".title"").text();
|
|
var img=$(ele).parent().parent().find(""img"").attr(""src"");
|
|
hyCoreModel.settaobaoItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type});
|
|
};
|
|
");
|
|
|
|
return DoJavaScript(@"$('div#mainsrp-itemlist .items .item').find('.myitemState').remove();$('div#mainsrp-itemlist .items .item').find('.myopdiv').remove();
|
|
$('div#mainsrp-itemlist .items .item .pic').before('
|
|
<div class=""myitemState"">
|
|
<div class=""stateGraydiv""></div></div><div class=""myopdiv"">
|
|
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)"">竞品</div>
|
|
<div class=""bgZs"" style=""display:flex"" onclick=""optClick(this,2)"">海选</div>
|
|
<div class=""bgPig"" style=""display:flex"" onclick=""optClick(this,1)"">淘汰</div>
|
|
<div class=""bgGreen"" style=""display:flex"" onclick=""optClick(this,0)"">同款</div>
|
|
</div>
|
|
')").isOk;
|
|
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 添加ajax请求拦截
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool AddAjaxHook()
|
|
{
|
|
return DoJavaScript(@"$(document).ajaxSuccess(function( event, xhr, settings ) {hyCoreModel.onAjaxHook(settings.url);});").isOk;
|
|
}
|
|
|
|
//object_id@653756566953^
|
|
#region 京东代码
|
|
|
|
/// <summary>
|
|
/// 检测页面商品
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private void CheckJDPageItem()
|
|
{
|
|
var res = DoJavaScript(@"var ids=[]; $('div#J_goodsList li').each(function(){ids.push($(this).attr(""data-sku""))});return ids;");
|
|
|
|
List<string> itemIds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
|
|
|
|
var result = ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.Jd);
|
|
|
|
if (result.isOk)
|
|
{
|
|
foreach (var item in result.datas)
|
|
{
|
|
//不是自己团队只判断是否过滤
|
|
if (!item.IsMyTeam)
|
|
{
|
|
//判断是否集团过滤
|
|
if (item.HasFilter)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')");
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
|
|
|
|
//选品团海选
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div class=""smallpopBg""></div>')");
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
continue;
|
|
}
|
|
|
|
//判断是否团队过滤
|
|
if (item.IsFilter)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
|
|
if (item.IsCompeting)
|
|
{
|
|
//<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>
|
|
if ((int)DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateYellow').length").result <= 0)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsScreening)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加操作面板
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool AddJDOptionDiv()
|
|
{
|
|
///添加js事件
|
|
DoJavaScript(@"
|
|
window.optClick= function (ele,type){
|
|
var itemid= $(ele).parent().parent().parent().parent().attr(""data-sku"");
|
|
var price=$(ele).parent().parent().parent().parent().find("".p-price i"").text();
|
|
var sales=$(ele).parent().parent().parent().parent().find("".p-commit"").text();
|
|
var title=$(ele).parent().parent().parent().parent().find("".p-name a em"").text();
|
|
var img=$(ele).parent().parent().parent().parent().find("".p-img img"").attr(""src"");
|
|
hyCoreModel.setjdItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type});
|
|
};
|
|
");
|
|
|
|
return DoJavaScript(@"$('div#J_goodsList .gl-item').find('.myitemState').remove();$('div#J_goodsList .gl-item').find('.myopdiv').remove();
|
|
$('div#J_goodsList .gl-item .p-img a').before('
|
|
<div class=""myitemState"">
|
|
<div class=""stateGraydiv""></div></div><div class=""myopdiv"">
|
|
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)"">竞品</div>
|
|
<div class=""bgZs"" style=""display:flex"" onclick=""optClick(this,2)"">海选</div>
|
|
<div class=""bgPig"" style=""display:flex"" onclick=""optClick(this,1)"">淘汰</div>
|
|
<div class=""bgGreen"" style=""display:flex"" onclick=""optClick(this,0)"">同款</div>
|
|
</div>
|
|
')").isOk;
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 阿里巴巴代码
|
|
|
|
private List<string> Get1688ShopIds()
|
|
{
|
|
var res = DoJavaScript(@"var ids=[]; $('ul#sm-offer-list div.normalcommon-offer-card').each(function(){ids.push($(this).attr(""data-aplus-report""))});return ids;");
|
|
|
|
List<string> reports = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
|
|
|
|
List<string> itemIds = new List<string>();
|
|
if (reports != null)
|
|
{
|
|
reports.ForEach(c =>
|
|
{
|
|
string objid = Regex.Match(c, "object_id\\@(.*?)\\^").Groups[1].Value;
|
|
itemIds.Add(objid);
|
|
});
|
|
}
|
|
|
|
return itemIds;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检测页面商品
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private void Check1688PageItem()
|
|
{
|
|
var res = DoJavaScript(@"var ids=[]; $('ul#sm-offer-list div.normalcommon-offer-card').each(function(){ids.push($(this).attr(""data-aplus-report""))});return ids;");
|
|
|
|
List<string> reports = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
|
|
|
|
List<string> itemIds = new List<string>();
|
|
List<string> shopIds = new List<string>();
|
|
if (reports != null)
|
|
{
|
|
reports.ForEach(c =>
|
|
{
|
|
string objid = Regex.Match(c, "object_id\\@(.*?)\\^").Groups[1].Value;
|
|
string shopId= Regex.Match(c, "object_member_id\\@(.*?)\\^").Groups[1].Value;
|
|
DoJavaScript(@$"$(""ul#sm-offer-list"").find('div[data-aplus-report=""{c}""]').attr(""data-sku"",""{objid}"")");
|
|
DoJavaScript(@$"$(""ul#sm-offer-list"").find('div[data-aplus-report=""{c}""]').attr(""data-shopId"",""{shopId}"")");
|
|
itemIds.Add(objid);
|
|
if(!shopIds.Contains(shopId))
|
|
shopIds.Add(shopId);
|
|
});
|
|
}
|
|
|
|
var result = ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.ALBB);
|
|
|
|
if (result.isOk)
|
|
{
|
|
foreach (var item in result.datas)
|
|
{ //不是自己团队只判断是否过滤
|
|
if (!item.IsMyTeam)
|
|
{
|
|
|
|
//判断是否集团过滤
|
|
if (item.HasFilter)
|
|
{
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')");
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
//选品团海选
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div class=""smallpopBg""></div>')");
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
continue;
|
|
}
|
|
//判断是否团队过滤
|
|
if (item.IsFilter)
|
|
{
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
//if (item.IsCompeting)
|
|
//{
|
|
// if ((int)BrowerControl.Main.DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateYellow').length").result <= 0)
|
|
// {
|
|
// DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">合</div>')");
|
|
// }
|
|
// DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
//}
|
|
|
|
if (item.IsScreening)
|
|
{
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
}
|
|
|
|
var alResult = ApiHelper.GetAlbbLabelByShopIds(shopIds);
|
|
if (alResult.isOk)
|
|
{
|
|
alResult.datas.ForEach(item => {
|
|
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-shopId=""{item.ShopId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">合</div>')");
|
|
|
|
DoJavaScript($@"$($('ul#sm-offer-list div[data-shopId=""{item.ShopId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
});
|
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加操作面板
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool Add1688OptionDiv()
|
|
{
|
|
//添加js事件
|
|
|
|
DoJavaScript(@"
|
|
|
|
|
|
window.getparent=function (ele)
|
|
{
|
|
var info=$(ele).parent();
|
|
if(!info){return ele;}
|
|
if(info.hasClass(""space-offer-card-box""))
|
|
{
|
|
return info;
|
|
}
|
|
return getparent(info);
|
|
};
|
|
");
|
|
|
|
DoJavaScript(@"
|
|
window.optClick= function (ele,type){
|
|
var e=window.event || arguments.callee.caller.arguments[0];
|
|
e.preventDefault();
|
|
e.stopPropagation();
|
|
var parentDiv=window.getparent(ele);
|
|
var infoDiv=$(parentDiv.find(""div:first"")[0]);
|
|
var itemid= infoDiv.attr(""data-sku"");
|
|
|
|
var price=infoDiv.find("".showPricec"").text();
|
|
var sales=infoDiv.find("".sale"").text();
|
|
var title=infoDiv.find("".mojar-element-title"").text();
|
|
var img=infoDiv.find(""div.img"").css(""background-image"");
|
|
var shopId=infoDiv.attr(""data-shopId"");
|
|
hyCoreModel.set1688ItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type,shopId:shopId});
|
|
};
|
|
");
|
|
|
|
return DoJavaScript(@"$('ul#sm-offer-list').find('.myitemState').remove();$('ul#sm-offer-list').find('.myopdiv').remove();
|
|
$('ul#sm-offer-list div.normalcommon-offer-card .img-container div.img').append('
|
|
<div class=""myitemState"">
|
|
<div class=""stateGraydiv""></div></div>
|
|
<div class=""myopdiv"">
|
|
<div class=""bgYellow"" style=""display:flex;"" onclick=""optClick(this,4)"">合作</div>
|
|
<div class=""bgZs"" style=""display:flex;"" onclick=""optClick(this,2)"" >海选</div>
|
|
<div class=""bgPig"" style=""display:flex;"" onclick=""optClick(this,1)"">淘汰</div>
|
|
<div class=""bgGreen"" style=""display:flex;"" onclick=""optClick(this,0)"">同款</div>
|
|
</div>
|
|
')").isOk;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 拼多多代码
|
|
|
|
private bool ChangePddStyle()
|
|
{
|
|
return DoJavaScript(@"//整体
|
|
document.getElementById(""main"").children[0].children[1].style=""width:1380px;margin:0px auto;""
|
|
|
|
//浮动筛选框
|
|
document.querySelector(""#main > div > div:nth-child(2) > div > div > div:nth-child(1) > div > div:nth-child(2)"").style.top=""55px""
|
|
|
|
|
|
//在app打开
|
|
if(document.getElementsByClassName(""pdd-go-to-app"")[0])
|
|
document.getElementsByClassName(""pdd-go-to-app"")[0].outerHTML=''
|
|
|
|
if(document.getElementsByClassName(""PTWSQMBM _1vDZKiQt"")[0])
|
|
|
|
//回顶部
|
|
document.getElementsByClassName(""PTWSQMBM _1vDZKiQt"")[0].outerHTML=''
|
|
|
|
//列表
|
|
for (var i = 0; i < document.getElementsByClassName(""_3glhOBhU"").length; i++) {
|
|
if (document.getElementsByClassName(""_3glhOBhU"")[i] != undefined) {
|
|
document.getElementsByClassName(""_3glhOBhU"")[i].style = ""width: 250px; margin-right: 0.03rem; margin-bottom: 0.03rem;float:left;"";
|
|
|
|
if (document.getElementsByClassName(""_3glhOBhU"")[i].children[0].children[0] != undefined) {
|
|
|
|
var maindiv = document.getElementsByClassName(""_3glhOBhU"")[i].children[0].children[0];
|
|
|
|
if(maindiv.outerHTML.indexOf(""<span>试试搜这些</span>"")>=0)
|
|
{
|
|
document.getElementsByClassName(""_3glhOBhU"")[i].style = ""display:none"";
|
|
continue;
|
|
}
|
|
|
|
maindiv.style = ""width:250px;height:350px"";
|
|
|
|
if(maindiv.children[0]==undefined)
|
|
{
|
|
document.getElementsByClassName(""_3glhOBhU"")[i].style = ""display:none"";
|
|
continue;
|
|
}
|
|
|
|
if (maindiv.children[0].children[0] != undefined) {
|
|
maindiv.children[0].children[0].style = ""width:250px;height:250px"";
|
|
|
|
maindiv.children[0].children[0].children[0].style = ""width:250px;height:250px"";
|
|
}
|
|
|
|
|
|
|
|
var itemInfoDiv = maindiv.children[1]
|
|
if (itemInfoDiv != undefined) {
|
|
itemInfoDiv.style = ""padding: 0px;""
|
|
|
|
//标题
|
|
if (itemInfoDiv.children[0] != undefined) {
|
|
itemInfoDiv.children[0].style = ""font-size: 10px; line-height: 15px;"";
|
|
|
|
var imgs = itemInfoDiv.children[0].getElementsByTagName(""img"");
|
|
if (imgs != undefined && imgs.length > 0) {
|
|
for (var imgi = 0; imgi < imgs.length; imgi++) {
|
|
imgs[imgi].style = ""height:10px;top:0.01rem""
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var spans = itemInfoDiv.children[0].getElementsByTagName(""span"");
|
|
for (var spi = 0; spi < spans.length; spi++) {
|
|
spans[spi].style = ""display:none""
|
|
}
|
|
}
|
|
|
|
// 标签
|
|
if (itemInfoDiv.children[1] != undefined) {
|
|
itemInfoDiv.children[1].style = ""padding:0px;margin:0px;height:10px"";
|
|
var iconList = itemInfoDiv.children[1].children;
|
|
for (var si = 0; si < iconList.length; si++) {
|
|
var iconDiv = iconList[si]
|
|
for (var t = 0; t < iconDiv.children.length; t++) {
|
|
iconDiv.children[t].style.fontSize = ""10px"";
|
|
iconDiv.children[t].style.lineHeight = ""15px"";
|
|
iconDiv.children[t].style.marginRight = ""5px"";
|
|
iconDiv.children[t].style.marginBottom = ""5px"";
|
|
}
|
|
imgs = iconDiv.getElementsByTagName(""img"")
|
|
if (imgs != undefined && imgs.length > 0) {
|
|
for (var imgi = 0; imgi < imgs.length; imgi++) {
|
|
imgs[imgi].style = ""width:10px;height:10px;position:relative;top:1px;margin-right:5px""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//价格
|
|
if (itemInfoDiv.children[2] != undefined) {
|
|
itemInfoDiv.children[2].style = ""padding:0px;margin:0px;height:1px"";
|
|
var priceDiv = itemInfoDiv.children[2].children[0];
|
|
|
|
if (priceDiv.children[1] != undefined) {
|
|
// priceDiv.children[1].style = ""margin-left: 0.04rem; font-size: 0.13rem;""
|
|
// if (priceDiv.children[1].children[0] != undefined) {
|
|
// priceDiv.children[1].children[0].style = "" transform-origin: left bottom; transform: scale(1); overflow: hidden;""
|
|
// }
|
|
}
|
|
var spans = priceDiv.getElementsByTagName(""span"")
|
|
for (var spanI = 0; spanI < spans.length; spanI++) {
|
|
|
|
spans[spanI].style.transform = ""unset"";
|
|
spans[spanI].style.fontSize = ""10px"";
|
|
spans[spanI].style.lineHeight = ""15px"";
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
//修改头部
|
|
var headDiv=document.getElementsByClassName(""_1DncS32V"")[0];
|
|
|
|
var svgList= headDiv.getElementsByTagName(""svg"")
|
|
for(var i=0;i<svgList.length;i++)
|
|
{
|
|
svgList[i].style=""height:15px;width:15px;""
|
|
}
|
|
|
|
var headSearchDiv=headDiv.children[0].children[0]
|
|
|
|
|
|
var serachDivs= headSearchDiv.getElementsByTagName(""div"")
|
|
|
|
for(var i=0;i<serachDivs.length;i++)
|
|
{
|
|
serachDivs[i].style.fontSize=""10px""
|
|
}
|
|
|
|
|
|
var serachSpans= headSearchDiv.getElementsByTagName(""span"")
|
|
for(var i=0;i<serachSpans.length;i++)
|
|
{
|
|
serachSpans[i].style.fontSize=""10px""
|
|
serachSpans[i].style.padding=""0px""
|
|
}
|
|
|
|
|
|
|
|
var serachSpans= headSearchDiv.getElementsByTagName(""i"")
|
|
for(var i=0;i<serachSpans.length;i++)
|
|
{
|
|
serachSpans[i].style.fontSize=""10px""
|
|
serachSpans[i].style.height=""10px""
|
|
}
|
|
|
|
|
|
var filterDiv= document.getElementsByClassName(""_1xKtLcOh"")[0]
|
|
if(filterDiv)
|
|
{
|
|
filterDiv.style.padding=""0px""
|
|
}
|
|
|
|
var filterSpans= document.getElementsByClassName(""_38knpqtC"")[0].getElementsByTagName(""span"")
|
|
for(var i=0;i<filterSpans.length;i++)
|
|
{
|
|
if(filterSpans[i].getElementsByTagName(""span"").length>1)
|
|
{
|
|
filterSpans[i].style.height=""0px""
|
|
}
|
|
}
|
|
|
|
var filteris= document.querySelector(""#main > div > div:nth-child(2) > div > div > div:nth-child(1) > div > div:nth-child(2)"").getElementsByTagName(""i"")
|
|
for(var i=0;i<filteris.length;i++)
|
|
{
|
|
filteris[i].style=""display:none""
|
|
}
|
|
|
|
|
|
", false).isOk;
|
|
}
|
|
|
|
private void CheckPDDPageItem()
|
|
{
|
|
var res = DoJavaScript(@"var ids=[]; $('div._3glhOBhU').each(function(){if($(this).attr(""has_get"")==undefined){ $(this).attr(""has_get"",true); ids.push($(this).attr(""item_id""))}});return ids;");
|
|
|
|
List<string> itemIds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result));
|
|
|
|
var result = ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.PDD);
|
|
|
|
if (result.isOk)
|
|
{
|
|
foreach (var item in result.datas)
|
|
{
|
|
//不是自己团队只判断是否过滤
|
|
if (!item.IsMyTeam)
|
|
{
|
|
//判断是否集团过滤
|
|
if (item.HasFilter)
|
|
{
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')");
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
continue;
|
|
}
|
|
|
|
//判断是否团队过滤
|
|
if (item.IsFilter)
|
|
{
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
|
|
if (item.IsCompeting)
|
|
{
|
|
//<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>
|
|
if ((int)DoJavaScript(@$"return $($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateYellow').length").result <= 0)
|
|
{
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsScreening)
|
|
{
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
|
|
if (item.IsAdded)
|
|
{
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
DoJavaScript($@"$($('div._3glhOBhU[item_id=""{item.GoodsId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 添加操作面板
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool AddPDDOptionDiv()
|
|
{
|
|
///添加js事件
|
|
DoJavaScript(@"
|
|
window.optClick= function (obj,type){
|
|
window.event? window.event.cancelBubble = true : e.stopPropagation();
|
|
var ele =$(obj).parents(""._3glhOBhU"")[0];
|
|
var itemid= $(ele).attr(""item_id"");
|
|
var price=$(ele).attr(""item_price"");
|
|
var sales=$(ele).attr(""item_sales"");
|
|
var title=$(ele).attr(""item_title"");
|
|
var img=$(ele).attr(""item_img"");
|
|
hyCoreModel.setpddItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type});
|
|
|
|
};
|
|
");
|
|
|
|
return DoJavaScript(@"
|
|
|
|
|
|
$('div._3glhOBhU .rjNMXsUm .LOFjVUas img').each(function () {
|
|
var ele = $(this).parents(""._3glhOBhU"")[0];
|
|
|
|
if($(ele).find('.myitemState').length>0)
|
|
{
|
|
return;
|
|
}
|
|
var parentObj= ele[Object.keys(ele).find(key=>key.startsWith(""__reactInternalInstance$""))];
|
|
if(parentObj.pendingProps&&parentObj.pendingProps.children&&parentObj.pendingProps.children.props&&parentObj.pendingProps.children.props.goods)
|
|
{
|
|
var goodId=parentObj.pendingProps.children.props.goods.goodsID;
|
|
|
|
$(ele).attr('item_id',goodId);
|
|
$(ele).attr('item_price',parentObj.pendingProps.children.props.goods.priceInfo);
|
|
$(ele).attr('item_title',parentObj.pendingProps.children.props.goods.goodsName);
|
|
$(ele).attr('item_img',parentObj.pendingProps.children.props.goods.imgUrl);
|
|
$(ele).attr('item_sales',parentObj.pendingProps.children.props.goods.salesTip);
|
|
|
|
$(this).before('
|
|
<div class=""myitemState"" item_id=""'+goodId+'"">
|
|
<div class=""stateGraydiv""></div>
|
|
</div>
|
|
<div class=""myopdiv"" item_id=""'+goodId+'"">
|
|
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)"">竞品</div>
|
|
<div class=""bgZs"" style=""display:flex"" onclick=""optClick(this,2)"">海选</div>
|
|
<div class=""bgPig"" style=""display:flex"" onclick=""optClick(this,1)"">淘汰</div>
|
|
<div class=""bgGreen"" style=""display:flex"" onclick=""optClick(this,0)"">同款</div>
|
|
</div>
|
|
');
|
|
|
|
}
|
|
|
|
});").isOk;
|
|
|
|
}
|
|
#endregion
|
|
private bool AddCss()
|
|
{
|
|
///添加css
|
|
return DoJavaScript(@"$('head').append('<style>
|
|
.myitemState
|
|
{
|
|
width:100%;
|
|
height:100%;
|
|
position: absolute;
|
|
left: 0px;
|
|
top: 0px;
|
|
z-index: 9999;
|
|
}
|
|
.trueBg
|
|
{
|
|
background: url(""nacollector://home/img/true.png"") no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.smallpopBg
|
|
{
|
|
width:78px;
|
|
height:78px;
|
|
bottom: 0px;
|
|
left: 10px;
|
|
top: unset;
|
|
background: url(""nacollector://home/img/pop.png"") no-repeat;
|
|
background-size: 100% 100%;
|
|
position: absolute;
|
|
}
|
|
.popBg
|
|
{
|
|
background: url(""nacollector://home/img/pop.png"") no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
.falseBg
|
|
{
|
|
background: url(""nacollector://home/img/close.png"") no-repeat;
|
|
background-size: 100% 100%;
|
|
}
|
|
|
|
.smallfalseBg
|
|
{
|
|
width:78px;
|
|
height:78px;
|
|
bottom: 0px;
|
|
left: 0px;
|
|
top: unset;
|
|
background: url(""nacollector://home/img/close.png"") no-repeat;
|
|
background-size: 100% 100%;
|
|
position: absolute;
|
|
}
|
|
|
|
.stateGraydiv
|
|
{
|
|
width:100%;
|
|
height:100%;
|
|
display:none;
|
|
background-color: rgba(85, 85, 85, 0.45);
|
|
}
|
|
.divshow
|
|
{
|
|
display:block;
|
|
}
|
|
.myopdiv
|
|
{
|
|
width:85%;
|
|
height:100%;
|
|
display:none;
|
|
position: absolute;
|
|
top: 0px;
|
|
right:0px;
|
|
}
|
|
|
|
.myopdiv div {
|
|
width: 23%;
|
|
height: 20%;
|
|
display: inline-block;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pic-box:hover .myopdiv
|
|
{
|
|
display:unset;
|
|
}
|
|
.pic-box:hover .myitemState
|
|
{
|
|
display:none;
|
|
}
|
|
|
|
.p-img:hover .myitemState
|
|
{
|
|
display:none;
|
|
}
|
|
.p-img:hover .myopdiv
|
|
{
|
|
display:unset;
|
|
z-index:9999;
|
|
}
|
|
|
|
.img-container:hover .myitemState
|
|
{
|
|
display:none;
|
|
}
|
|
.img-container:hover .myopdiv
|
|
{
|
|
display:unset;
|
|
z-index:9999;
|
|
}
|
|
|
|
|
|
|
|
.LOFjVUas:hover .myitemState
|
|
{
|
|
display:none;
|
|
}
|
|
.LOFjVUas:hover .myopdiv
|
|
{
|
|
display:unset;
|
|
z-index:9999;
|
|
}
|
|
|
|
.bgGreen
|
|
{
|
|
background: rgba(99, 161, 3, 0.8);
|
|
font-size:20px;
|
|
color:red;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
float: right;
|
|
font-family: ""global-iconfont"";
|
|
font-weight: 999;
|
|
margin-right:5px;
|
|
}
|
|
.bgPig
|
|
{
|
|
background: rgba(236, 128, 141, 0.8);
|
|
font-size:20px;
|
|
color:red;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
float: right;
|
|
font-family: ""global-iconfont"";
|
|
font-weight: 999;
|
|
margin-right:5px;
|
|
}
|
|
.bgZs
|
|
{
|
|
background: rgba(194, 128, 255, 0.8);
|
|
font-size:20px;
|
|
color:red;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
float: right;
|
|
font-family: ""global-iconfont"";
|
|
font-weight: 999;
|
|
margin-right:5px;
|
|
}
|
|
.bgYellow
|
|
{
|
|
background: rgba(245, 154, 35, 0.8);
|
|
font-size:20px;
|
|
color:red;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
float: right;
|
|
font-family: ""global-iconfont"";
|
|
font-weight: 999;
|
|
}
|
|
.stateYellow
|
|
{
|
|
background: rgba(245, 154, 35, 0.8);
|
|
font-size:20px;
|
|
color:red;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
flex-direction: column;
|
|
float: right;
|
|
font-family: ""global-iconfont"";
|
|
font-weight: 999;
|
|
}
|
|
</style>')".Replace("\n", "").Replace("\r\n", "")).isOk;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行js
|
|
/// </summary>
|
|
/// <param name="js"></param>
|
|
/// <returns></returns>
|
|
public (bool isOk, object result) DoJavaScript(string js,bool needReplaceLine=true)
|
|
{
|
|
if (needReplaceLine)
|
|
{
|
|
js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", "");
|
|
}
|
|
Task<JavascriptResponse> task = null;
|
|
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
task = web.EvaluateScriptAsPromiseAsync(js);
|
|
});
|
|
|
|
var result = task.Result;
|
|
|
|
//判断是否加载完成
|
|
return (result.Success,result.Result);
|
|
}
|
|
|
|
private void txtUrl_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
|
|
{
|
|
if (e.Key == System.Windows.Input.Key.Enter)
|
|
{
|
|
lastUrl = string.Empty;
|
|
web.Load(txtUrl.Text);
|
|
}
|
|
}
|
|
|
|
private void back_Click(object sender, RoutedEventArgs e)
|
|
{
|
|
lastUrl = string.Empty;
|
|
this.web.Back();
|
|
}
|
|
}
|
|
|
|
public class CefAsyncJS
|
|
{
|
|
public BrowerControl Brower { get; set; }
|
|
|
|
|
|
public void onAjaxHook(string url)
|
|
{
|
|
Brower.OnUrlEnd(url);
|
|
}
|
|
|
|
public bool settaobaoItemData(dynamic data)
|
|
{
|
|
if (!MainWindow.Main.IsUpdateKey)
|
|
{
|
|
MainWindow.Main.IsUpdateKey = true;
|
|
ApiHelper.SetKeyOpenTime(MainWindow.Main.LastKeyWord, Models.ItemPlatform.Taobao);
|
|
}
|
|
|
|
int type = data.type;
|
|
string price = data.price;
|
|
price = Regex.Match(price, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim();
|
|
string sales = data.sales;
|
|
string title = data.title;
|
|
title = title.Trim();
|
|
string img = data.img;
|
|
string itemId = data.itemid;
|
|
|
|
if (img.Contains("jpg?"))
|
|
{
|
|
img = img.Split("jpg?")[0]+"jpg";
|
|
}
|
|
|
|
var result = ApiHelper.SetItemLabel(new Models.ItemLabelDto()
|
|
{
|
|
Img = img,
|
|
ItemId = itemId,
|
|
Platform = Models.ItemPlatform.Taobao,
|
|
Price = Convert.ToDecimal(price),
|
|
Sales = sales,
|
|
Status = (ItemLabelStatus)type,
|
|
Title = title,
|
|
CatId=MainWindow.Main.LastKeyWord
|
|
});
|
|
|
|
if (result.isOk)
|
|
{
|
|
//判断是否团队过滤
|
|
if (type == 1)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').removeClass(""falseBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 3)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript(@$"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').find('.stateYellow').remove()");
|
|
}
|
|
else
|
|
{
|
|
int row = (int)Brower.DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').find('.stateYellow').length").result;
|
|
if (row < 1)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (type == 0)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').removeClass(""trueBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 2)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').removeClass(""popBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""popBg"")");
|
|
}
|
|
}
|
|
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.stateGraydiv').removeClass(""divshow"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
|
|
|
|
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
|
|
|
|
return result.isOk;
|
|
}
|
|
|
|
|
|
public bool setjdItemData(dynamic data)
|
|
{
|
|
if (!MainWindow.Main.IsUpdateKey)
|
|
{
|
|
MainWindow.Main.IsUpdateKey = true;
|
|
ApiHelper.SetKeyOpenTime(MainWindow.Main.LastKeyWord, Models.ItemPlatform.Jd);
|
|
}
|
|
|
|
int type = data.type;
|
|
string price = data.price;
|
|
price = Regex.Match(price, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim();
|
|
string sales = data.sales;
|
|
sales = sales.Trim();
|
|
string title = data.title;
|
|
title = title.Trim();
|
|
string img = data.img;
|
|
string itemId = data.itemid;
|
|
|
|
string sku = string.Empty;
|
|
//如果是竞品,则需要输入自己的SKU
|
|
if (type == 3)
|
|
{
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
SkuWindow skuWindow = new SkuWindow();
|
|
if (skuWindow.ShowDialog() != true)
|
|
{
|
|
|
|
}
|
|
|
|
sku = skuWindow.Sku;
|
|
});
|
|
|
|
if (string.IsNullOrEmpty(sku))
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
var result = ApiHelper.SetItemLabel(new Models.ItemLabelDto()
|
|
{
|
|
Img = img,
|
|
ItemId = itemId,
|
|
Platform = Models.ItemPlatform.Jd,
|
|
Price = Convert.ToDecimal(price),
|
|
Sales = sales,
|
|
Status = (ItemLabelStatus)type,
|
|
Title = title,
|
|
CatId = MainWindow.Main.LastKeyWord,
|
|
Sku = sku
|
|
});
|
|
|
|
if (result.isOk)
|
|
{
|
|
//判断是否团队过滤
|
|
if (type == 1)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""falseBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 3)
|
|
{
|
|
if (result.isCanel) {
|
|
Brower.DoJavaScript(@$"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').find('.stateYellow').remove()");
|
|
}
|
|
else
|
|
{
|
|
int row = (int)Brower.DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').find('.stateYellow').length").result;
|
|
if (row < 1)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (type == 0)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""trueBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 2)
|
|
{
|
|
if (result.isCanel) {
|
|
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""popBg"")");
|
|
} else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
}
|
|
}
|
|
|
|
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.stateGraydiv').removeClass(""divshow"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
|
|
|
|
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
|
|
|
|
return result.isOk;
|
|
}
|
|
|
|
|
|
public bool set1688ItemData(dynamic data)
|
|
{
|
|
if (!MainWindow.Main.IsUpdateKey)
|
|
{
|
|
MainWindow.Main.IsUpdateKey = true;
|
|
ApiHelper.SetKeyOpenTime(MainWindow.Main.LastKeyWord, Models.ItemPlatform.ALBB);
|
|
}
|
|
|
|
int type = data.type;
|
|
string price = data.price;
|
|
price = Regex.Match(price, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim();
|
|
string sales = data.sales;
|
|
sales = sales.Trim();
|
|
string title = data.title;
|
|
title = title.Trim();
|
|
string img = data.img;
|
|
string itemId = data.itemid;
|
|
string shopId = data.shopId;
|
|
|
|
img = Regex.Match(img, @"url\(""(.*?)""\)").Groups[1].Value;
|
|
|
|
if (!string.IsNullOrEmpty(img))
|
|
{
|
|
img = img.Split('?')[0];
|
|
}
|
|
|
|
if (type == 4)
|
|
{
|
|
var result = ApiHelper.SetAlbbCooperation(shopId);
|
|
|
|
if (result.isOk)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript(@$"$($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').find('.stateYellow').remove()");
|
|
}
|
|
else
|
|
{
|
|
int row = (int)Brower.DoJavaScript(@$"return $($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').find('.stateYellow').length").result;
|
|
if (row < 1)
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">合</div>')");
|
|
}
|
|
}
|
|
}
|
|
|
|
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
|
|
return result.isOk;
|
|
}
|
|
else
|
|
{
|
|
|
|
var result = ApiHelper.SetItemLabel(new Models.ItemLabelDto()
|
|
{
|
|
Img = img,
|
|
ItemId = itemId,
|
|
Platform = Models.ItemPlatform.ALBB,
|
|
Price = Convert.ToDecimal(price),
|
|
Sales = sales,
|
|
Status = (ItemLabelStatus)type,
|
|
Title = title,
|
|
CatId = MainWindow.Main.LastKeyWord
|
|
});
|
|
|
|
if (result.isOk)
|
|
{
|
|
//判断是否团队过滤
|
|
if (type == 1)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""falseBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 0)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""trueBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 2)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').removeClass(""popBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
}
|
|
}
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.stateGraydiv').removeClass(""divshow"")");
|
|
} else
|
|
{
|
|
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
|
|
return result.isOk;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public bool setpddItemData(dynamic data)
|
|
{
|
|
if (!MainWindow.Main.IsUpdateKey)
|
|
{
|
|
MainWindow.Main.IsUpdateKey = true;
|
|
ApiHelper.SetKeyOpenTime(MainWindow.Main.LastKeyWord, Models.ItemPlatform.PDD);
|
|
}
|
|
|
|
int type = data.type;
|
|
string price = data.price;
|
|
price = Regex.Match(price, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim();
|
|
string sales = data.sales;
|
|
sales = sales.Trim();
|
|
string title = data.title;
|
|
title = title.Trim();
|
|
string img = data.img;
|
|
string itemId = data.itemid;
|
|
|
|
string sku = string.Empty;
|
|
//如果是竞品,则需要输入自己的SKU
|
|
if (type == 3)
|
|
{
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
{
|
|
SkuWindow skuWindow = new SkuWindow();
|
|
if (skuWindow.ShowDialog() != true)
|
|
{
|
|
|
|
}
|
|
|
|
sku = skuWindow.Sku;
|
|
});
|
|
|
|
if (string.IsNullOrEmpty(sku))
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
|
|
var result = ApiHelper.SetItemLabel(new Models.ItemLabelDto()
|
|
{
|
|
Img = img,
|
|
ItemId = itemId,
|
|
Platform = Models.ItemPlatform.PDD,
|
|
Price = Convert.ToDecimal(price),
|
|
Sales = sales,
|
|
Status = (ItemLabelStatus)type,
|
|
Title = title,
|
|
CatId = MainWindow.Main.LastKeyWord,
|
|
Sku = sku
|
|
});
|
|
|
|
if (result.isOk)
|
|
{
|
|
//判断是否团队过滤
|
|
if (type == 1)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').removeClass(""falseBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 3)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript(@$"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').find('.stateYellow').remove()");
|
|
}
|
|
else
|
|
{
|
|
int row = (int)Brower.DoJavaScript(@$"return $($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').find('.stateYellow').length").result;
|
|
if (row < 1)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
|
|
}
|
|
}
|
|
}
|
|
|
|
if (type == 0)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').removeClass(""trueBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
|
|
}
|
|
}
|
|
|
|
if (type == 2)
|
|
{
|
|
if (result.isCanel)
|
|
{
|
|
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').removeClass(""popBg"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
|
|
}
|
|
}
|
|
|
|
|
|
if (result.isCanel)
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.stateGraydiv').removeClass(""divshow"")");
|
|
}
|
|
else
|
|
{
|
|
Brower.DoJavaScript($@"$($('div._3glhOBhU[item_id=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
|
|
}
|
|
}
|
|
|
|
|
|
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
|
|
|
|
return result.isOk;
|
|
}
|
|
}
|
|
}
|
|
|