diff --git a/CardMarketBot/Artikel.cs b/CardMarketBot/Artikel.cs index c2ab94a..72b9efe 100644 --- a/CardMarketBot/Artikel.cs +++ b/CardMarketBot/Artikel.cs @@ -1,6 +1,6 @@ // See https://aka.ms/new-console-template for more information -internal class Artikel +public class Artikel { public int Amount { get; set; } public string GERName { get; set; } = ""; diff --git a/CardMarketBot/CardMarketBot.csproj b/CardMarketBot/CardMarketBot.csproj index fad1b3f..773db75 100644 --- a/CardMarketBot/CardMarketBot.csproj +++ b/CardMarketBot/CardMarketBot.csproj @@ -8,7 +8,7 @@ - + diff --git a/CardMarketBot/CardMarketParser.cs b/CardMarketBot/CardMarketParser.cs index 0ccad66..4605720 100644 --- a/CardMarketBot/CardMarketParser.cs +++ b/CardMarketBot/CardMarketParser.cs @@ -33,7 +33,11 @@ namespace CardmarketBot { ChromeOptions options = new ChromeOptions(); options.AddArgument("start-maximized"); + options.AddArgument("incognito"); + options.AddArgument("disable-popup-blocking"); + options.AddArgument("force-device-scale-factor=0.8"); IWebDriver cd = new ChromeDriver(options); + cd.Url = @"https://www.cardmarket.com/de/OnePiece"; cd.Navigate(); @@ -89,7 +93,9 @@ namespace CardmarketBot { //if (id != "1121844928") continue; //Console.WriteLine(id); - cd.Navigate().GoToUrl(string.Format(@"https://www.cardmarket.com/de/OnePiece/Orders/{0}", id)); + //id = "1121395158"; + cd.Navigate().GoToUrl(string.Format(@"https://www.cardmarket.com/de/OnePiece/Orders/1121395158", id)); + //cd.Navigate().GoToUrl(string.Format(@"https://www.cardmarket.com/de/OnePiece/Orders/{0}", id)); element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[3]/div[2]/div[2]/div/div")); Kunde kunde = Helper.ConvertToKunde(element.Text); diff --git a/CardMarketBot/DataContracts/InvoicePosSave.cs b/CardMarketBot/DataContracts/InvoicePosSave.cs index 229fcf8..14b5a3a 100644 --- a/CardMarketBot/DataContracts/InvoicePosSave.cs +++ b/CardMarketBot/DataContracts/InvoicePosSave.cs @@ -1,11 +1,5 @@ using Newtonsoft.Json; -using OpenQA.Selenium.DevTools.V112.DOM; -using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.Serialization; -using System.Text; -using System.Threading.Tasks; namespace ConsoleApp3.DataContracts { diff --git a/CardMarketBot/Helper.cs b/CardMarketBot/Helper.cs index 01e189d..b56be5e 100644 --- a/CardMarketBot/Helper.cs +++ b/CardMarketBot/Helper.cs @@ -3,7 +3,7 @@ using System.Diagnostics; using System.Text.RegularExpressions; -static class Helper +public static class Helper { public enum Porto { @@ -53,7 +53,7 @@ static class Helper } - internal static List ParseArtikeln(string text) + public static List ParseArtikeln(string text) { List result = new List(); string[] datas = text.Split("\r\n"); diff --git a/CardMarketBot/Program.cs b/CardMarketBot/Program.cs index cab7949..142acaa 100644 --- a/CardMarketBot/Program.cs +++ b/CardMarketBot/Program.cs @@ -1,13 +1,6 @@ using ConsoleApp3.DataContracts; -using ConsoleApp3; using ConsoleApp3.Contracts; using System.Text.RegularExpressions; -using System.Diagnostics; -using System.Net; -using System.Net.Sockets; -using System.Text; -using OpenQA.Selenium.DevTools.V112.Network; -using OpenQA.Selenium.DevTools.V112.Debugger; using CardMarketBot; namespace CardmarketBot diff --git a/CardMarketBotSolution.sln b/CardMarketBotSolution.sln index 336f372..d747698 100644 --- a/CardMarketBotSolution.sln +++ b/CardMarketBotSolution.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.6.33815.320 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CardMarketBot", "CardMarketBot\CardMarketBot.csproj", "{4CB462A0-22BB-4E70-9C0B-203560329AFE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CardMarketBotTests", "CardMarketBotTests\CardMarketBotTests.csproj", "{778573E1-5691-44C2-A897-C84FCC73FAC0}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {4CB462A0-22BB-4E70-9C0B-203560329AFE}.Debug|Any CPU.Build.0 = Debug|Any CPU {4CB462A0-22BB-4E70-9C0B-203560329AFE}.Release|Any CPU.ActiveCfg = Release|Any CPU {4CB462A0-22BB-4E70-9C0B-203560329AFE}.Release|Any CPU.Build.0 = Release|Any CPU + {778573E1-5691-44C2-A897-C84FCC73FAC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {778573E1-5691-44C2-A897-C84FCC73FAC0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {778573E1-5691-44C2-A897-C84FCC73FAC0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {778573E1-5691-44C2-A897-C84FCC73FAC0}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CardMarketBotTests/CardMarketBotTests.csproj b/CardMarketBotTests/CardMarketBotTests.csproj new file mode 100644 index 0000000..7add687 --- /dev/null +++ b/CardMarketBotTests/CardMarketBotTests.csproj @@ -0,0 +1,23 @@ + + + + net7.0 + enable + enable + + false + true + + + + + + + + + + + + + + diff --git a/CardMarketBotTests/HelperTests.cs b/CardMarketBotTests/HelperTests.cs new file mode 100644 index 0000000..4b7e99c --- /dev/null +++ b/CardMarketBotTests/HelperTests.cs @@ -0,0 +1,21 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tests +{ + [TestClass()] + public class HelperTests + { + [TestMethod()] + public void ParseArtikelnTest() + { + string input = "1x Portgas.D.Ace (OP02-013) (V.3)\r\nPortgas.D.Ace (OP02-013) (V.3)\r\n#013\r\nOP-02\r\nNM\r\nTOP Condition, Bilder auf Anfrage! Versand im Magnetic Card Holder + Bonus\r\n515,00 €\r\n"; + string input2 = "1x Schrottgolem\r\nScrap Golem\r\n#059\r\nMGED\r\nNM\r\n0,10 €\r\n1x Schalenritter\r\nShell Knight\r\n#016\r\nGFP2\r\nNM\r\n0,10 €\r\n2x Chaos-Grepher\r\nChaos Grepher\r\n#039\r\nGFP2\r\nNM\r\n0,10 €\r\n1x Jormungandr, Generaider-Boss der Ewigkeit\r\nJormungandr, Generaider Boss of Eternity\r\n#147\r\nGFP2\r\nNM\r\n0,10 €\r\n3x Querhüter\r\nCross Keeper\r\n#002\r\nPOTE\r\nNM\r\n0,05 €\r\n1x Grausiger Trick des Erzunterweltlers\r\nArchfiend's Ghastly Glitch\r\n#026\r\nTAMA\r\nNM\r\n0,10 €\r\n1x Der sagenhafte Abanc\r\nThe Fabled Abanc\r\n#010\r\nMP22\r\nNM\r\n0,05 €\r\n1x Sagenhafter Andwraith\r\nFabled Andwraith\r\n#024\r\nMP22\r\nNM\r\n0,05 €\r\n1x Treffpunkt der Sta-Brigade\r\nTri-Brigade Rendezvous\r\n#032\r\nMP22\r\nNM\r\n0,05 €\r\n1x Sagenhafter Verrat\r\nFabled Treason\r\n#041\r\nMP22\r\nNM\r\n0,05 €\r\n1x Zoroa, Magistus-Loderkatastrophe\r\nZoroa, the Magistus Conflagrant Calamity\r\n#212\r\nMP22\r\nNM\r\n0,05 €\r\n1x Schreckensklauen-Doppelsäge\r\nScareclaw Twinsaw\r\n#075\r\nDABL\r\nNM\r\n0,05 €\r\n1x Hajun, der geflügelte Mayakashi\r\nHajun, the Winged Mayakashi\r\n#017\r\nMAMA\r\nNM\r\n0,10 €\r\n1x Chaos-Daedalus\r\nChaos Daedalus\r\n#071\r\nBLCR\r\nNM\r\n0,10 €\r\n1x Flammedler Ritter - Roland\r\nInfernoble Knight - Roland\r\n#050\r\nAMDE\r\nNM\r\n0,05 €\r\n1x Chaos-Trugbild-Drache\r\nChaos Mirage Dragon\r\n#013\r\nPHHY\r\nNM\r\n0,20 €\r\n1x Abgrundschauspieler-Generalprobe\r\nAbyss Actors' Dress Rehearsal\r\n#063\r\nPHHY\r\nNM\r\n0,10 €\r\n1x Abgrundschauspieler - Freiheitsautorin\r\nAbyss Actor - Liberty Dramatist\r\n#016\r\nPHHY\r\nNM\r\n0,05 €\r\n1x Numeron-Schöpfung\r\nNumeron Creation\r\n#052\r\nPHHY\r\nNM\r\n0,05 €\r\n1x Abgrundskript - Dramatische Geschichte\r\nAbyss Script - Dramatic Story\r\n#064\r\nPHHY\r\nNM\r\n0,05 €\r\n1x Schwarzflügel - Elphin der Rabe\r\nBlackwing - Elphin the Raven\r\n#038\r\nMAZE\r\nNM\r\n0,10 €\r\n1x Rikka-Blütenblatt\r\nRikka Petal\r\n#047\r\nMAZE\r\nNM\r\n0,05 €\r\n1x D.D. Trainer\r\nD.D. Trainer\r\n#055\r\nDCR-25TH\r\nNM\r\n0,10 €\r\n1x Schwur des Erzunterweltlers\r\nArchfiend's Oath\r\n#092\r\nDCR-25TH\r\nNM\r\n0,10 €\r\n1x Frühe Saat\r\nPrimal Seed\r\n#042\r\nIOC-25TH\r\nNM\r\n0,10 €\r\n1x Neue Grenze\r\nNew Frontier\r\n#054\r\nCYAC\r\nNM\r\n0,05 €\r\n1x Lamia\r\nLamia\r\n#021\r\nBLMR\r\nNM\r\n0,10 €\r\n1x Groll der Viper\r\nViper's Grudge\r\n#022\r\nBLMR\r\nNM\r\n0,10 €\r\n2x Geist Lanzenträger, Speerkämpfer der Unterwelt\r\nGhost Lancer, the Underworld Spearman\r\n#023\r\nBLMR\r\nNM\r\n0,10 €\r\n1x Gazelle, König der mythischen Krallen\r\nGazelle the King of Mythical Claws\r\n#003\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Großflügliger Berfomet\r\nBig-Winged Berfomet\r\n#004\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Spiegel-Schwertritter\r\nMirror Swordknight\r\n#006\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Mächtiger Dinokönig Rex\r\nMighty Dino King Rex\r\n#008\r\nDUNE\r\nNM\r\n0,15 €\r\n1x Altergeist Peritrator\r\nAltergeist Peritrator\r\n#010\r\nDUNE\r\nNM\r\n0,25 €\r\n1x Flammedler Ritter Ricciardetto\r\nInfernoble Knight Ricciardetto\r\n#013\r\nDUNE\r\nNM\r\n0,25 €\r\n1x Flammedler Ritter Turpin\r\nInfernoble Knight Turpin\r\n#014\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Ultimativer glänzender Ritter Ursatron Alpha\r\nUltimate Bright Knight Ursatron Alpha\r\n#021\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Thestalos der Schattenfeuer-Monarch\r\nThestalos the Shadowfire Monarch\r\n#023\r\nDUNE\r\nNM\r\n0,15 €\r\n1x Schimäre das Illusionsungeheuer\r\nChimera the Illusion Beast\r\n#034\r\nDUNE\r\nNM\r\n0,25 €\r\n1x Thelematech Clatis\r\nThelematech Clatis\r\n#045\r\nDUNE\r\nNM\r\n0,15 €\r\n1x Schimärenfusion\r\nChimera Fusion\r\n#052\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Verbannende Fallgrube\r\nBanishing Trap Hole\r\n#077\r\nDUNE\r\nGD\r\n0,10 €\r\n3x Rotäugiger schwarzer Meteordrache\r\nRed-Eyes Black Meteor Dragon\r\n#095\r\nDUNE\r\nNM\r\n0,25 €\r\n1x Magier der Ergebenheit\r\nMagician of Faithfulness\r\n#098\r\nDUNE\r\nNM\r\n0,20 €\r\n1x Kornfeld-Coatl\r\nCornfield Coatl\r\n#005\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Zweiköpfiger Dinokönig Rex\r\nDouble-Headed Dino King Rex\r\n#007\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Behemoth, der König der Hundert Schlachten\r\nBehemoth the King of a Hundred Battles\r\n#024\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Gaia-Lohe, die Kraft der Sonne\r\nGaia Blaze, the Force of the Sun\r\n#042\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Grenosaurier Gigakanone\r\nGrenosaurus Giga-Cannon\r\n#046\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Jurassische Stärke\r\nJurassic Power\r\n#053\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Beta-Evolutionspille - Ultranszendenz\r\nBeta Evolution Pill - Ultranscendance\r\n#063\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Hundert Millionen Jahre Eisgefängnis\r\nMillion-Century Ice Prison\r\n#066\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Das fortwährende Epos von Charles\r\nThe Continuing Epic of Charles\r\n#072\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Kleiner Streit\r\nSmall Scuffle\r\n#078\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Geteilter Spiegel der Unterwelt\r\nSplit Mirror of the Underworld\r\n#079\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Zuttomozaurier\r\nZuttomozaurus\r\n#081\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Finis Terrae, Turm der Nekrowelt\r\nFinis Terrae, Tower of the Necroworld\r\n#082\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Kuibelt der Klingendrache\r\nKuibelt the Blade Dragon\r\n#083\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Sternenstaubgewürm\r\nStardust Wurm\r\n#094\r\nDUNE\r\nNM\r\n0,10 €\r\n1x Diabolica die Drachogeneralin\r\nDiabolica the Draconique General\r\n#096\r\nDUNE\r\nNM\r\n0,10 €\r\n"; + Assert.Fail(); + } + } +} \ No newline at end of file