From aa8ad515d8e0fb872c4ed0e42667a71ef20558e2 Mon Sep 17 00:00:00 2001
From: feng <279202647@qq.com>
Date: Sat, 17 Dec 2022 16:45:00 +0800
Subject: [PATCH] =?UTF-8?q?pdd=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../UserControls/BrowerControl.xaml.cs        | 204 +++++++++++++++++-
 .../cefhelper/CefRequestHandler.cs            |  56 ++++-
 .../齐越慧眼/replacepddcss.js             |  77 +++++++
 3 files changed, 328 insertions(+), 9 deletions(-)

diff --git a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
index 1e67174..bed5470 100644
--- a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
+++ b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
@@ -26,6 +26,11 @@ namespace 齐越慧眼.UserControls
         /// </summary>
         public bool IsJustLoginJd { get; set; }
 
+        /// <summary>
+        /// 处理拼多多
+        /// </summary>
+        public bool IsPddPage { get; set; }
+
         public BrowerControl(string url, HandyControl.Controls.TabItem tabItem)
         {
             InitializeComponent();
@@ -36,6 +41,11 @@ namespace 齐越慧眼.UserControls
                 IsJustLoginJd = true;
             }
 
+            if (url.Contains("yangkeduo.com"))
+            {
+                IsPddPage = true;
+            }
+
             Tab = tabItem;
             web = new ExtChromiumBrowser(url)
             {
@@ -76,6 +86,7 @@ namespace 齐越慧眼.UserControls
             web.AddressChanged += Web_AddressChanged;
 
 
+
             this.KeyUp += BrowerControl_KeyUp;
         }
 
@@ -225,7 +236,7 @@ namespace 齐越慧眼.UserControls
             {
                 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"))
+                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")) {
 
@@ -241,9 +252,8 @@ namespace 齐越慧眼.UserControls
 
                         nowPatlom = 2;
                     }
-                    if (lastUrl.StartsWith("https://mobile.yangkeduo.com/"))
+                    if (lastUrl.StartsWith("https://mobile.yangkeduo.com/search_result.html?search_key"))
                     {
-
                         nowPatlom = 3;
                     }
                     StartPage();
@@ -320,6 +330,11 @@ namespace 齐越慧眼.UserControls
                           //  web.ShowDevTools();
                         }
 
+                        if (nowPatlom == 3)
+                        {
+                          var isok= ChangePddStyle();
+                        }
+
                         //lastUrl = string.Empty;
                         break;
                     }
@@ -704,6 +719,182 @@ namespace 齐越慧眼.UserControls
         #endregion
 
 
+        private bool ChangePddStyle()
+        {
+            return DoJavaScript(@"//整体
+document.getElementById(""main"").children[0].children[1].style.width=""1380px""
+
+//浮动筛选框
+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: 200px; 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:200px;height:300px"";
+
+            if (maindiv.children[0].children[0] != undefined) {
+                maindiv.children[0].children[0].style = ""width:200px;height:200px"";
+
+                maindiv.children[0].children[0].children[0].style = ""width:200px;height:200px"";
+            }
+
+
+
+            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 bool AddCss()
         {
             ///添加css
@@ -879,9 +1070,12 @@ namespace 齐越慧眼.UserControls
         /// </summary>
         /// <param name="js"></param>
         /// <returns></returns>
-        public (bool isOk, object result) DoJavaScript(string js)
+        public (bool isOk, object result) DoJavaScript(string js,bool needReplaceLine=true)
         {
-            js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", "");
+            if (needReplaceLine)
+            {
+                js = js.Replace("\n", "").Replace("\r\n", "").Replace(System.Environment.NewLine, "").Replace("\r", "");
+            }
             Task<JavascriptResponse> task = null;
 
             Application.Current.Dispatcher.Invoke(() =>
diff --git a/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs b/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
index b447a1f..219c2e0 100644
--- a/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
+++ b/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
@@ -4,8 +4,10 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
+using System.Linq;
 using System.Security.Cryptography.X509Certificates;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.Windows;
 using 齐越慧眼.UserControls;
 
@@ -102,12 +104,12 @@ namespace 齐越慧眼.cefhelper
 
         protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
         {
-            if (request.Url.Contains("static.pddpic.com/assets/css/widgets_ba9e42522602b85cbbbc.css"))
+            if (request.Url.Contains("https://static.pddpic.com/assets/css/SearchResultTab") ||request.Url.StartsWith("https://static.pddpic.com/assets/css/SearchBar2")||request.Url.StartsWith("https://static.pddpic.com/assets/css/widgets"))
             {
                 if(!request.Url.StartsWith("data:text/html"))
                 {   
-                var fil = new MyResponseFilter(true, Brower, request.Url);
-                return fil;
+                    var fil = new MyResponseFilter(true, Brower, request.Url);
+                    return fil;
                 }
             }
 
@@ -161,9 +163,55 @@ namespace 齐越慧眼.cefhelper
             dataIn.CopyTo(memoryStream);
             byte[] response = null;
 
-            string json = DataStr;
+            string json = DataStr.Replace(" .",".");
 
 
+            if (Url.Contains("https://static.pddpic.com/assets/css/SearchBar2")||Url.Contains("https://static.pddpic.com/assets/css/SearchResultTab"))
+            {
+                var matchs = Regex.Matches(json, ":(.*?)rem");
+
+                if (matchs.Count > 0)
+                {
+                    matchs.ToList().ForEach(c =>
+                    {
+                        string px = c.Groups[1].Value;
+                        if (px.StartsWith("."))
+                        {
+                            px = "0" + px;
+                        }
+
+                        decimal pxVal = 0;
+                        if (decimal.TryParse(px, out pxVal))
+                        {
+                            json = json.Replace(c.Value, ":" + (pxVal * 100) + "px ");
+                        }
+                    });
+                }
+                matchs = Regex.Matches(json, " (.*?)rem");
+
+                if (matchs.Count > 0)
+                {
+                    matchs.ToList().ForEach(c =>
+                    {
+                        string px = c.Groups[1].Value;
+                        if (px.StartsWith("."))
+                        {
+                            px = "0" + px;
+                        }
+
+                        decimal pxVal = 0;
+                        if (decimal.TryParse(px, out pxVal))
+                        {
+                            json = json.Replace(c.Value, " " + (pxVal * 100) + "px ");
+                        }
+                    });
+                }
+
+                if (Url.Contains("https://static.pddpic.com/assets/css/SearchResultTab"))
+                {
+                    json = json.Replace(".gNxXM8Fs{top:.5rem;}", ".gNxXM8Fs{top:55px;}");
+                }
+            }
             json = json.Replace("768px", "100%");
 
             response = Encoding.GetEncoding("gb2312").GetBytes(json);
diff --git a/客户端/齐越慧眼/齐越慧眼/replacepddcss.js b/客户端/齐越慧眼/齐越慧眼/replacepddcss.js
index 5c8b48e..134d0d5 100644
--- a/客户端/齐越慧眼/齐越慧眼/replacepddcss.js
+++ b/客户端/齐越慧眼/齐越慧眼/replacepddcss.js
@@ -1,3 +1,18 @@
+//整体
+document.getElementById("main").children[0].children[1].style.width="1380px"
+
+//浮动筛选框
+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: 200px; margin-right: 0.03rem; margin-bottom: 0.03rem;float:left;";
@@ -92,3 +107,65 @@ for (var i = 0; i < document.getElementsByClassName("_3glhOBhU").length; i++) {
 
     }
 }
+
+
+
+
+//修改头部
+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"
+}
+