From b566b0a201a30beca4ea0338798a9f91d20dcd1d Mon Sep 17 00:00:00 2001 From: Damian Wessels Date: Wed, 28 Aug 2024 17:15:53 +0200 Subject: [PATCH] Alte Quellcode bestand wiederhergestellt --- CardMarketBot/CardMarketBot.csproj | 3 +- CardMarketBot/CardMarketParser.cs | 92 +++++++++++++++++++++---- CardMarketBot/CheckSevDeskPublicList.cs | 6 +- CardMarketBot/Helper.cs | 30 +------- CardMarketBot/Program.cs | 35 ++++++++-- 5 files changed, 115 insertions(+), 51 deletions(-) diff --git a/CardMarketBot/CardMarketBot.csproj b/CardMarketBot/CardMarketBot.csproj index 773db75..0f8f0e1 100644 --- a/CardMarketBot/CardMarketBot.csproj +++ b/CardMarketBot/CardMarketBot.csproj @@ -8,7 +8,8 @@ - + + diff --git a/CardMarketBot/CardMarketParser.cs b/CardMarketBot/CardMarketParser.cs index fd2972f..bd1b428 100644 --- a/CardMarketBot/CardMarketParser.cs +++ b/CardMarketBot/CardMarketParser.cs @@ -1,10 +1,12 @@ // See https://aka.ms/new-console-template for more information using OpenQA.Selenium.Chrome; +using SeleniumUndetectedChromeDriver; using OpenQA.Selenium; using System.Net; using System.Diagnostics; using ConsoleApp3.Contracts; +using static System.Collections.Specialized.BitVector32; namespace CardmarketBot { @@ -31,19 +33,44 @@ namespace CardmarketBot public List ParseCardMarket(string forceid = "") { + //var driver = UndetectedChromeDriver.Create(driverExecutablePath: await new ChromeDriverInstaller().Auto()); + ChromeOptions options = new ChromeOptions(); options.AddArgument("start-maximized"); - options.AddArgument("incognito"); - options.AddArgument("disable-popup-blocking"); + //options.AddArgument("incognito"); + //options.AddArgument("disable-popup-blocking"); options.AddArgument("force-device-scale-factor=0.8"); IWebDriver cd = new ChromeDriver(options); + + //driver.GoToUrl("https://www.cardmarket.com/de/OnePiece"); + cd.Url = @"https://www.cardmarket.com/de/OnePiece"; cd.Navigate(); - cd.FindElement(By.CssSelector("#CookiesConsent > div > div > form > button")).Click(); - Thread.Sleep(10); + Thread.Sleep(2000); + + IWebElement? element; + + /* + bool cloudfire = true; + + + if (cloudfire) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Scheint als würde Cloudfire aktiviert sein."); + Console.WriteLine("Bitte bestätige und komme zurück und klicke die buchstabe c und Enter"); + Console.ReadLine(); + } + + */ + + cd.FindElement(By.CssSelector("#CookiesConsent > div > div > form > div > button")).Click(); + + Thread.Sleep(2000); + cd.FindElement(By.Name("username")).Click(); cd.FindElement(By.Name("username")).SendKeys(username); @@ -52,6 +79,8 @@ namespace CardmarketBot cd.FindElement(By.CssSelector("#header-login > input.btn.btn-outline-primary.btn-sm")).Click(); + Thread.Sleep(6000); + CookieContainer cookieContainer = new CookieContainer(); foreach (var c in cd.Manage().Cookies.AllCookies) @@ -63,11 +92,47 @@ namespace CardmarketBot List ids = new List(); List kunden = new List(); - IWebElement element; + //IWebElement? element; + + /*cloudfire = true; + + try + { + element = cd.FindElement(By.XPath("/html/body/div[1]/div/div[1]/div")); + + // //[@id="challenge-body-text"] + } + catch (NoSuchElementException) + { + cloudfire = false; + } + + Console.WriteLine(cloudfire); + + if(cloudfire ) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Scheint als würde Cloudfire aktiviert sein."); + Console.WriteLine("Bitte bestätige und komme zurück und klicke die buchstabe c und Enter"); + Console.ReadLine(); + } + + */ if (forceid != "") { - ids.Add(forceid); + string[] mid = forceid.Split(','); + if (mid.Length < 0) + { + ids.Add(forceid); + } + else + { + foreach(string kid in mid) + { + ids.Add(kid); + } + } } else { @@ -75,15 +140,16 @@ namespace CardmarketBot try { - element = cd.FindElement(By.XPath("/html/body/main/section/div[3]/div[4]")); - - string content = element.Text; - string[] datas = content.Split("\r\n"); - - for (int i = 8; i < datas.Length; i += 7) + var verkaufstable = cd.FindElements(By.XPath("/html/body/main/section/div[3]/div[4]/div[2]/*")); + + foreach(var karte in verkaufstable) { - ids.Add(datas[i]); + var content = karte.Text.Split("\r\n"); + // 10 Stellen ist die ID + ids.Add(content[1]); } + + } catch (OpenQA.Selenium.NotFoundException) { diff --git a/CardMarketBot/CheckSevDeskPublicList.cs b/CardMarketBot/CheckSevDeskPublicList.cs index 6f16eeb..93721fe 100644 --- a/CardMarketBot/CheckSevDeskPublicList.cs +++ b/CardMarketBot/CheckSevDeskPublicList.cs @@ -90,7 +90,7 @@ namespace CardMarketBot { try { - TcpClient client = new TcpClient("nas.cosysda.de", 4000); + TcpClient client = new TcpClient("huskyteufel.ddnss.de", 4000); Write(client, string.Format("#TEST#{0}", verkaufsnummer)); EResult result = Read(client); @@ -99,7 +99,7 @@ namespace CardMarketBot return result == EResult.OK; } - catch(SocketException) + catch(SocketException ex) { throw new SocketException(); } @@ -107,7 +107,7 @@ namespace CardMarketBot public bool Write(string verkaufsnummer) { - TcpClient client = new TcpClient("nas.cosysda.de", 4000); + TcpClient client = new TcpClient("huskyteufel.ddnss.de", 4000); Write(client, string.Format("#WRITE#{0}", verkaufsnummer)); EResult result = Read(client); client.Client.Shutdown(SocketShutdown.Both); diff --git a/CardMarketBot/Helper.cs b/CardMarketBot/Helper.cs index c6d7133..aa3ef3a 100644 --- a/CardMarketBot/Helper.cs +++ b/CardMarketBot/Helper.cs @@ -17,7 +17,6 @@ public static class Helper } internal static Kunde ConvertToKunde(string text) { - string[] datas = text.Split("\r\n"); string name = datas[0]; string adresseUNDHausnummer = datas[datas.Length-3]; @@ -31,7 +30,7 @@ public static class Helper datas = adresseUNDHausnummer.Split(" "); string strasse = ""; string hausnummer = ""; - Trace.WriteLine(datas.Length); + //Trace.WriteLine(datas.Length); if (datas.Length <= 1) { Regex myRegex = new Regex("[0-9]*$"); @@ -49,7 +48,6 @@ public static class Helper hausnummer = datas[datas.Length - 1]; } return new Kunde(name, strasse, hausnummer, plz, ort, land); - } public static List ParseArtikeln(string text) @@ -105,7 +103,7 @@ public static class Helper temp.Source = datas[j]; } } - Trace.WriteLine(j + " " + datas[j]); + //Trace.WriteLine(j + " " + datas[j]); } else { @@ -129,26 +127,4 @@ public static class Helper return DateTime.Parse(string.Format("{0} {1}", datum, uhrzeit)); } -} - - - -/* -HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(@"https://www.cardmarket.com/de/OnePiece/Orders/Sales/Paid"); -hwr.CookieContainer = cookieContainer; -hwr.Method = "GET"; -hwr.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"; -WebResponse wr = hwr.GetResponse(); -string s = new StreamReader(wr.GetResponseStream()).ReadToEnd(); -Console.WriteLine(s); - -string GetHashKey(string line) -{ - var x = line.IndexOf("__cmtkn"); - var d = line.Substring(x + 16); - var m = d.IndexOf("\""); - var a = d.Substring(0, m); - return a; -} - -*/ \ No newline at end of file +} \ No newline at end of file diff --git a/CardMarketBot/Program.cs b/CardMarketBot/Program.cs index f45021e..c85d5b0 100644 --- a/CardMarketBot/Program.cs +++ b/CardMarketBot/Program.cs @@ -2,7 +2,7 @@ using ConsoleApp3.Contracts; using System.Text.RegularExpressions; using CardMarketBot; -using OpenQA.Selenium.DevTools.V113.Network; +using OpenQA.Selenium.DevTools.V119.Network; using System.Reflection.Metadata.Ecma335; namespace CardmarketBot @@ -13,16 +13,17 @@ namespace CardmarketBot { ICheckSevDesk checkSevDesk = new CheckSevDeskPublicList(); - Console.WriteLine("Hallo Herzlich willkommen beim Junker sein Junker der im Junkerloch junkert"); + Console.WriteLine("Hallo Herzlich willkommen Augustin Karneval e.V."); Console.WriteLine("Was kann ich für dich tun?"); bool programmexited = false; List kunden = new List(); CardMarketParser cardMarketParser = new CardMarketParser("More-Tcg", "Magnatpower310!!"); while (!programmexited) { - Console.WriteLine("1) Starte den Hugo, der alle bezahlte Artikeln erfasst"); - Console.WriteLine("2) Starte den Rolfes der Bestellnummern nachkontrolliert"); - Console.WriteLine("3) Beende"); + Console.WriteLine("1) Starte den Konstantin, der alle bezahlte Artikeln erfasst"); + Console.WriteLine("2) Starte den Pöttker der Bestellnummern nachkontrolliert"); + Console.WriteLine("3) Reset der Augen, gut wenn man Pöttkers Frau gesehen hat"); + Console.WriteLine("4) Beende"); string? input = Console.ReadLine(); if (input == null) { @@ -48,11 +49,15 @@ namespace CardmarketBot break; case "3": + DoShit(); + break; + case "4": programmexited = true; continue; default: continue; } + // Rechnungen generieren List rechnungen = new List(); @@ -85,11 +90,27 @@ namespace CardmarketBot } // Post CSV Erstellen - DeutschePost deutschePost = new DeutschePost(kunden); - deutschePost.GenerateCSV(); + //DeutschePost deutschePost = new DeutschePost(kunden); + //deutschePost.GenerateCSV(); Console.WriteLine("Fertig"); } } + + private static void DoShit() + { + + for(int i = 0; i < 10; i++) + { + Console.Beep(38, 3); + Console.BackgroundColor = ConsoleColor.Green; + Console.Clear(); + Thread.Sleep(100); + Console.BackgroundColor = ConsoleColor.Red; + Console.Clear(); + } + Console.BackgroundColor = ConsoleColor.Black; + Console.Clear(); + } } } \ No newline at end of file