< div class="content"> fra "Published{Published}Updated:
+ try {
+ nodes = root.SelectNodes("//div[@class='infobox']//div[@class='content']");
+ foreach (HtmlNode nd in nodes) {
+ string txt = nd.InnerText.Trim().Replace(" ", "");
+ int start = txt.LastIndexOf(" Published: ");
+ int stop = txt.LastIndexOf(" Updated: ");
+ string strData = txt.Substring(start + 11, stop - start - 11);
+ CultureInfo culture = CultureInfo.CreateSpecificCulture("it-IT");
+ DateTimeStyles styles = DateTimeStyles.None;
+ DateTime tmpDT = DateTime.Now;
+ if (!DateTime.TryParse(strData.Trim(), culture, styles, out creato)) {
+ Logger.Error($"Old Milu - Import - No data - {filePathName}");
+ }
+ }
+ } catch (Exception ex) { Logger.Warning(string.Format("Data non riconosciuta nel file {0}\r\n{1}", filePathName, ex.Message)); return null; }
+ #endregion
+
+ // I vari capitoli dei racconti sono descritti dai nodi
e
in successione.
+ try {
+ HtmlNodeCollection capTitles = root.SelectNodes("//div[@class='chaptertitle']");
+ HtmlNodeCollection capText = root.SelectNodes("//div[@class='chapter']");
+ if ((capTitles.Count > 0) && (capTitles.Count == capText.Count)) {
+ // Trovato capitoli congruenti
+ for (int i = 0; i < capTitles.Count; i++) {
+ // Creo i racconti:
+ rac = new cRac();
+ rac.Title = titolo;
+ rac.SubTitle = capTitles[i].InnerText.Trim().Replace($"by {autore}","").Trim();
+ rac.Creato = creato;
+ rac.Updated = DateTime.Now;
+ //rac.Trama = cTools.FormattaTesto(capText[i].InnerHtml.Trim(), false);
+ rac.Trama = cTools.FormattaTesto(capText[i].InnerHtml.Trim(), true);
+ rac.Voto = "Non Letto";
+ rac.Autori = new List
();
+ rac.Autori.Add(autore);
+ rac.Tags = tags;
+ rac.Origini = origini;
+ rac.Notes = new List();
+ rac.Notes.Add(new Data.cNota("SrcFile", System.IO.Path.GetFileName(filePathName)));
+ // Inserisco il racconto nella collezione
+ if (rac.Validate()) { racs.Add(rac); }
+ }
+ } else {
+ // Capitoli non trovati o non congruenti
+ Logger.Error($"Old Milu - Import - No Capitoli - {filePathName}");
+ return null;
+ }
+ } catch (Exception ex) { Logger.Warning(string.Format("Fallita estrazione capitolo {0}\r\n{1}", filePathName, ex.Message)); return null; }
+ #endregion
+
+ Logger.Information($"Terminato estrazione racconti dal file: {filePathName}");
+
+ } catch (Exception ex) {
+ Logger.Error($"Old Milu - Import Error - {FileFullPath}: {ex.Message}");
+ Console.WriteLine($"Old Milu - Import Error - {FileFullPath}: {ex.Message}");
+ return null;
+ }
+ return racs;
+ }
+
+
+ protected virtual void Format_Insert_Tags(Data.cRac rac, List items) {
+ // Per ora riporto tutti i tag rilevati, mentre in futuro dovrò:
+ // - parsare la lista e formattare correttamente i tag
+ // - ordinare la lista dei tag formattati ed eliminare i duplicati
+ // - se non sono rimasti tag, inserisco il tag generale per indicare che non vi sono tag
+ // - altrimenti inserisco tutti i tag rimasti.
+ rac.Tags = new List();
+ try {
+ items.Sort();
+ string tmp = "";
+ foreach (string item in items) {
+ string it = item.Trim().ToLower();
+ if (tmp != it) {
+ #region switch per formattare il testo
+ switch (it) {
+ //case "racconti 69":
+ // rac.Tags.Add("69");
+ // break;
+ //case "abusi":
+ // rac.Tags.Add("Abusi");
+ // break;
+ //case "camgirl":
+ //case "chat e siti di incontri…":
+ //case "fiche":
+ // rac.Tags.Add("Altro");
+ // break;
+ //case "amatoriali":
+ // rac.Tags.Add("Amatoriali");
+ // break;
+ //case "anale":
+ // rac.Tags.Add("Anale");
+ // break;
+ //case "audio libri erotici":
+ //case "audio racconti erotici":
+ // rac.Tags.Add("Audio");
+ // break;
+ //case "bdsm":
+ // rac.Tags.Add("BDMS");
+ // break;
+ //case "bisex":
+ //case "bisex ♀":
+ //case "bisex ♂":
+ // rac.Tags.Add("Bisex");
+ // break;
+ //case "bondage":
+ // rac.Tags.Add("Bondage");
+ // break;
+ //case "bondage e sadomaso":
+ // rac.Tags.Add("Bondage");
+ // rac.Tags.Add("Sadomaso");
+ // break;
+ //case "bukkake":
+ // rac.Tags.Add("Bukkake");
+ // break;
+ //case "comici":
+ //case "comunità":
+ // rac.Tags.Add("Comico");
+ // break;
+ //case "concorso estate 2019":
+ //case "concorso natale 2018":
+ //case "decameron 2020":
+ // rac.Tags.Add("Concorso");
+ // break;
+ //case "confessioni":
+ // rac.Tags.Add("Confessioni");
+ // break;
+ //case "coppie":
+ //case "scambio di coppia":
+ //case "scambio di coppie":
+ // rac.Tags.Add("Coppie");
+ // break;
+ //case "cuckold":
+ //case "racconti cuckold":
+ // rac.Tags.Add("Cuckold");
+ // break;
+ //case "curiosità":
+ //case "curiosità sul sesso":
+ // rac.Tags.Add("Curiosità");
+ // break;
+ //case "dominazione":
+ //case "racconti di dominazione":
+ //case "schiavi&padroni":
+ // rac.Tags.Add("Dominazione");
+ // break;
+ //case "doppia penetrazione":
+ // rac.Tags.Add("Doppia Penetrazione");
+ // break;
+ //case "esibizionismo":
+ // rac.Tags.Add("Esibizionismo");
+ // break;
+ //case "etero":
+ //case "lui & lei":
+ //case "racconti erotici etero":
+ // rac.Tags.Add("Etero");
+ // break;
+ //case "feticismo":
+ // rac.Tags.Add("Feticismo");
+ // break;
+ //case "fisting":
+ // rac.Tags.Add("Fisting");
+ // break;
+ //case "gang bang":
+ // rac.Tags.Add("Gang Bang");
+ // break;
+ //case "gay":
+ //case "racconti gay":
+ // rac.Tags.Add("Gay");
+ // break;
+ //case "gay & bisex":
+ //case "gay e bisex":
+ // rac.Tags.Add("Gay");
+ // rac.Tags.Add("Bisex");
+ // break;
+ //case "gay - travestiti":
+ // rac.Tags.Add("Gay");
+ // rac.Tags.Add("Trans");
+ // break;
+ //case "incesti":
+ //case "incesto":
+ //case "racconti erotici sull'incesto":
+ // rac.Tags.Add("Incesto");
+ // break;
+ //case "interviste":
+ //case "interviste erotiche":
+ // rac.Tags.Add("Intervista");
+ // break;
+ //case "lesbo":
+ //case "racconti erotici lesbo":
+ //case "saffico":
+ // rac.Tags.Add("Lesbo");
+ // break;
+ //case "autoerotismo":
+ //case "masturbazione":
+ //case "masturbazioni":
+ //case "racconti sull'autoerotismo":
+ // rac.Tags.Add("Masturbazione");
+ // break;
+ //case "milf":
+ // rac.Tags.Add("MILF");
+ // break;
+ //case "nudismo":
+ // rac.Tags.Add("Nudismo");
+ // break;
+ //case "orge":
+ //case "orgia":
+ //case "sesso di gruppo":
+ // rac.Tags.Add("Orge");
+ // break;
+ //case "pissing":
+ // rac.Tags.Add("Pissing");
+ // break;
+ //case "lirica erotica":
+ //case "poesia erotica":
+ //case "poesie":
+ //case "poesie erotiche":
+ // rac.Tags.Add("Poesia");
+ // break;
+ //case "pompini":
+ // rac.Tags.Add("Pompini");
+ // break;
+ //case "giochi erotici":
+ //case "prime esperienze":
+ //case "prime volte":
+ // rac.Tags.Add("Prime Esperienze");
+ // break;
+ //case "pulp":
+ // rac.Tags.Add("Pulp");
+ // break;
+ //case "sadomaso":
+ // rac.Tags.Add("Sadomaso");
+ // break;
+ //case "sensazioni":
+ //case "sentimentali":
+ // rac.Tags.Add("Sentimentali");
+ // break;
+ //case "cornuti":
+ //case "tradimenti":
+ //case "tradimento":
+ // rac.Tags.Add("Tradimento");
+ // break;
+ //case "racconti con trans":
+ //case "racconti trans":
+ //case "trans":
+ //case "trans e travestiti":
+ // rac.Tags.Add("Trans");
+ // break;
+ //case "trasgressivo":
+ // rac.Tags.Add("Trasgressivo");
+ // break;
+ //case "trio":
+ // rac.Tags.Add("Trio");
+ // break;
+ //case "uncategorized":
+ // rac.Tags.Add("Uncategorized");
+ // break;
+ //case "voyeur":
+ //case "voyeurismo":
+ // rac.Tags.Add("Voyeur");
+ // break;
+ //case "animali":
+ //case "zoofilia":
+ // rac.Tags.Add("Zoofilia");
+ // break;
+
+ //case "Gay":
+ // rac.Tags.Add("Gay");
+ // break;
+ //case "Racconti bisex":
+ // rac.Tags.Add("Bisex");
+ // break;
+ //case "Racconti etero":
+ // rac.Tags.Add("Etero");
+ // break;
+ //case "Racconti fetish":
+ // rac.Tags.Add("Feticismo");
+ // break;
+ //case "Racconti incesto":
+ // rac.Tags.Add("Incesto");
+ // break;
+ //case "Racconti lesbo":
+ // rac.Tags.Add("Lesbo");
+ // break;
+ //case "Racconti masturbazione":
+ // rac.Tags.Add("Masturbazione");
+ // break;
+ //case "Racconti mature":
+ // rac.Tags.Add("Mature");
+ // break;
+ //case "Racconti orge":
+ // rac.Tags.Add("Orge");
+ // break;
+ //case "Racconti prima volta":
+ // rac.Tags.Add("Prime Esperienze");
+ // break;
+ //case "Racconti ricatto":
+ // rac.Tags.Add("Ricatto");
+ // break;
+ //case "Racconti scambio di coppia":
+ // rac.Tags.Add("Coppie");
+ // break;
+ //case "Racconti sottomissione":
+ // rac.Tags.Add("Dominazione");
+ // break;
+ //case "Racconti tradimenti":
+ // rac.Tags.Add("Tradimento");
+ // break;
+ //case "Racconti trav":
+ //case "Trans":
+ // rac.Tags.Add("Trans");
+ // break;
+
+ default:
+ rac.Tags.Add(item);
+ break;
+ }
+ #endregion
+ tmp = it;
+
+ }//if
+
+ }//foreach
+
+ } catch (Exception ex) {
+ Logger.Error(string.Format("Error Code: {0} - Errore in {1}.{2}: {3}", "ER00040", System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.FullName, System.Reflection.MethodInfo.GetCurrentMethod().Name, ex.Message));
+ } finally {
+ if (rac.Tags.Count == 0) rac.Tags.Add("_None_");
+ }
+ }//function
+
+
+ }//class Service_Import_Milu
+
+}//namespace A69WD.Service
diff --git a/Src/A69WD/Settings.cfg b/Src/A69WD/Settings.cfg
index ee6f83d..ee1308e 100644
--- a/Src/A69WD/Settings.cfg
+++ b/Src/A69WD/Settings.cfg
@@ -10,7 +10,7 @@
C:\Commesse\_zPrivate\A69WD\Test\Import
- 1000
+ 5
A69DB.db
diff --git a/Src/A69WD/UI/frmReader.Designer.cs b/Src/A69WD/UI/frmReader.Designer.cs
index 346d918..744b564 100644
--- a/Src/A69WD/UI/frmReader.Designer.cs
+++ b/Src/A69WD/UI/frmReader.Designer.cs
@@ -30,6 +30,10 @@
this.sbStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.btnTest1 = new System.Windows.Forms.Button();
this.pnlTop = new System.Windows.Forms.Panel();
+ this.btnTest2 = new System.Windows.Forms.Button();
+ this.btnTest4 = new System.Windows.Forms.Button();
+ this.btnTest3 = new System.Windows.Forms.Button();
+ this.btnTest5 = new System.Windows.Forms.Button();
this.sb.SuspendLayout();
this.pnlTop.SuspendLayout();
this.SuspendLayout();
@@ -97,14 +101,18 @@
//
this.btnTest1.Location = new System.Drawing.Point(11, 5);
this.btnTest1.Name = "btnTest1";
- this.btnTest1.Size = new System.Drawing.Size(62, 32);
+ this.btnTest1.Size = new System.Drawing.Size(99, 32);
this.btnTest1.TabIndex = 4;
- this.btnTest1.Text = "Test";
+ this.btnTest1.Text = "Serializza";
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.btnTest4);
+ this.pnlTop.Controls.Add(this.btnTest3);
+ 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);
@@ -112,6 +120,46 @@
this.pnlTop.Size = new System.Drawing.Size(700, 42);
this.pnlTop.TabIndex = 0;
//
+ // btnTest2
+ //
+ this.btnTest2.Location = new System.Drawing.Point(113, 5);
+ this.btnTest2.Name = "btnTest2";
+ this.btnTest2.Size = new System.Drawing.Size(99, 32);
+ this.btnTest2.TabIndex = 5;
+ this.btnTest2.Text = "Deserializza";
+ this.btnTest2.UseVisualStyleBackColor = true;
+ this.btnTest2.Click += new System.EventHandler(this.btnTest2_Click);
+ //
+ // btnTest4
+ //
+ this.btnTest4.Location = new System.Drawing.Point(337, 5);
+ this.btnTest4.Name = "btnTest4";
+ this.btnTest4.Size = new System.Drawing.Size(99, 32);
+ this.btnTest4.TabIndex = 7;
+ this.btnTest4.Text = "Deserializza ALL";
+ this.btnTest4.UseVisualStyleBackColor = true;
+ this.btnTest4.Click += new System.EventHandler(this.btnTest4_Click);
+ //
+ // btnTest3
+ //
+ this.btnTest3.Location = new System.Drawing.Point(235, 5);
+ this.btnTest3.Name = "btnTest3";
+ this.btnTest3.Size = new System.Drawing.Size(99, 32);
+ this.btnTest3.TabIndex = 6;
+ this.btnTest3.Text = "Serializza ALL";
+ this.btnTest3.UseVisualStyleBackColor = true;
+ this.btnTest3.Click += new System.EventHandler(this.btnTest3_Click);
+ //
+ // btnTest5
+ //
+ this.btnTest5.Location = new System.Drawing.Point(459, 5);
+ this.btnTest5.Name = "btnTest5";
+ this.btnTest5.Size = new System.Drawing.Size(99, 32);
+ this.btnTest5.TabIndex = 9;
+ this.btnTest5.Text = "Import Milu";
+ this.btnTest5.UseVisualStyleBackColor = true;
+ this.btnTest5.Click += new System.EventHandler(this.btnTest5_Click);
+ //
// frmReader
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -141,5 +189,9 @@
private System.Windows.Forms.ToolStripStatusLabel sbStatusLabel;
private System.Windows.Forms.Button btnTest1;
private System.Windows.Forms.Panel pnlTop;
+ private System.Windows.Forms.Button btnTest2;
+ private System.Windows.Forms.Button btnTest4;
+ private System.Windows.Forms.Button btnTest3;
+ 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 6a31982..f34bd53 100644
--- a/Src/A69WD/UI/frmReader.cs
+++ b/Src/A69WD/UI/frmReader.cs
@@ -61,9 +61,9 @@ namespace A69WD.UI {
mImpStart.Enabled = true;
mImpStop.Enabled = false;
- // Update UI
- pnlTop.Enabled = false;
- pnlTop.Visible = false;
+ // TEST // Update UI
+ // TEST pnlTop.Enabled = false;
+ // TEST pnlTop.Visible = false;
}
@@ -697,7 +697,6 @@ namespace A69WD.UI {
// avvio il servizio
serviceCrawler.StartWorker();
}
-
void MenuItem_Skraping_Stop_Click(object sender, EventArgs e) {
// Update menu
mSkrStart.Enabled = false;
@@ -707,7 +706,6 @@ namespace A69WD.UI {
if (serviceCrawler != null) { serviceCrawler.StopWorker(); }
}
-
void MenuItem_Importer_Start_Click(object sender, EventArgs e) {
// Update menu
mSkrStart.Enabled = false;
@@ -719,7 +717,7 @@ namespace A69WD.UI {
ServiceImporter = new Service_Importer(sb);
// Per ora uso la directory di default, poi metteremo selezione
- string path = Cfg.Settings.PathDownloadWorking;
+ string path = Cfg.Settings.PathImport;
// avvio il servizio
ServiceImporter.StartWorker(path);
@@ -735,35 +733,78 @@ namespace A69WD.UI {
if (ServiceImporter != null) { ServiceImporter.StopWorker(); }
}
-
void MenuItem_ShowLog_Click(object sender, EventArgs e) {
cTools.ShowOnNotepad(Cfg.Settings.PathFileLogs);
}
private void btnTest1_Click(object sender, EventArgs e) {
- // Test skraping eRac
-
+ // Test serializzazione su file xml
// - Verifico path per il download
if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
- // Preparo il servizio
- serviceCrawler = new Service_Crawler(sb);
- // Inserisco i link iniziali nella coda
- if (!cLink_eRac.InsertStartLink(serviceCrawler)) {
- Logger.Warning("eRac - Insert start link Fault");
- sbStatusLabel.Text = "eRac fault.";
- return;
+ // Serializzo 5 racconti casuali
+ for (int i = 0; i < 5; i++) {
+ cRac rac = App.DB.GetRacById(App.DB.GetRandomIDrac());
+ string path = System.IO.Path.Combine(Cfg.Settings.PathDownloadWorking, $"ATDB_Rac_{rac.strIDrac}.xml");
+ rac.SaveToXmlFile(path);
}
- //// Inserisco link di un racconto:
- //string url = "https://www.eroticiracconti.it/racconto/105286-nicole-gis-il-culto-della-terza-notte"; // "https://www.eroticiracconti.it/racconto/112763-elara-capitolo-2-il-cambiamento";
- //string name = "eRac_112763-elara-capitolo-2-il-cambiamento.html";
- //serviceCrawler.EnqueueUrl(new cLink_eRac(url, name));
+ }
+
+ private void btnTest2_Click(object sender, EventArgs e) {
+ // Test deserializzazione da file xml
+
+ string[] files = System.IO.Directory.GetFiles(Cfg.Settings.PathImport, "ATDB_*.xml");
+ foreach (string file in files) {
+ cRac rac = cRac.LoadFromXmlFile(file);
+ var res = App.DB.ImportRac(rac);
+ }
+ }
+
+ private void btnTest3_Click(object sender, EventArgs e) {
+ // Test serializzazione su file xml di tutti i racconti:
+
+ // - Verifico path per il download
+ if (!System.IO.Directory.Exists(Cfg.Settings.PathDownloadWorking)) System.IO.Directory.CreateDirectory(Cfg.Settings.PathDownloadWorking);
+
+ // - Ricavo il numero totale di racconti:
+ long nRac = App.DB.GetNumRacs();
+
+ // - Serializzo i racconti
+ for (long i = 0; i <= nRac; i++) {
+ cRac rac = App.DB.GetRacById(i);
+ if (rac == null) continue;
+ string path = System.IO.Path.Combine(Cfg.Settings.PathDownloadWorking, $"ATDB_Rac_{rac.strIDrac}.xml");
+ rac.SaveToXmlFile(path);
+ }
+
+ }
+
+ private void btnTest4_Click(object sender, EventArgs e) {
+ // Test deserializzazione da file xml
+
+ string[] files = System.IO.Directory.GetFiles(Cfg.Settings.PathImport, "ATDB_*.xml");
+ foreach (string file in files) {
+ cRac rac = cRac.LoadFromXmlFile(file);
+ var res = App.DB.ImportRac(rac);
+ }
+ }
+
+ private void btnTest5_Click(object sender, EventArgs e) {
+ // Test importer dal vecchio formato di Milu:
+
+ // - Preparo il servizio
+ ServiceImportMilu = new Service_Import_Milu(sb);
+
+ // - Per ora uso la directory di default, poi metteremo selezione
+ string path = Cfg.Settings.PathImport;
// avvio il servizio
- serviceCrawler.StartWorker();
+ ServiceImportMilu.StartWorker(path);
}
+ Service_Import_Milu ServiceImportMilu = null;
+
}