diff --git a/Src/A69WD/A69WD.csproj b/Src/A69WD/A69WD.csproj
index e824ec6..3e8851e 100644
--- a/Src/A69WD/A69WD.csproj
+++ b/Src/A69WD/A69WD.csproj
@@ -68,13 +68,11 @@
-
-
Form
diff --git a/Src/A69WD/Properties/AssemblyInfo.cs b/Src/A69WD/Properties/AssemblyInfo.cs
index afdef1b..25d85c1 100644
--- a/Src/A69WD/Properties/AssemblyInfo.cs
+++ b/Src/A69WD/Properties/AssemblyInfo.cs
@@ -32,8 +32,26 @@ using System.Runtime.InteropServices;
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.5.1.0")]
-[assembly: AssemblyFileVersion("0.5.1.0")]
+[assembly: AssemblyVersion("0.5.2.0")]
+[assembly: AssemblyFileVersion("0.5.2.0")]
+
+
+/*
+ *
+ * Vrs 0.5.2.0
+ *
+ * Compilata da CSiCoAlm il 2026/01/01
+ * Refactoring del downloader per poterlo utilizzare in ATDB:
+ * - imglobata la classe iSite nella iLink
+ * - impostato cartelle di destinazione dei file per distinguere la diagnostica del lavoro
+ *
+ *
+ * ToDo:
+ * - Aggiungere gestione parallela della FIFO secondo vecchi modello per aumentare il feedback alla UI
+ * - Inserire anche l'estrazione dei racconti
+ * - Inserire funzionalità avanzate sul lettore
+ *
+ */
/*
diff --git a/Src/A69WD/Service/Service_Crawler.cs b/Src/A69WD/Service/Service_Crawler.cs
index 73523fe..daaaf42 100644
--- a/Src/A69WD/Service/Service_Crawler.cs
+++ b/Src/A69WD/Service/Service_Crawler.cs
@@ -9,7 +9,6 @@ using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using A69WD.Net;
-using A69WD.Site;
@@ -30,9 +29,6 @@ namespace A69WD.Service {
private int _completati = 0;
private int _errori = 0;
- // HttpClient autenticato (fornito da AuthService)
- private iSiteType _site;
-
// Riferimenti ai controlli UI per aggiornare i contatori e la progress bar
private readonly StatusStrip _sb;
@@ -47,8 +43,7 @@ namespace A69WD.Service {
///
/// Avvia il thread worker che consuma la coda di URL.
///
- public void StartWorker(iSiteType site) {
- _site = site;
+ public void StartWorker() {
_workerThread = new Thread(ProcessQueue) { IsBackground = true };
_workerThread.Start();
}
diff --git a/Src/A69WD/Service/Service_Importer.cs b/Src/A69WD/Service/Service_Importer.cs
index bff0b7d..822ac18 100644
--- a/Src/A69WD/Service/Service_Importer.cs
+++ b/Src/A69WD/Service/Service_Importer.cs
@@ -8,7 +8,6 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using A69WD.Data;
using A69WD.Net;
-using A69WD.Site;
diff --git a/Src/A69WD/Site/cSite_A69.cs b/Src/A69WD/Site/cSite_A69.cs
deleted file mode 100644
index ee5ae9a..0000000
--- a/Src/A69WD/Site/cSite_A69.cs
+++ /dev/null
@@ -1,383 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Text;
-using System.Threading.Tasks;
-using A69WD.Data;
-using A69WD.Net;
-using HtmlAgilityPack;
-using static System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar;
-
-namespace A69WD.Site {
-
-
- public class cSite_A69 : iSiteType {
-
- private readonly HttpClient client;
- private readonly string nickname = @"Toky78";
- private readonly string password = @"p!fw05Q9Hc6j5";
- private bool logged = false;
-
-
- public bool Logged => logged;
-
- ///
- /// Esegue l'autenticazione al sito:
- /// - Scarica la pagina di autenticazione
- /// - analizza quanto scaricato per determinare i campi dinamici 'ts' e 'token'
- /// - prepara la risposta al form di identificazione
- /// - invia il POST di autenticazione
- /// - analizza la risposta per virificare il corretto login
- ///
- public async Task Authenticate() {
- try {
- // 1) GET pagina di login
- Console.WriteLine("A69 - Richiedo la pagina di login...");
- Logger.Information("A69 - Richiedo la pagina di login...");
- string loginPageHtml = await client.GetStringAsync(cLink_A69.LoginPageUrl);
-
- // 2) Parsing HTML per estrarre ts e token
- var doc = new HtmlAgilityPack.HtmlDocument();
- doc.LoadHtml(loginPageHtml);
-
- string ts = doc.DocumentNode
- .SelectSingleNode("//input[@name='ts']")
- ?.GetAttributeValue("value", "");
- string token = doc.DocumentNode
- .SelectSingleNode("//input[@name='token']")
- ?.GetAttributeValue("value", "");
-
- if (string.IsNullOrWhiteSpace(ts) || string.IsNullOrWhiteSpace(token)) {
- Console.WriteLine("A69 - Impossibile estrarre 'ts' o 'token' dalla pagina di login.");
- Logger.Information("A69 - Impossibile estrarre 'ts' o 'token' dalla pagina di login.");
- return logged;
- }
- Console.WriteLine($"A69 - Parametri dinamici trovati: ts={ts}, token={token}");
- Logger.Information($"A69 - Parametri dinamici trovati: ts={ts}, token={token}");
-
- // 3) POST login con valori dinamici
- var loginData = new FormUrlEncodedContent(new[]
- {
- new KeyValuePair("nick", nickname),
- new KeyValuePair("pwd", password),
- new KeyValuePair("ricordami","1"),
- new KeyValuePair("login", "Entra"),
- new KeyValuePair("ts", ts),
- new KeyValuePair("token", token)
- });
-
- Console.WriteLine("Invio credenziali di login...");
- var loginResponse = await client.PostAsync(cLink_A69.LoginPostUrl, loginData);
-
- if (!loginResponse.IsSuccessStatusCode) {
- Console.WriteLine($"A69 - Login fallito. HTTP {(int)loginResponse.StatusCode} {loginResponse.ReasonPhrase}");
- Logger.Information($"A69 - Login fallito. HTTP {(int)loginResponse.StatusCode} {loginResponse.ReasonPhrase}");
- return logged;
- }
-
- // Verifica semplice: sulla pagina di login effettuato, ricerco il nome dell'utente:
- string loginResult = await loginResponse.Content.ReadAsStringAsync();
- if (loginResult.Contains(nickname)) {
- Console.WriteLine("A69 - Login effettuato con successo! Sessione autenticata attiva.");
- Logger.Information("A69 - Login effettuato con successo! Sessione autenticata attiva.");
- logged = true;
- } else {
- Console.WriteLine("A69 - Login non riuscito: il server ha restituito un messaggio di errore.");
- Logger.Information("A69 - Login non riuscito: il server ha restituito un messaggio di errore.");
- logged = false;
- }
-
- } catch (Exception ex) {
- Console.WriteLine($"Errore generale: {ex.Message}");
- Logger.Information($"Errore generale: {ex.Message}");
- }
- return logged;
- }
-
- ///
- /// Codice da eseguire per ciascun A69 link:
- /// - scarico l'url indicato
- /// - se richiesto lo salvo come file di testo
- /// - analizzo il documento html ed estraggo tutti gli url ad altre pagine di link
- /// - analizzo il documento html ed estraggo tutti gli url a racconti
- /// - analizzo il documento html ed estraggo il testo del racconto
- ///
- ///
- ///
- public async Task> CrawlPageAsync(iLink lk) {
- var newlinks = new List();
-
- try {
- Console.WriteLine($"A69 - Scarico: {lk.URL}");
- HtmlDocument tdoc = null;
- string thtml = "";
-
- #region ToConfirm
- if (lk.Status == eLinkState.ToConfirm) {
- // Eseguo la verifica se link da downloadare
- lk.Status = eLinkState.ToDownload;
- }
- #endregion
-
- #region ToDownload
- if (lk.Status == eLinkState.ToDownload) {
- lk.Status = eLinkState.OnDownload;
- }
- #endregion
-
- #region OnDownload
- if (lk.Status == eLinkState.OnDownload) {
- // Scarico il file
- var resp = await client.GetAsync(lk.URL);
- if (!resp.IsSuccessStatusCode) {
- Console.WriteLine($"A69 - Errore HTTP {(int)resp.StatusCode} {resp.ReasonPhrase} per {lk.URL}");
- lk.Status = eLinkState.Error;
- //App.DB.LinkLog(lk);
- return newlinks;
- }
- // Scarico la pagina
- thtml = await client.GetStringAsync(lk.URL);
- tdoc = new HtmlDocument();
- tdoc.LoadHtml(thtml);
- // Salvo il file downloadato
- //SaveToFile(thtml, lk.FilePath, lk.FileName);
-
- lk.Status = eLinkState.ToAnalize;
- }
- #endregion
-
- #region ToAnalize
- {
- if (lk.Status == eLinkState.ToAnalize) {
- List tmpLk = new List();
-
- #region Estraggo gli url ad indici:
- {
- /*
- * Gli url delle pagine di indice sono del tipo:
- *
- *
- *
- */
- try {
- // Estraggo i link alle altre pagine:
- var tnodes = tdoc.DocumentNode.SelectNodes("//div[@id='pagination']//ul//li//a[@href]");
- if (tnodes != null) {
- foreach (var link in tnodes) {
- var href = link.GetAttributeValue("href", "");
- if (!string.IsNullOrEmpty(href) && href.StartsWith("/racconti-erotici/racconti_lista.php?genere="))
- tmpLk.Add(href); //tmpLk.Add(cLink_A69.PageBase + href);
- }
- }
- // Rimuove duplicati e ordina alfabeticamente
- tmpLk = tmpLk
- .OrderBy(s => s) // ordina alfabeticamente
- .Distinct() // elimina duplicati
- .ToList();
- // Inserisco i link trovati
- foreach (string ilk in tmpLk) {
- string[] separator = new string[] { "&pagina=" };
- string[] txt = ilk.Split(separator, StringSplitOptions.RemoveEmptyEntries);
- string url = cLink_A69.PageBase + ilk;
- string name = txt[0].Replace("/racconti-erotici/racconti_lista.php?genere=", "_A69_") + "_" + int.Parse(txt[1]).ToString("0000") + ".html";
- newlinks.Add(new cLink_A69(url, name));
- }
- } catch (Exception ex) {
- Logger.Error("Errore analisi Idx link dal " + lk.FileName + " - " + ex.Message);
- SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, lk.FileName);
- }
- }
- #endregion
-
- #region Estraggo gli url a racconti:
- {
- /*
- *
- * I link ai racconti sono dei pulsanti così formati:
- *
- */
- try {
- // Estraggo i link ai racconti:
- tmpLk = new List();
- // Estraggo i link alle altre pagine:
- var tnodes = tdoc.DocumentNode.SelectNodes("//div[@class='continua']//a[@href]");
- if (tnodes != null) {
- foreach (var link in tnodes) {
- var href = link.GetAttributeValue("href", "");
- if (!string.IsNullOrEmpty(href) && href.StartsWith("/racconti-erotici/") && (href.EndsWith(".html") || href.EndsWith(".htm")))
- tmpLk.Add(href); //tmpLk.Add(cLink_A69.PageBase + href);
- }
- }
- // Rimuove duplicati e ordina alfabeticamente
- tmpLk = tmpLk
- .OrderBy(s => s) // ordina alfabeticamente
- .Distinct() // elimina duplicati
- .ToList();
- // Inserisco i link trovati
- foreach (string ilk in tmpLk) {
- string url = cLink_A69.PageBase + ilk;
- string name = ilk.Replace("/racconti-erotici/", "A69_").Replace(@"/", "_");
- newlinks.Add(new cLink_A69(url, name));
- }
- } catch (Exception ex) {
- Logger.Error("Errore analisi Idx link dal " + lk.FileName + " - " + ex.Message);
- SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, lk.FileName);
- }
- }
- #endregion
-
- #region Estraggo il racconto dal file e lo inserisco nel DB
- if (lk.FileName.StartsWith("A69_")) {
- // Link ad un racconto
- cRac rac = lk.EstraiRac(tdoc);
- if (rac != null) {
- // Racconto estratto correttamente, lo salvo sul DB
- int res = App.DB.ImportRac(rac);
- if (res>0) {
- // Racconto salvato correttamente sul DB
- SaveToFile(thtml, Cfg.Settings.PathSrcDone, lk.FileName);
- } else {
- // Errore nel salvataggio sul DB
- SaveToFile(thtml, Cfg.Settings.PathSrcErrOnSave, lk.FileName);
- }
- } else {
- // Estrazione del racconto fallita
- SaveToFile(thtml, Cfg.Settings.PathSrcErrOnExtract, lk.FileName);
- }
- } else {
- // Link ad un indice
- SaveToFile(thtml, Cfg.Settings.PathIdxDone, lk.FileName);
- }
- #endregion
-
- lk.Status = eLinkState.End;
- App.DB.LinkLog(lk);
- }
- }
- #endregion
-
- #region End
- if (lk.Status == eLinkState.End) {
- }
- #endregion
-
- #region Error
- if (lk.Status == eLinkState.Error) {
- }
- #endregion
-
- #region Abort
- if (lk.Status == eLinkState.Abort) {
- }
- #endregion
-
- #region Cancel
- if (lk.Status == eLinkState.Cancel) {
- }
- #endregion
-
- Console.WriteLine("Link.Count=" + newlinks.Count.ToString("00"));
-
- } catch (Exception ex) {
- Console.WriteLine($"Errore con {lk.URL}: {ex.Message}");
- lk.Status = eLinkState.Error;
- App.DB.LinkLog(lk);
- }
- return newlinks;
- }
- private void SaveToFile(string txtHTML, string filePath, string fileName) {
- System.IO.StreamWriter tsw = new System.IO.StreamWriter(System.IO.Path.Combine(filePath, fileName), false, Encoding.UTF8);
- tsw.Write(txtHTML);
- }
-
- public async Task> CrawlPageAsyncTest1(iLink lk) {
- var newlinks = new List();
- try {
- // Scarico il file
- var resp = await client.GetAsync(lk.URL);
- if (!resp.IsSuccessStatusCode) {
- Console.WriteLine($"A69 - Errore HTTP {(int)resp.StatusCode} {resp.ReasonPhrase} per {lk.URL}");
- lk.Status = eLinkState.Error;
- //App.DB.LinkLog(lk);
- return newlinks;
- }
- // Scarico la pagina
- var thtml = await client.GetStringAsync(lk.URL);
- // Salvo il file downloadato
- System.IO.StreamWriter tsw = new System.IO.StreamWriter(System.IO.Path.Combine(lk.FilePath, lk.FileName), false, Encoding.UTF8);
- tsw.Write(thtml);
-
- Console.WriteLine("Link.Count=" + newlinks.Count.ToString("00"));
-
- } catch (Exception ex) {
- Console.WriteLine($"Errore con {lk.URL}: {ex.Message}");
- lk.Status = eLinkState.Error;
- //App.DB.LinkLog(lk);
- }
- return newlinks;
- }
-
- public async Task> CrawlPageAsyncTest2(iLink lk) {
- var newlinks = new List();
- try {
- // Scarico il file
- var resp = await client.GetAsync(lk.URL);
- if (!resp.IsSuccessStatusCode) {
- Console.WriteLine($"A69 - Errore HTTP {(int)resp.StatusCode} {resp.ReasonPhrase} per {lk.URL}");
- lk.Status = eLinkState.Error;
- //App.DB.LinkLog(lk);
- return newlinks;
- }
- // Scarico la pagina
- HttpClient tmpClient = new HttpClient(_handler);
- var thtml = await tmpClient.GetStringAsync(lk.URL);
- // Salvo il file downloadato
- System.IO.StreamWriter tsw = new System.IO.StreamWriter(System.IO.Path.Combine(lk.FilePath, lk.FileName), false, Encoding.UTF8);
- tsw.Write(thtml);
-
- Console.WriteLine("Link.Count=" + newlinks.Count.ToString("00"));
-
- } catch (Exception ex) {
- Console.WriteLine($"Errore con {lk.URL}: {ex.Message}");
- lk.Status = eLinkState.Error;
- //App.DB.LinkLog(lk);
- }
- return newlinks;
- }
-
- public cSite_A69() {
- _handler = new HttpClientHandler {
- CookieContainer = new CookieContainer(),
- UseCookies = true,
- AllowAutoRedirect = true,
- AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
- };
-
- client = new HttpClient(_handler);
- client.Timeout = TimeSpan.FromSeconds(60);
- client.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
- client.DefaultRequestHeaders.Referrer = new Uri(cLink_A69.LoginPageUrl);
- }
- HttpClientHandler _handler = null;
-
-
-
-
- }//class cSite_A69
-
-}//namespace A69WD.Site
diff --git a/Src/A69WD/Site/iSiteType.cs b/Src/A69WD/Site/iSiteType.cs
deleted file mode 100644
index 737f06d..0000000
--- a/Src/A69WD/Site/iSiteType.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using A69WD.Net;
-
-
-/*
- *
- * Interfaccia iSiteType
- * ---------------------
- * Questa interfaccia definisce il contratto per le diverse tipologie di siti gestiti dal crawler.
- * Ogni sito deve implementare:
- * - Authenticate(): eventuale autenticazione al sito (PUT, POST, ecc.)
- * - ValidateLink(string href): regole di validazione dei link estratti
- * - CrawlPageAsync(string url): scarica una pagina e la analizza
- *
- * In questo modo il programma principale può distinguere facilmente tra siti autenticati e pubblici,
- * mantenendo il codice modulare ed estensibile.
- *
- */
-
-
-
-namespace A69WD.Site {
-
- ///
- /// Interfaccia per gestire le operazioni da fare su un sito
- ///
- public interface iSiteType {
-
- ///
- /// Booleano per sapere se siamo autenticati al sito
- /// (sempre true per i siti senza autenticazione)
- ///
- bool Logged { get; }
-
- ///
- /// Esegue l'autenticazione al sito
- ///
- Task Authenticate();
-
- ///
- /// Elaborazione della pagina linkata:
- /// Scarica il link e analizza quanto downloadato
- ///
- ///
- ///
- Task> CrawlPageAsync(iLink lk);
-
- }//interface iSiteType
-
-}//namespace A69WD.Site
diff --git a/Src/A69WD/UI/frmReader.Designer.cs b/Src/A69WD/UI/frmReader.Designer.cs
index e6d3a34..346d918 100644
--- a/Src/A69WD/UI/frmReader.Designer.cs
+++ b/Src/A69WD/UI/frmReader.Designer.cs
@@ -28,12 +28,8 @@
this.sbMessage = new System.Windows.Forms.ToolStripStatusLabel();
this.sbProgressBar = new System.Windows.Forms.ToolStripProgressBar();
this.sbStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
- this.btnTest = new System.Windows.Forms.Button();
- this.btnTest2 = new System.Windows.Forms.Button();
- this.btnTest3 = new System.Windows.Forms.Button();
+ this.btnTest1 = new System.Windows.Forms.Button();
this.pnlTop = new System.Windows.Forms.Panel();
- this.btn = new System.Windows.Forms.Button();
- this.btnTest5 = new System.Windows.Forms.Button();
this.sb.SuspendLayout();
this.pnlTop.SuspendLayout();
this.SuspendLayout();
@@ -97,69 +93,25 @@
this.sbStatusLabel.Tag = "Label";
this.sbStatusLabel.ToolTipText = "Stato di eventuali operazioni in background";
//
- // btnTest
+ // btnTest1
//
- this.btnTest.Location = new System.Drawing.Point(11, 5);
- this.btnTest.Name = "btnTest";
- this.btnTest.Size = new System.Drawing.Size(62, 32);
- this.btnTest.TabIndex = 4;
- this.btnTest.Text = "Test";
- this.btnTest.UseVisualStyleBackColor = true;
- this.btnTest.Click += new System.EventHandler(this.btnTest_Click);
- //
- // btnTest2
- //
- this.btnTest2.Location = new System.Drawing.Point(79, 5);
- this.btnTest2.Name = "btnTest2";
- this.btnTest2.Size = new System.Drawing.Size(62, 32);
- this.btnTest2.TabIndex = 5;
- this.btnTest2.Text = "Test 2";
- this.btnTest2.UseVisualStyleBackColor = true;
- this.btnTest2.Click += new System.EventHandler(this.btnTest2_Click);
- //
- // btnTest3
- //
- this.btnTest3.Location = new System.Drawing.Point(147, 5);
- this.btnTest3.Name = "btnTest3";
- this.btnTest3.Size = new System.Drawing.Size(62, 32);
- this.btnTest3.TabIndex = 6;
- this.btnTest3.Text = "Test 3";
- this.btnTest3.UseVisualStyleBackColor = true;
- this.btnTest3.Click += new System.EventHandler(this.btnTest3_Click);
+ this.btnTest1.Location = new System.Drawing.Point(11, 5);
+ this.btnTest1.Name = "btnTest1";
+ this.btnTest1.Size = new System.Drawing.Size(62, 32);
+ this.btnTest1.TabIndex = 4;
+ this.btnTest1.Text = "Test";
+ this.btnTest1.UseVisualStyleBackColor = true;
+ this.btnTest1.Click += new System.EventHandler(this.btnTest1_Click);
//
// pnlTop
//
- this.pnlTop.Controls.Add(this.btnTest5);
- this.pnlTop.Controls.Add(this.btn);
- this.pnlTop.Controls.Add(this.btnTest3);
- this.pnlTop.Controls.Add(this.btnTest);
- this.pnlTop.Controls.Add(this.btnTest2);
+ this.pnlTop.Controls.Add(this.btnTest1);
this.pnlTop.Dock = System.Windows.Forms.DockStyle.Top;
this.pnlTop.Location = new System.Drawing.Point(0, 0);
this.pnlTop.Name = "pnlTop";
this.pnlTop.Size = new System.Drawing.Size(700, 42);
this.pnlTop.TabIndex = 0;
//
- // btn
- //
- this.btn.Location = new System.Drawing.Point(215, 5);
- this.btn.Name = "btn";
- this.btn.Size = new System.Drawing.Size(62, 32);
- this.btn.TabIndex = 7;
- this.btn.Text = "Test 4";
- this.btn.UseVisualStyleBackColor = true;
- this.btn.Click += new System.EventHandler(this.btn_Click);
- //
- // btnTest5
- //
- this.btnTest5.Location = new System.Drawing.Point(283, 5);
- this.btnTest5.Name = "btnTest5";
- this.btnTest5.Size = new System.Drawing.Size(62, 32);
- this.btnTest5.TabIndex = 8;
- this.btnTest5.Text = "Test 5";
- this.btnTest5.UseVisualStyleBackColor = true;
- this.btnTest5.Click += new System.EventHandler(this.btnTest5_Click);
- //
// frmReader
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -187,11 +139,7 @@
private System.Windows.Forms.ToolStripStatusLabel sbMessage;
private System.Windows.Forms.ToolStripProgressBar sbProgressBar;
private System.Windows.Forms.ToolStripStatusLabel sbStatusLabel;
- private System.Windows.Forms.Button btnTest;
- private System.Windows.Forms.Button btnTest2;
- private System.Windows.Forms.Button btnTest3;
+ private System.Windows.Forms.Button btnTest1;
private System.Windows.Forms.Panel pnlTop;
- private System.Windows.Forms.Button btn;
- private System.Windows.Forms.Button btnTest5;
}
}
\ No newline at end of file
diff --git a/Src/A69WD/UI/frmReader.cs b/Src/A69WD/UI/frmReader.cs
index 01cbbd7..9014c2e 100644
--- a/Src/A69WD/UI/frmReader.cs
+++ b/Src/A69WD/UI/frmReader.cs
@@ -11,7 +11,6 @@ using System.Windows.Forms;
using A69WD.Data;
using A69WD.Net;
using A69WD.Service;
-using A69WD.Site;
namespace A69WD.UI {
public partial class frmReader : Form {
@@ -23,7 +22,6 @@ namespace A69WD.UI {
private Service_Crawler serviceCrawler = null;
private Service_Importer ServiceImporter = null;
- A69WD.Site.iSiteType siteA69 = null;
public frmReader() {
InitializeComponent();
@@ -63,6 +61,10 @@ namespace A69WD.UI {
mImpStart.Enabled = true;
mImpStop.Enabled = false;
+ // Update UI
+ pnlTop.Enabled = false;
+ pnlTop.Visible = false;
+
}
///
@@ -676,20 +678,6 @@ namespace A69WD.UI {
mImpStart.Enabled = false;
mImpStop.Enabled = false;
- // - Creo istanza del client per il sito con autenticazione:
- sbStatusLabel.Text = "Login on A69";
- siteA69 = new cSite_A69();
-
- // - Eseguo l'autenticazione
- bool res = await siteA69.Authenticate();
- if (res) {
- sbStatusLabel.Text = "A69 autenticated";
- Logger.Information("Sito A69 loggato: " + res.ToString());
- } else {
- Logger.Information("Login Fault");
- return;
- }
-
// - Verifico path per il download
if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
@@ -701,7 +689,7 @@ namespace A69WD.UI {
return;
}
// avvio il servizio
- serviceCrawler.StartWorker(siteA69);
+ serviceCrawler.StartWorker();
}
void MenuItem_Skraping_Stop_Click(object sender, EventArgs e) {
@@ -746,147 +734,11 @@ namespace A69WD.UI {
cTools.ShowOnNotepad(Cfg.Settings.PathFileLogs);
}
- private async void btnTest_Click(object sender, EventArgs e) {
+ private void btnTest1_Click(object sender, EventArgs e) {
// Test download multipli con sempre lo stesso client per condividere la sessione
-
- // - Creo istanza del client per il sito con autenticazione:
- sbStatusLabel.Text = "Login on A69";
- cSite_A69 site = new cSite_A69();
-
- // - Eseguo l'autenticazione
- bool res = await site.Authenticate();
- if (res) {
- sbStatusLabel.Text = "A69 autenticated";
- Logger.Information("Sito A69 loggato: " + res.ToString());
- } else {
- Logger.Information("Login Fault");
- return;
- }
-
- // - Verifico path per il download
- if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
- cLink_A69[] lks = new cLink_A69[26];
- for (int i = 1; i < lks.Length; i++) {
- lks[i] = new cLink_A69($"https://www.annunci69.it/racconti-erotici/racconti_lista.php?genere=altro&pagina={i}", $"_A69_altro_{i.ToString("0000")}.html");
- }
-
- DateTime start = DateTime.Now;
- // - Download dei link come finora fato (steso client per condividere la sessione):
- for (int i = 1; i < lks.Length; i++) {
- List urls = await site.CrawlPageAsyncTest1(lks[i]);
- }
- DateTime end = DateTime.Now;
-
- sbStatusLabel.Text = (start - end).ToString();
-
+ ;
}
- private async void btnTest2_Click(object sender, EventArgs e) {
-
- // Test download multipli con client diversi ma che condividono solo la sessione
-
- // - Creo istanza del client per il sito con autenticazione:
- sbStatusLabel.Text = "Login on A69";
- cSite_A69 site = new cSite_A69();
-
- // - Eseguo l'autenticazione
- bool res = await site.Authenticate();
- if (res) {
- sbStatusLabel.Text = "A69 autenticated";
- Logger.Information("Sito A69 loggato: " + res.ToString());
- } else {
- Logger.Information("Login Fault");
- return;
- }
-
- // - Verifico path per il download
- if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
- cLink_A69[] lks = new cLink_A69[26];
- for (int i = 1; i < lks.Length; i++) {
- lks[i] = new cLink_A69($"https://www.annunci69.it/racconti-erotici/racconti_lista.php?genere=altro&pagina={i}", $"_A69_altro_{i.ToString("0000")}.html");
- }
-
- DateTime start = DateTime.Now;
- // - Download dei link come finora fato (steso client per condividere la sessione):
- for (int i = 1; i < lks.Length; i++) {
- List urls = await site.CrawlPageAsyncTest1(lks[i]);
- }
- DateTime end = DateTime.Now;
-
- sbStatusLabel.Text = (start - end).ToString();
-
- }
-
- private async void btnTest3_Click(object sender, EventArgs e) {
-
- // Test download multipli con client diversi ma che condividono solo la sessione e nuovo refactoring
-
- // - Eseguo l'autenticazione
- bool res = await cLink_A69.Authenticate();
- if (res) {
- sbStatusLabel.Text = "A69 autenticated";
- Logger.Information("Sito A69 loggato: " + res.ToString());
- } else {
- sbStatusLabel.Text = "Fault Login";
- Logger.Information("Login Fault");
- return;
- }
-
- // - Verifico path per il download
- if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
- cLink_A69[] lks = new cLink_A69[26];
- for (int i = 1; i < lks.Length; i++) {
- lks[i] = new cLink_A69($"https://www.annunci69.it/racconti-erotici/racconti_lista.php?genere=altro&pagina={i}", $"_A69_altro_{i.ToString("0000")}.html");
- }
-
- DateTime start = DateTime.Now;
- // - Download dei link come finora fato (steso client per condividere la sessione):
- for (int i = 1; i < lks.Length; i++) {
- List urls = await lks[i].CrawlPageAsync();
- }
- DateTime end = DateTime.Now;
-
- sbStatusLabel.Text = (start - end).ToString();
-
- }
-
- private async void btn_Click(object sender, EventArgs e) {
-
- // - Creo istanza del client per il sito con autenticazione:
- sbStatusLabel.Text = "Login on A69";
- siteA69 = new cSite_A69();
-
- // - Eseguo l'autenticazione
- bool res = await siteA69.Authenticate();
- if (res) {
- sbStatusLabel.Text = "A69 autenticated";
- Logger.Information("Sito A69 loggato: " + res.ToString());
- } else {
- Logger.Information("Login Fault");
- return;
- }
-
- // - Verifico path per il download
- if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
-
- // Preparo il servizio
- string url = "https://www.annunci69.it/racconti-erotici/racconti_lista.php?genere=altro&pagina=1";
- string name = "_A69_altro_0001.html";
- serviceCrawler = new Service_Crawler(sb);
- // Inserisco i link iniziali nella coda
- serviceCrawler.EnqueueUrl(new cLink_A69(url, name));
- // avvio il servizio
- serviceCrawler.StartWorker(siteA69);
-
- }
-
- private void btnTest5_Click(object sender, EventArgs e) {
- // Test download multipli con client diversi ma che condividono solo la sessione
- // Nuovo refactoring eliminando il Site inglobandolo sul Link
-
-
-
- }
}
}