Utente:Superninobot/Utilities

Aggiunta portale (by Number55)

modifica

Questa 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

modifica
public 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

modifica
public 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;
	}