Upgradato la formattazione dei testi e dei tags

This commit is contained in:
CSiCoAlm committed 2026-01-05 16:23:04 +01:00
1 parent 9f32778d0a
commit c9075fabc8
5 files changed
+227 -688

No files matched your search

+130 -54
View File
@@ -1,13 +1,14 @@
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Text;
using System.Linq;
using System.IO;
using System.Reflection;
using System.Text.RegularExpressions;
namespace A69WD {
public class cTools {
@@ -476,7 +477,7 @@ namespace A69WD {
/// <param name="txt">Testo da formattare</param>
/// <param name="eliminaTagHtml">Abilitare l'eliminazione di tutti i generici tag </param>
/// <returns>Testo formattato</returns>
public static string FormattaTesto(string txt, bool eliminaTagHtml) {
public static string FormattaTesto(string txt, bool eliminaTagHtml = true) {
try {
// Analisi dei tag prima di levarli:
string testo = Regex.Replace(txt, @"<P>", "\r\n", RegexOptions.IgnoreCase);
@@ -503,6 +504,20 @@ namespace A69WD {
}
// Special Entities dal sito https://www.htmlhelp.com/reference/html40/entities/special.html
// More can be added, see http://hotwired.lycos.com/webmonkey/reference/special_characters/
// Correggo risultato togliendo doppie linee e caratteri html:
testo = Regex.Replace(testo, @"&nbsp;", " ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&bull;", " * ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&hellip;", "…", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&trade;", "(tm)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&copy;", "(c)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&reg;", "(r)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&frasl;", "/", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&agrave;", "à", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&egrave;", "è", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&igrave;", "ì", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&ograve;", "ò", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&ugrave;", "ù", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&quot;", "\"", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&amp;", "&", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&lt;", "<", RegexOptions.IgnoreCase);
@@ -527,8 +542,13 @@ namespace A69WD {
testo = Regex.Replace(testo, @"&euro;", "€", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#34;", "\"", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#38;", "&", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#39;", "'", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#60;", "<", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#62;", ">", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#268;", "Č", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#269;", "č", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#282;", "Ě", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#283;", "ě", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#339;", "œ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#353;", "š", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#376;", "Ÿ", RegexOptions.IgnoreCase);
@@ -543,10 +563,13 @@ namespace A69WD {
testo = Regex.Replace(testo, @"&#8221;", "”", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8222;", "„", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8224;", "†", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8230;", "…", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8232;", " ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8240;", "‰", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8249;", "‹", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8250;", "›", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8364;", "€", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#61516;", " ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#x22;", "\"", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#x26;", "&", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#x3C;", "<", RegexOptions.IgnoreCase);
@@ -570,58 +593,17 @@ namespace A69WD {
testo = Regex.Replace(testo, @"&#x203A;", "›", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#x20AC;", "€", RegexOptions.IgnoreCase);
// Correggo risultato togliendo doppie linee e caratteri html:
testo = Regex.Replace(testo, @"&nbsp;", " ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&bull;", " * ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&lt;", "<", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&rsaquo;", " > ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&gt;", ">", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&trade;", "(tm)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&copy;", "(c)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&reg;", "(r)", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&frasl;", "/", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&agrave;", "à", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&egrave;", "è", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&igrave;", "ì", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&ograve;", "ò", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&ugrave;", "ù", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8211;", "–", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8212;", "—", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8216;", "‘", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8217;", "’", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8220;", "“", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8221;", "”", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8230;", "…", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#268;", "Č", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#269;", "č", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#282;", "Ě", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#283;", "ě", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#8232;", " ", RegexOptions.IgnoreCase);
testo = Regex.Replace(testo, @"&#61516;", " ", RegexOptions.IgnoreCase);
// // Remove all others. More can be added, see
// // http://hotwired.lycos.com/webmonkey/reference/special_characters/
// testo = Regex.Replace(testo, @"&(.{2,6});", string.Empty, System.Text.RegularExpressions.RegexOptions.IgnoreCase);
//// Correggo accenti per formati sbagliati:
//while (testo.Contains("à")) { testo = testo.Replace("à", "à"); }
//while (testo.Contains("è")) { testo = testo.Replace("è", "è"); }
//while (testo.Contains("é")) { testo = testo.Replace("é", "é"); }
//while (testo.Contains("ì")) { testo = testo.Replace("ì", "ì"); }
//while (testo.Contains("ò")) { testo = testo.Replace("ò", "ò"); }
//while (testo.Contains("ù")) { testo = testo.Replace("ù", "ù"); }
//while (testo.Contains("’")) { testo = testo.Replace("’", "'"); }
// Correggo accenti per formati sbagliati:
while (testo.Contains("à")) { testo = testo.Replace("à", "à"); }
while (testo.Contains("è")) { testo = testo.Replace("è", "è"); }
while (testo.Contains("é")) { testo = testo.Replace("é", "é"); }
while (testo.Contains("ì")) { testo = testo.Replace("ì", "ì"); }
while (testo.Contains("ò")) { testo = testo.Replace("ò", "ò"); }
while (testo.Contains("ù")) { testo = testo.Replace("ù", "ù"); }
while (testo.Contains("’")) { testo = testo.Replace("’", "'"); }
// Correggo scritto:
testo = testo.Replace("&#038;egrave", "è");
testo = testo.Replace("&amp;", "&");
testo = testo.Replace("&hellip;", "…");
testo = testo.Replace("\r", "");
testo = testo.Replace("\r", "\n");
while (testo.Contains("\t")) { testo = testo.Replace("\t", " "); }
while (testo.Contains("...")) { testo = testo.Replace("...", "…"); }
while (testo.Contains("….")) { testo = testo.Replace("….", "…"); }
@@ -637,8 +619,6 @@ namespace A69WD {
public static bool WriteStyleSheet(string FullFileName) {
try {
StringBuilder sb = new StringBuilder();
@@ -653,6 +633,102 @@ namespace A69WD {
public static void Insert_Format_Tags(ref List<string> dst, List<string> items) {
try {
// // Rimuove duplicati e ordina alfabeticamente
// items = items
// .OrderBy(s => s) // ordina alfabeticamente
// .Distinct() // elimina duplicati
// .ToList();
if (dst is null) { dst = new List<string>(); }
// Ordino ed elimino duplicati
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 "altro": // Src: Old_Milu
dst.Add("Altro");
break;
case "autoerotismo": // Src: Old_Milu
dst.Add("Masturbazione");
break;
case "bdsm": // Src: A69
dst.Add("BDSM");
break;
case "cuckold": // Src: Old_Milu
dst.Add("Cuckold");
break;
case "dominazione": // Src: Old_Milu
dst.Add("Dominazione");
break;
case "gay": // Src: Old_Milu
dst.Add("Gay");
break;
case "gay & bisex": // Src: A69
dst.Add("Bisex");
dst.Add("Gay");
break;
case "incesto": // Src: A69, Old_Milu
dst.Add("Incesto");
break;
case "lesbo": // Src: A69
case "saffico": // Src: Old_Milu
dst.Add("Lesbo");
break;
case "lirica": // Src: Old_Milu
dst.Add("Lirica");
break;
case "lui & lei": // Src: A69
case "etero": // Src: Old_Milu
dst.Add("Etero");
break;
case "orge": // Src: A69
case "orgia": // Src: Old_Milu
dst.Add("Orge");
break;
case "poesia": // Src: Old_Milu
dst.Add("Poesia");
break;
case "prime esperienze": // Src: A69
dst.Add("Prime Esperienze");
break;
case "scambio di coppia": // Src: A69
dst.Add("Scambismo");
break;
case "sensazioni": // Src: Old_Milu
dst.Add("Sensazioni");
break;
case "tradimenti": // Src: A69
dst.Add("Tradimenti");
break;
case "trans": // Src: A69, Old_Milu
dst.Add("Trans");
break;
case "trio": // Src: A69, Old_Milu
dst.Add("trio");
break;
//case "":
// dst.Add("");
// break;
default:
dst.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 (dst.Count == 0) dst.Add("_None_");
}
}//function
} // class Tools