Utente:Superninobot/Utilities
Links
modificaQuesta pagina contiene due script in C# 2.0 per AWB che consentono l'inserimento del template {{Portale}} con i relativi eventuali parametri, da usare entrambi.
Aggiunta {{portale|biografie}} se template {{portale|}} non esistente
modificapublic string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
{
//Cerca il template portale
Regex portale = new Regex(@"\{\{Portale", RegexOptions.IgnoreCase);
//Cerca la prima categoria
Match categoria = Regex.Match(ArticleText, @"\[\[Categoria\:", RegexOptions.IgnoreCase);
//Cerca il primo intewiki
Match interwiki = Regex.Match(ArticleText, @"\[\[([a-z]{2,3})\:", RegexOptions.IgnoreCase);
//Posiziona il cursore dopo l'ultimo carattere
int lastchar = ArticleText.LastIndexOf("") + 1;
Summary = "";
//Salta se trova il template portale
Skip = (portale.Match(ArticleText).Success);
if (!Skip)
//Se trova la categoria, inserisce il template appena prima
if (categoria.Success) ArticleText = ArticleText.Insert(categoria.Index, "{{Portale|Biografie}}\n\r");
//Se non trova la categoria ma l'interwiki, inserisce il template appena prima
else if (interwiki.Success) ArticleText = ArticleText.Insert(interwiki.Index, "{{Portale|Biografie}}\n\r");
//Se non trova niente, inserisce appena dopo l'ultimo carattere trovato
else ArticleText = ArticleText.Insert(lastchar, "\n\r{{Portale|Biografie}}");
return ArticleText;
}
Aggiunta parametro |biografie al template {{portale|}} già esistente
modificapublic string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
{
//Cerca il parametro |Biografie all'interno del template portale
Regex portbio = new Regex(@"\|[Bb]iografie", RegexOptions.IgnoreCase);
//Cerca il template portale
Match portale = Regex.Match(ArticleText, @"\{\{Portale", RegexOptions.IgnoreCase);
//Cerca la prima categoria
Match categor = Regex.Match(ArticleText, @"\[\[Categoria\:", RegexOptions.IgnoreCase);
//Cerca il primo interwiki
Match interwi = Regex.Match(ArticleText, @"\[\[([a-z]{2,3})\:", RegexOptions.IgnoreCase);
//Posiziona il cursore dopo l'ultimo carattere
int lastchar = ArticleText.LastIndexOf("") + 1;
Summary = "";
//Salta se trova il parametro |Biografie all'interno del template portale
Skip = (portbio.Match(ArticleText).Success);
if (!Skip)
//Se trova il template portale inserisce |Biografie come primo parametro
if (portale.Success) ArticleText = ArticleText.Insert(portale.Index +9, "|Biografie");
//Altrimenti inserisce direttamente il template {{Portale|Biografie}} prima della prima categoria
else if (categor.Success) ArticleText = ArticleText.Insert(categor.Index, "{{Portale|Biografie}}\n\r");
//Se non trova nemmeno la categoria inserisce il tutto prima del primo interwiki
else if (interwi.Success) ArticleText = ArticleText.Insert(interwi.Index, "\n{{Portale|Biografie}}\n\r");
//Se proprio non trova un cavolo inserisce il template appena dopo l'ultimo carattere
else ArticleText = ArticleText.Insert(lastchar, "\r{{Portale|Biografie}}");
return ArticleText;
}