Jump to content

User:Tom.Reding/Inc & Dec AWB Module

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
  • 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

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