private string Hide(string text, bool hideExternalLinks, bool leaveMetaHeadings, bool hideImages) { Hider = new HideText(hideExternalLinks, leaveMetaHeadings, hideImages); string s = Hider.Hide(text); Assert.AreEqual(text, Hider.AddBack(s)); return(s); }
private string HideMore(string text, bool hideOnlyTargetOfWikilink) { Hider = new HideText(); string s = Hider.HideMore(text, hideOnlyTargetOfWikilink); Assert.AreEqual(text, Hider.AddBackMore(s)); return(s); }
public void PerformUniversalGeneralFixes() { HideText H = new HideText(); MockSkipOptions S = new MockSkipOptions(); Article ar1 = new Article("Hello", " '''Hello''' world text"); ar1.PerformUniversalGeneralFixes(); ar1.PerformGeneralFixes(parser, H, S, false, false, false); Assert.AreEqual("'''Hello''' world text", ar1.ArticleText); }
/// <summary> /// Performs the general fixes for user talk pages (ie user talk template substitution) /// </summary> /// <param name="removeText"></param> /// <param name="userTalkTemplatesRegex">Regex of user talk templates to substitute</param> /// <param name="SkipIfNoChange"></param> public void PerformUserTalkGeneralFixes(HideText removeText, Regex userTalkTemplatesRegex, bool SkipIfNoChange) { string originalText = ArticleText; HideText(removeText); Variables.Profiler.Profile("HideText"); AWBChangeArticleText("Subst user talk warnings", Parsers.SubstUserTemplates(ArticleText, Name, userTalkTemplatesRegex), true); Variables.Profiler.Profile("SubstUserTemplates"); UnHideText(removeText); Variables.Profiler.Profile("UnHideText"); if (SkipIfNoChange && (originalText == ArticleText)) { Trace.AWBSkipped("No user talk templates subst'd"); } }
public void OnlyGeneralFixesChanged() { HideText H = new HideText(); MockSkipOptions S = new MockSkipOptions(); Article ar1 = new Article("Hello", " '''Hello''' world text"); ar1.PerformUniversalGeneralFixes(); ar1.PerformGeneralFixes(parser, H, S, false, false, false); Assert.IsTrue(ar1.OnlyGeneralFixesChanged, "Universal genfixes made change"); // Categorization and then universal genfix Article ar2 = new Article("Category:Hello", " Text [[Category:Foo]]"); ar2.Categorisation((WikiFunctions.Options.CategorisationOptions) 1, parser, false, "Foo", "Foo2", false); Assert.AreEqual(ar2.ArticleText, " Text [[Category:Foo2]]", "Category rename operation"); ar2.PerformUniversalGeneralFixes(); Assert.AreEqual(ar2.ArticleText, "Text [[Category:Foo2]]", "Universal genfix trim"); ar2.PerformGeneralFixes(parser, H, S, false, false, false); Assert.IsFalse(ar2.OnlyGeneralFixesChanged, "Categorisation did cause change"); }
private string Hide(string text, bool HideExternalLinks, bool LeaveMetaHeadings, bool HideImages) { hider = new HideText(HideExternalLinks, LeaveMetaHeadings, HideImages); return(hider.HideMore(text)); }
/// <summary> /// Performs numerous minor improvements to the page text /// </summary> /// <param name="parsers">A parser object</param> /// <param name="removeText"></param> /// <param name="skip">Skip options</param> /// <param name="replaceReferenceTags">If true, <div class="references-small"><references/></div> and so on /// will be replaced with {{reflist}}</param> public void PerformGeneralFixes(Parsers parsers, HideText removeText, ISkipOptions skip, bool replaceReferenceTags) { BeforeGeneralFixesTextChanged(); HideText(removeText); Variables.Profiler.Profile("HideText"); FixHeaderErrors(parsers, Variables.LangCode, skip.SkipNoHeaderError); Variables.Profiler.Profile("FixHeaderErrors"); SetDefaultSort(parsers, Variables.LangCode, skip.SkipNoDefaultSortAdded); Variables.Profiler.Profile("SetDefaultSort"); AWBChangeArticleText("Fix categories", Parsers.FixCategories(ArticleText), true); Variables.Profiler.Profile("FixCategories"); AWBChangeArticleText("Fix images", Parsers.FixImages(ArticleText), true); Variables.Profiler.Profile("FixImages"); AWBChangeArticleText("Fix whitespace in links", Parsers.FixLinkWhitespace(ArticleText, Name), true); Variables.Profiler.Profile("FixLinkWhitespace"); AWBChangeArticleText("Fix syntax", parsers.FixSyntax(ArticleText), true); Variables.Profiler.Profile("FixSyntax"); AWBChangeArticleText("Fix temperatures", parsers.FixTemperatures(ArticleText), true); Variables.Profiler.Profile("FixTemperatures"); AWBChangeArticleText("Fix main article", Parsers.FixMainArticle(ArticleText), true); Variables.Profiler.Profile("FixMainArticle"); if (replaceReferenceTags) { AWBChangeArticleText("Fix reference tags", parsers.FixReferenceListTags(ArticleText), true); Variables.Profiler.Profile("FixReferenceTags"); } AWBChangeArticleText("Fix empty links and templates", Parsers.FixEmptyLinksAndTemplates(ArticleText), true); Variables.Profiler.Profile("FixEmptyLinksAndTemplates"); AWBChangeArticleText("Fix empty references", Parsers.SimplifyReferenceTags(ArticleText), true); Variables.Profiler.Profile("FixEmptyReferences"); if (IsMissingReferencesDisplay) { AWBChangeArticleText("Add missing {{reflist}}", Parsers.AddMissingReflist(ArticleText), true); Variables.Profiler.Profile("AddMissingReflist"); } //Just a bit broken/Some unwanted fixes (moving of <ref> tags around) //AWBChangeArticleText("Fix Footnotes", parsers.FixFootnotes(ArticleText), true); //Variables.Profiler.Profile("FixFootnotes"); FixLinks(parsers, skip.SkipNoBadLink); Variables.Profiler.Profile("FixLinks"); BulletExternalLinks(parsers, skip.SkipNoBulletedLink); Variables.Profiler.Profile("BulletExternalLinks"); AWBChangeArticleText("Remove empty comments", Parsers.RemoveEmptyComments(ArticleText), false); Variables.Profiler.Profile("RemoveEmptyComments"); //if (Variables.IsWikimediaProject) //{ // AWBChangeArticleText("External to internal links", Parsers.ExternalURLToInternalLink(ArticleText), true); // Variables.Profiler.Profile("ExternalURLToInternalLink"); //} Variables.Profiler.Profile("Links"); if (!Globals.UnitTestMode) // disable to avoid ssslow network requests { AWBChangeArticleText("Sort meta data", parsers.SortMetaData(ArticleText, Name), true); Variables.Profiler.Profile("Metadata"); } EmboldenTitles(parsers, skip.SkipNoBoldTitle); AWBChangeArticleText("Format sticky links", Parsers.StickyLinks(Parsers.SimplifyLinks(ArticleText)), true); //AWBChangeArticleText("Remove duplicate wikilink", parsers.RemoveDuplicateWikiLinks(ArticleText), true); UnHideText(removeText); AfterGeneralFixesTextChanged(); Variables.Profiler.Profile("End of general fixes"); }
public void UnHideMoreText(HideText RemoveText) { mArticleText = RemoveText.AddBackMore(mArticleText); }
public void HideMoreText(HideText RemoveText) { mArticleText = RemoveText.HideMore(mArticleText); }
private void AssertBothHidden(string text, bool HideExternalLinks, bool LeaveMetaHeadings, bool HideImages) { hider = new HideText(HideExternalLinks, LeaveMetaHeadings, HideImages); AssertAllHidden(text); AssertAllHiddenMore(text); }
private string HideMore(string text, bool HideOnlyTargetOfWikilink) { hider = new HideText(); return(hider.HideMore(text, HideOnlyTargetOfWikilink)); }
/// <summary> /// Performs numerous minor improvements to the page text /// </summary> /// <param name="parsers">A parser object</param> /// <param name="removeText"></param> /// <param name="skip">Skip options</param> /// <param name="replaceReferenceTags">If true, <div class="references-small"><references/></div> and so on /// will be replaced with {{reflist}}</param> public void PerformGeneralFixes(Parsers parsers, HideText removeText, ISkipOptions skip, bool replaceReferenceTags) { //TODO: 2009-01-28 review which of the genfixes below should be labelled 'significant' BeforeGeneralFixesTextChanged(); HideText(removeText); Variables.Profiler.Profile("HideText"); // call this before FixHeaderErrors so that Parsers.Conversions cleans up from ArticleIssues AWBChangeArticleText("Fixes for {{article issues}}", parsers.ArticleIssues(ArticleText), true); Variables.Profiler.Profile("ArticleIssues"); FixHeaderErrors(parsers, Variables.LangCode, skip.SkipNoHeaderError); Variables.Profiler.Profile("FixHeaderErrors"); SetDefaultSort(Variables.LangCode, skip.SkipNoDefaultSortAdded); Variables.Profiler.Profile("SetDefaultSort"); AWBChangeArticleText("Fix categories", Parsers.FixCategories(ArticleText), true); Variables.Profiler.Profile("FixCategories"); AWBChangeArticleText("Fix images", Parsers.FixImages(ArticleText), true); Variables.Profiler.Profile("FixImages"); AWBChangeArticleText("Fix whitespace in links", Parsers.FixLinkWhitespace(ArticleText, Name), true); Variables.Profiler.Profile("FixLinkWhitespace"); // does significant fixes AWBChangeArticleText("Fix syntax", Parsers.FixSyntax(ArticleText), true, true); Variables.Profiler.Profile("FixSyntax"); AWBChangeArticleText("Fix temperatures", Parsers.FixTemperatures(ArticleText), true); Variables.Profiler.Profile("FixTemperatures"); AWBChangeArticleText("Fix non-breaking spaces", parsers.FixNonBreakingSpaces(ArticleText), true); Variables.Profiler.Profile("FixNonBreakingSpaces"); AWBChangeArticleText("Fix main article", Parsers.FixMainArticle(ArticleText), true); Variables.Profiler.Profile("FixMainArticle"); if (replaceReferenceTags) { AWBChangeArticleText("Fix reference tags", Parsers.FixReferenceListTags(ArticleText), true); Variables.Profiler.Profile("FixReferenceListTags"); } AWBChangeArticleText("Fix empty links and templates", Parsers.FixEmptyLinksAndTemplates(ArticleText), true); Variables.Profiler.Profile("FixEmptyLinksAndTemplates"); AWBChangeArticleText("FixReferenceTags", Parsers.FixReferenceTags(ArticleText), true); Variables.Profiler.Profile("FixReferenceTags"); AWBChangeArticleText("DuplicateNamedReferences", Parsers.DuplicateNamedReferences(ArticleText), true); Variables.Profiler.Profile("DuplicateNamedReferences"); AWBChangeArticleText("ReorderReferences", Parsers.ReorderReferences(ArticleText), true); Variables.Profiler.Profile("ReorderReferences"); AWBChangeArticleText("Fix empty references", Parsers.SimplifyReferenceTags(ArticleText), true); Variables.Profiler.Profile("FixEmptyReferences"); // does significant fixes if (IsMissingReferencesDisplay) { AWBChangeArticleText("Add missing {{reflist}}", Parsers.AddMissingReflist(ArticleText), true, true); Variables.Profiler.Profile("AddMissingReflist"); } AWBChangeArticleText("Mdashes", parsers.Mdashes(ArticleText, Name, NameSpaceKey), true); Variables.Profiler.Profile("Mdashes"); CiteTemplateDates(parsers, skip.SkipNoCiteTemplateDatesFixed); Variables.Profiler.Profile("CiteTemplateDates"); //Just a bit broken/Some unwanted fixes (moving of <ref> tags around) //AWBChangeArticleText("Fix Footnotes", parsers.FixFootnotes(ArticleText), true); //Variables.Profiler.Profile("FixFootnotes"); FixLinks(skip.SkipNoBadLink); Variables.Profiler.Profile("FixLinks"); BulletExternalLinks(skip.SkipNoBulletedLink); Variables.Profiler.Profile("BulletExternalLinks"); AWBChangeArticleText("Remove empty comments", Parsers.RemoveEmptyComments(ArticleText), false); Variables.Profiler.Profile("RemoveEmptyComments"); AWBChangeArticleText("Fix Date Ordinals/Of", parsers.FixDateOrdinalsAndOf(ArticleText, Name), true, true); Variables.Profiler.Profile("FixDateOrdinalsAndOf"); //if (Variables.IsWikimediaProject) //{ // AWBChangeArticleText("External to internal links", Parsers.ExternalURLToInternalLink(ArticleText), true); // Variables.Profiler.Profile("ExternalURLToInternalLink"); //} Variables.Profiler.Profile("Links"); if (!Globals.UnitTestMode) // disable to avoid ssslow network requests { AWBChangeArticleText("Sort meta data", parsers.SortMetaData(ArticleText, Name), true); Variables.Profiler.Profile("Metadata"); } EmboldenTitles(parsers, skip.SkipNoBoldTitle); AWBChangeArticleText("Format sticky links", Parsers.StickyLinks(Parsers.SimplifyLinks(ArticleText)), true); //AWBChangeArticleText("Remove duplicate wikilink", parsers.RemoveDuplicateWikiLinks(ArticleText), true); UnHideText(removeText); AfterGeneralFixesTextChanged(); Variables.Profiler.Profile("End of general fixes"); }
private string Hide(string text, bool hideExternalLinks, bool leaveMetaHeadings, bool hideImages) { Hider = new HideText(hideExternalLinks, leaveMetaHeadings, hideImages); return(Hider.Hide(text)); }
public void UnHideText(HideText removeText) { mArticleText = removeText.AddBack(mArticleText); }
public void HideText(HideText removeText) { mArticleText = removeText.Hide(mArticleText); }
private string Hide(string text) { hider = new HideText(); return(hider.HideMore(text)); }