diff --git a/CardMarketBot/CardMarketBot.csproj b/CardMarketBot/CardMarketBot.csproj index 0f8f0e1..e15f670 100644 --- a/CardMarketBot/CardMarketBot.csproj +++ b/CardMarketBot/CardMarketBot.csproj @@ -2,14 +2,14 @@ Exe - net7.0 + net8.0 enable enable - - + + diff --git a/CardMarketBot/CardMarketParser.cs b/CardMarketBot/CardMarketParser.cs index bd1b428..2c4b5ff 100644 --- a/CardMarketBot/CardMarketParser.cs +++ b/CardMarketBot/CardMarketParser.cs @@ -1,7 +1,7 @@ // See https://aka.ms/new-console-template for more information using OpenQA.Selenium.Chrome; -using SeleniumUndetectedChromeDriver; +//using SeleniumUndetectedChromeDriver; using OpenQA.Selenium; using System.Net; using System.Diagnostics; @@ -38,8 +38,9 @@ namespace CardmarketBot ChromeOptions options = new ChromeOptions(); options.AddArgument("start-maximized"); //options.AddArgument("incognito"); - //options.AddArgument("disable-popup-blocking"); + options.AddArgument("disable-popup-blocking"); options.AddArgument("force-device-scale-factor=0.8"); + //options.AddArgument("lang=en"); IWebDriver cd = new ChromeDriver(options); //driver.GoToUrl("https://www.cardmarket.com/de/OnePiece"); @@ -189,7 +190,11 @@ namespace CardmarketBot // Artikeln - element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[5]/table/tbody")); + var k = cd.FindElements(By.XPath("/html/body/main/section/div/div[1]/div/*/table")); + //Debugger.Break(); + element = k[0]; + //element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[6]/table/tbody")); + //element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[5]/table/tbody")); string artikeln = element.Text; kunde.Artikels = Helper.ParseArtikeln(element.Text); diff --git a/CardMarketBot/CheckSevDeskInternalList.cs b/CardMarketBot/CheckSevDeskInternalList.cs new file mode 100644 index 0000000..8574d60 --- /dev/null +++ b/CardMarketBot/CheckSevDeskInternalList.cs @@ -0,0 +1,38 @@ +using ConsoleApp3.Contracts; + +namespace CardmarketBot +{ + internal class CheckSevDeskInternalList : ICheckSevDesk + { + private const string FILENAME = "usedList.csv"; + + private List Query => (from l in File.ReadAllLines("usedList.csv") + select l.Split(',') into p + select new string(p[0])).ToList(); + + public CheckSevDeskInternalList() + { + if (!File.Exists("usedList.csv")) + { + File.Create("usedList.csv"); + } + } + + public bool AlreadyKnown(string verkaufsnummer) + { + if (Query.Find((string x) => x.Equals(verkaufsnummer)) != null) + { + return false; + } + return true; + } + + public bool Write(string verkaufsnummer) + { + verkaufsnummer += Environment.NewLine; + File.AppendAllText("usedList.csv", verkaufsnummer); + return true; + } + } + +} \ No newline at end of file diff --git a/CardMarketBot/Program.cs b/CardMarketBot/Program.cs index c85d5b0..cda9298 100644 --- a/CardMarketBot/Program.cs +++ b/CardMarketBot/Program.cs @@ -2,16 +2,49 @@ using ConsoleApp3.Contracts; using System.Text.RegularExpressions; using CardMarketBot; -using OpenQA.Selenium.DevTools.V119.Network; + using System.Reflection.Metadata.Ecma335; +using System.Net.Sockets; +using System.Net; namespace CardmarketBot { internal class Programm { + private static bool CheckServerAvaible() + { +#if DEBUG + return false; +#endif + IPAddress[] hostAddresses = Dns.GetHostAddresses("huskyteufel.ddnss.de"); + if (hostAddresses.Length == 0) + { + return false; + } + IPEndPoint iPEndPoint = new IPEndPoint(hostAddresses[0], 4000); + Socket socket = new Socket(iPEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); + try + { + socket.Connect(iPEndPoint); + if (socket.Connected) + { + return true; + } + return false; + } + catch (Exception) + { + return false; + } + } static void Main(string[] args) { - ICheckSevDesk checkSevDesk = new CheckSevDeskPublicList(); + Console.WriteLine("Hendrik prüft ob Server erreichbar ist"); + bool flag = CheckServerAvaible(); + Console.WriteLine("Das ergebnis von Hendrik seine erkundung lautet: " + flag); + + ICheckSevDesk checkSevDesk = ((!flag) ? ((ICheckSevDesk)new CheckSevDeskInternalList()) : ((ICheckSevDesk)new CheckSevDeskPublicList())); + Console.WriteLine("Hallo Herzlich willkommen Augustin Karneval e.V."); Console.WriteLine("Was kann ich für dich tun?"); diff --git a/CardMarketBotTests/CardMarketBotTests.csproj b/CardMarketBotTests/CardMarketBotTests.csproj index 7add687..535e86d 100644 --- a/CardMarketBotTests/CardMarketBotTests.csproj +++ b/CardMarketBotTests/CardMarketBotTests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable enable