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");
            }
        }
Exemple #5
0
        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);
 }
Exemple #10
0
 private void AssertBothHidden(string text, bool HideExternalLinks, bool LeaveMetaHeadings, bool HideImages)
 {
     hider = new HideText(HideExternalLinks, LeaveMetaHeadings, HideImages);
     AssertAllHidden(text);
     AssertAllHiddenMore(text);
 }
Exemple #11
0
 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");
        }
Exemple #13
0
 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));
 }