User:OrenBochman/AWB Modules
Appearance
MY first Module
[edit]this places talk header template if it is missing in a talk page!
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
{
Regex header = new Regex(@"\{\{Talk header([^}]*)}}", RegexOptions.IgnoreCase);
Regex header1 = new Regex(@"\{\{Talkheader([^}]*)}}", RegexOptions.IgnoreCase);
Summary = "Adding {{Talk header}}";
Skip = (header.Match(ArticleText).Success
|| header1.Match(ArticleText).Success
|| !Namespace.IsTalk(ArticleTitle));
if (!Skip)
ArticleText = "{{Talk header}} \r\n" + ArticleText;
return ArticleText;
}
Fix Upper Case Heading to Sentence case
[edit] public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
{
Skip =false;
//System.Console.WriteLine("text=[" + ArticleText+ "]");
// string pattern = @"(?<tag>[=]{2,5})([ ]*)(?<head>[A-Z0-9\'\-]+)(?<tail>([ ]+[A-Z0-9,&\-/:()\']+)+)?([ ]*)(\1)";
string pattern = @"(?<tag>[=]{2,5})([ ]*)(?<head>[A-Z0-9]+)(?<tail>([ ]+[A-Z0-9,&\-/:()\']+)+)?([ ]*)(\1)";
MatchEvaluator evaluator = new MatchEvaluator(TitleCaseFixer);
String result=Regex.Replace(ArticleText, pattern, evaluator, RegexOptions.ExplicitCapture);
//if(String.Equals(ArticleText, result , StringComparison.CurrentCulture)){Skip =true;}
Summary = "Err #58 Heading to Sentence Case";
return result;
}
public static string TitleCaseFixer(Match match)
{
string result = "";
// Creates a TextInfo based on the "en-US" culture.
System.Globalization.TextInfo myTI = new System.Globalization.CultureInfo("en-US",false).TextInfo;
result += match.Groups["tag"].Value;
result += myTI.ToTitleCase(myTI.ToLower(match.Groups["head"].Value));
result += myTI.ToLower(match.Groups["tail"].Value);
result += match.Groups["tag"].Value;
return result;
}