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;
}
public List<Kunde> ParseCardMarket()
public List<Kunde> ParseCardMarket(string forceid = "")
{
ChromeOptions options = new ChromeOptions();
options.AddArgument("start-maximized");
@@ -61,40 +61,40 @@ namespace CardmarketBot
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<Kunde> kunden = new List<Kunde>();
IWebElement element;
try
if (forceid != "")
{
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]);
}
ids.Add(forceid);
}
catch(OpenQA.Selenium.NotFoundException)
else
{
Console.WriteLine("Keine Verkäufe aktuell");
return kunden;
cd.Navigate().GoToUrl(@"https://www.cardmarket.com/de/OnePiece/Orders/Sales/Paid");
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)
{
//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));
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();
var xFound = datas[i].IndexOf("x");
if (xFound == -1) continue;
var am = datas[i].Substring(0, xFound);
temp.Amount = Convert.ToInt32(am);
temp.GERName = datas[i].Substring(xFound + 1);

View File

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