Programm erweitert

über bestellnummer angabe prüft der Bot die Bestellung
This commit is contained in:
2023-08-27 10:12:58 +02:00
parent b0e27caf9f
commit 839080392b
4 changed files with 105 additions and 72 deletions

View File

@@ -29,7 +29,7 @@ namespace CardmarketBot
this.password = password; this.password = password;
} }
public List<Kunde> ParseCardMarket() public List<Kunde> ParseCardMarket(string forceid = "")
{ {
ChromeOptions options = new ChromeOptions(); ChromeOptions options = new ChromeOptions();
options.AddArgument("start-maximized"); options.AddArgument("start-maximized");
@@ -61,40 +61,40 @@ namespace CardmarketBot
cookieContainer.Add(new System.Net.Cookie(name, value, c.Path, c.Domain)); cookieContainer.Add(new System.Net.Cookie(name, value, c.Path, c.Domain));
} }
cd.Navigate().GoToUrl(@"https://www.cardmarket.com/de/OnePiece/Orders/Sales/Paid");
//cd.Navigate().GoToUrl(@"https://www.cardmarket.com/de/OnePiece/Orders/Sales/Sent");
List<string> ids = new List<string>(); List<string> ids = new List<string>();
List<Kunde> kunden = new List<Kunde>(); List<Kunde> kunden = new List<Kunde>();
IWebElement element; IWebElement element;
try
if (forceid != "")
{ {
element = cd.FindElement(By.XPath("/html/body/main/section/div[3]/div[4]")); ids.Add(forceid);
string content = element.Text;
string[] datas = content.Split("\r\n");
for (int i = 8; i < datas.Length; i += 7)
{
ids.Add(datas[i]);
}
} }
catch(OpenQA.Selenium.NotFoundException) else
{ {
Console.WriteLine("Keine Verkäufe aktuell"); cd.Navigate().GoToUrl(@"https://www.cardmarket.com/de/OnePiece/Orders/Sales/Paid");
return kunden;
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)
{
ids.Add(datas[i]);
}
}
catch (OpenQA.Selenium.NotFoundException)
{
Console.WriteLine("Keine Verkäufe aktuell");
return kunden;
}
} }
foreach (string id in ids) foreach (string id in ids)
{ {
//if (id != "1121844928") continue;
//Console.WriteLine(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)); 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")); element = cd.FindElement(By.XPath("/html/body/main/section/div/div[1]/div/div[3]/div[2]/div[2]/div/div"));

View File

@@ -65,6 +65,7 @@ public static class Helper
{ {
Artikel temp = new Artikel(); Artikel temp = new Artikel();
var xFound = datas[i].IndexOf("x"); var xFound = datas[i].IndexOf("x");
if (xFound == -1) continue;
var am = datas[i].Substring(0, xFound); var am = datas[i].Substring(0, xFound);
temp.Amount = Convert.ToInt32(am); temp.Amount = Convert.ToInt32(am);
temp.GERName = datas[i].Substring(xFound + 1); temp.GERName = datas[i].Substring(xFound + 1);

View File

@@ -2,70 +2,94 @@
using ConsoleApp3.Contracts; using ConsoleApp3.Contracts;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using CardMarketBot; using CardMarketBot;
using OpenQA.Selenium.DevTools.V113.Network;
using System.Reflection.Metadata.Ecma335;
namespace CardmarketBot namespace CardmarketBot
{ {
internal class Programm internal class Programm
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
ICheckSevDesk checkSevDesk = new CheckSevDeskPublicList(); ICheckSevDesk checkSevDesk = new CheckSevDeskPublicList();
Console.WriteLine("Hallo Herzlich willkommen beim Junker sein Junker der im Junkerloch junkert");
// Kunden aus Cardmarket erstellen Console.WriteLine("Was kann ich für dich tun?");
bool programmexited = false;
List<Kunde> kunden = new List<Kunde>(); List<Kunde> kunden = new List<Kunde>();
CardMarketParser cardMarketParser = new CardMarketParser("More-Tcg", "Magnatpower310!!"); CardMarketParser cardMarketParser = new CardMarketParser("More-Tcg", "Magnatpower310!!");
kunden = cardMarketParser.ParseCardMarket(); while (!programmexited)
// Rechnungen generieren
List<ModelRechnung> rechnungen = new List<ModelRechnung>();
InvoiceParser invoiceParser = new InvoiceParser(kunden);
rechnungen = invoiceParser.GetInvoices();
foreach (ModelRechnung item in rechnungen)
{ {
if(item.Invoice == null) continue; Console.WriteLine("1) Starte den Hugo, der alle bezahlte Artikeln erfasst");
var str_header = item.Invoice.Header; Console.WriteLine("2) Starte den Rolfes der Bestellnummern nachkontrolliert");
if (str_header != null) Console.WriteLine("3) Beende");
string? input = Console.ReadLine();
if (input == null)
{ {
Regex regex = new Regex("[0-9]*$"); continue;
Match matched = regex.Match(str_header); }
string verkaufnummer = str_header.Substring(matched.Index); switch (input)
Console.Write($"Teste {verkaufnummer} : "); {
if (checkSevDesk.AlreadyKnown(verkaufnummer)) case "1":
kunden = cardMarketParser.ParseCardMarket();
break;
case "2":
{
Console.Write("Verkaufsnummer: ");
string? verkaufsnummer = Console.ReadLine();
if (verkaufsnummer == null)
{
Console.WriteLine("Fehler");
continue;
}
kunden = cardMarketParser.ParseCardMarket(verkaufsnummer);
}
break;
case "3":
programmexited = true;
continue;
default: continue;
}
// Rechnungen generieren
List<ModelRechnung> rechnungen = new List<ModelRechnung>();
InvoiceParser invoiceParser = new InvoiceParser(kunden);
rechnungen = invoiceParser.GetInvoices();
foreach (ModelRechnung item in rechnungen)
{
if (item.Invoice == null) continue;
var str_header = item.Invoice.Header;
if (str_header != null)
{ {
Console.Write("wurde noch nicht in Sevdesk erfasst "); Regex regex = new Regex("[0-9]*$");
SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134"); Match matched = regex.Match(str_header);
sevdeskService.Create(item); string verkaufnummer = str_header.Substring(matched.Index);
Console.WriteLine("nun in Sevdesk eingetragen"); Console.Write($"Teste {verkaufnummer} : ");
checkSevDesk.Write(verkaufnummer); if (checkSevDesk.AlreadyKnown(verkaufnummer))
} {
else Console.Write("wurde noch nicht in Sevdesk erfasst ");
{ SevdeskService sevdeskService = new SevdeskService("7251554968610b78ca865b2b774b4134");
Console.WriteLine("wurde bereits in Sevdesk erfasst, wird somit übersprungen. Jedoch wird PostCSV erstellt"); sevdeskService.Create(item);
Console.WriteLine("nun in Sevdesk eingetragen");
checkSevDesk.Write(verkaufnummer);
}
else
{
Console.WriteLine("wurde bereits in Sevdesk erfasst, wird somit übersprungen. Jedoch wird PostCSV erstellt");
}
} }
} }
// Post CSV Erstellen
DeutschePost deutschePost = new DeutschePost(kunden);
deutschePost.GenerateCSV();
Console.WriteLine("Fertig");
} }
// Post CSV Erstellen
DeutschePost deutschePost = new DeutschePost(kunden);
deutschePost.GenerateCSV();
Console.WriteLine("Fertig");
Console.ReadLine();
} }
} }
} }

File diff suppressed because one or more lines are too long