- I made this since AWB doesn't have native increment/decrement functions, as far as I can tell.
- AWB runs custom modules
afterbefore 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---
produces2015
. - 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
editpublic 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;
}