User:Tom.Reding/Inc & Dec AWB Module

From Wikipedia, the free encyclopedia
  • I made this since AWB doesn't have native increment/decrement functions, as far as I can tell.
  • AWB runs custom modules after before your regex rules, so prepare your rules such that pressing F5 (Edit box rclick > Re-parse) doesn't break anything.
  • Surround any numbers you want to increment by 1 with "+++", and any numbers you want to decrement by 1 with "---" (keyboard hyphens); +++19+++---16--- produces 2015.
  • The script also removes

PRESS F5 TO INC +++n+++ AND DEC ---n---
=======================================

which I like to add so I don't miss it.

Inc & Dec Custom Module[edit]

public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip)
	{
	Skip = false;
	Summary = "";
	
// Created to give AWB increment/decrement functions.
// User:Tom.Reding/Inc & Dec AWB Module
	string pattern_inc = @"(?:(\+\+\+)(\d+)(\+\+\+))";	// regex pattern for incrementation
	string pattern_dec = @"(?:(---)(\d+)(---))";		// regex pattern for decrementation
	string pattern_instructions = @"(PRESS F5 TO INC \+\+\+n\+\+\+ AND DEC ---n---(\s+\=+\s{0,2})?)";
	string matched_text;
	string matched_num;
	int numi;
	string incremented_num;
	string decremented_num;
   	
// increment
	Match m = Regex.Match(ArticleText, pattern_inc);
	if (m.Success)
		{
		matched_text = m.Value;
		matched_num = matched_text.Trim('+');
		
		numi = Convert.ToInt32(matched_num);
		numi = numi + 1;
		incremented_num = numi.ToString();
		
		ArticleText = Regex.Replace(ArticleText, pattern_inc, incremented_num);
		}
	
// decrement
	Match m2 = Regex.Match(ArticleText, pattern_dec);
	if (m2.Success)
		{
		matched_text = m2.Value;
		matched_num = matched_text.Trim('-');
		
		numi = Convert.ToInt32(matched_num);
		numi = numi - 1;
		decremented_num = numi.ToString();
		
		ArticleText = Regex.Replace(ArticleText, pattern_dec, decremented_num);
		}
	
// cleanup: remove instructions
	Match m3 = Regex.Match(ArticleText, pattern_instructions);
	if (m3.Success)
		{
		ArticleText = Regex.Replace(ArticleText, pattern_instructions, "");
		}
	return ArticleText;
	}