User:Yobot/Rugby

From Wikipedia, the free encyclopedia
// Updates parameters in Infobox rugby biography. Archived for historical reasons. It works only for dead persons. Modifications are needed to living persons.

	private static readonly Regex Templ = Tools.NestedTemplateRegex(new List<string>("Infobox rugby biography".Split(',')));
	public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
        {
            Skip = false;
            Summary = "";
		
	      foreach(Match m in Templ.Matches(ArticleText))
        	{
                string TemplCall = m.Value, newValue = m.Value;
 
                        newValue = Tools.RenameTemplateParameter(newValue, "birthname", "birth_name");
                        newValue = Tools.RenameTemplateParameter(newValue, "dateofbirth", "birth_date");
                        newValue = Tools.RenameTemplateParameter(newValue, "dateofdeath", "death_date");
                        newValue = Tools.RenameTemplateParameter(newValue, "placeofbirth", "birth_place");
                        newValue = Tools.RenameTemplateParameter(newValue, "placeofdeath", "death_place");
                        newValue = Tools.RenameTemplateParameter(newValue, "url", "website");
                        newValue = Tools.RenameTemplateParameter(newValue, "URL", "website");
			string birthyear = Tools.GetTemplateParameterValue(TemplCall, "birthyear");
			string birthmonth = Tools.GetTemplateParameterValue(TemplCall, "birthmonth");
			string birthday = Tools.GetTemplateParameterValue(TemplCall, "birthday");
			if (birthyear.Length+birthmonth.Length+birthday.Length==0)
			{
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthyear");
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthmonth");
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthday");
			}
			string birth_date = Tools.GetTemplateParameterValue(TemplCall, "birth_date");
			if (birth_date.Length==0)
			{
                        newValue = Tools.RemoveTemplateParameter(newValue, "birth_date");
 			}
			string birthdate = "{{Birth date|"+birthyear+"|"+birthmonth+"|"+birthday+"|df=yes}}";
			if (birthyear.Length*birthmonth.Length*birthday.Length>0)
			{
                        newValue = Tools.AppendParameterToTemplate(newValue, "birth_date",birthdate,false);
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthyear");
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthmonth");
                        newValue = Tools.RemoveTemplateParameter(newValue, "birthday");
			}
			string deathyear = Tools.GetTemplateParameterValue(TemplCall, "deathyear");
			string deathmonth = Tools.GetTemplateParameterValue(TemplCall, "deathmonth");
			string deathday = Tools.GetTemplateParameterValue(TemplCall, "deathday");
			if (deathyear.Length+deathmonth.Length+deathday.Length==0)
			{
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathyear");
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathmonth");
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathday");
			}
			string death_date = Tools.GetTemplateParameterValue(TemplCall, "death_date");
			if (death_date.Length==0)
			{
                        newValue = Tools.RemoveTemplateParameter(newValue, "death_date");
 			}
			string deathdate = "{{death date and age|"+deathyear+"|"+deathmonth+"|"+deathday+"|"+birthyear+"|"+birthmonth+"|"+birthday+"|df=yes}}";
			if (deathyear.Length*deathmonth.Length*deathday.Length>0)
			{
			newValue = Tools.AppendParameterToTemplate(newValue, "death_date",deathdate,false);
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathyear");
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathmonth");
                        newValue = Tools.RemoveTemplateParameter(newValue, "deathday");
			}
            ArticleText = ArticleText.Replace(m.Value, newValue);
	}
            return ArticleText;
        }