Prepend() public method

public Prepend ( string title, string text, string summary ) : string
title string
text string
summary string
return string
Ejemplo n.º 1
0
        internal void AddNavigationTemplate(Wiki wiki)
        {
            ParameterCollection parameters = new ParameterCollection();
            parameters.Add("list", "embeddedin");
            parameters.Add("eititle", "Template:" + _l10i.NavigationTemplate);
            parameters.Add("eilimit", "max");
            parameters.Add("einamespace", "4");
            parameters.Add("eifilterredir", "nonredirects");

            XmlDocument doc = wiki.Enumerate(parameters, true);

            List<string> titles = new List<string>();
            DateTime end = DateTime.Today;
            DateTime start = end.AddDays(-7);
            while (start <= end)
            {
                string pageDate = start.ToString("d MMMM yyyy", _l10i.Culture);
                string prefix = _l10i.MainPage + "/";
                string pageName = prefix + pageDate;
                if (doc.SelectSingleNode("//ei[@title='" + pageName + "']") == null)
                {
                    titles.Add(pageName);
                }
                start = start.AddDays(1);
            }

            parameters.Clear();
            parameters.Add("prop", "info");
            XmlDocument xml = wiki.Query(QueryBy.Titles, parameters, titles);
            foreach (XmlNode node in xml.SelectNodes("//page"))
            {
                if (node.Attributes["missing"] == null)
                {
                    Console.Out.WriteLine("Updating " + node.Attributes["title"].Value + "...");
                    wiki.Prepend(node.Attributes["title"].Value,
                        "{{" + _l10i.NavigationTemplate + "}}\n",
                        _l10i.MainPageUpdateComment);
                }
            }
        }
Ejemplo n.º 2
0
        internal void AddNavigationTemplate(Wiki wiki)
        {
            ParameterCollection parameters = new ParameterCollection();
            parameters.Add("list", "embeddedin");
            parameters.Add("eititle", "Template:ВПКОБ-Навигация");
            parameters.Add("eilimit", "max");
            parameters.Add("einamespace", "4");
            parameters.Add("eifilterredir", "nonredirects");

            XmlDocument doc = wiki.Enumerate(parameters, true);

            List<string> titles = new List<string>();
            DateTime end = DateTime.Today;
            DateTime start = end.AddDays(-7);
            while (start <= end)
            {
                string pageDate = start.ToString("d MMMM yyyy",
                        CultureInfo.CreateSpecificCulture("ru-RU"));
                string prefix = "Википедия:К объединению/";
                string pageName = prefix + pageDate;
                if (doc.SelectSingleNode("//ei[@title='" + pageName + "']") == null)
                {
                    titles.Add(pageName);
                }
                start = start.AddDays(1);
            }

            parameters.Clear();
            parameters.Add("prop", "info");
            XmlDocument xml = wiki.Query(QueryBy.Titles, parameters, titles);
            foreach (XmlNode node in xml.SelectNodes("//page"))
            {
                if (node.Attributes["missing"] == null)
                {
                    Console.Out.WriteLine("Updating " + node.Attributes["title"].Value + "...");
                    wiki.Prepend(node.Attributes["title"].Value,
                        "{{ВПКОБ-Навигация}}\n",
                        "добавление навигационного шаблона");
                }
            }
        }
Ejemplo n.º 3
0
        public override void Update(Wiki wiki)
        {
            string text = GetData(wiki);
            string newText = "";
            if (Categories.Count == 1)
            {
                newText = ProcessCategory(wiki, text);
            }
            else if (Categories.Count > 1)
            {
                newText = ProcessData(wiki, text);
            }
            if (!string.IsNullOrEmpty(newText) && newText != text)
            {
                Console.Out.WriteLine("Updating " + Page);
                wiki.Save(Page, newText, Module.UpdateComment, !MarkEdits ? MinorFlags.NotMinor : MinorFlags.None, MarkEdits);
            }

            string oldText = text;
            if (!string.IsNullOrEmpty(Header))
            {
                if (oldText.StartsWith(Header))
                {
                    oldText = oldText.Substring(Header.Length);
                }
                if (newText.StartsWith(Header))
                {
                    newText = newText.Substring(Header.Length);
                }
            }
            if (!string.IsNullOrEmpty(Footer))
            {
                if (oldText.EndsWith(Footer))
                {
                    oldText = oldText.Substring(0, oldText.Length - Footer.Length);
                }
                if (oldText.EndsWith(Footer))
                {
                    newText = newText.Substring(0, oldText.Length - Footer.Length);
                }
            }
            string[] items = oldText.Split(new string[] { Delimeter },
                       StringSplitOptions.RemoveEmptyEntries);
            var newItems = new HashSet<string>(newText.Split(new string[] { Delimeter },
                       StringSplitOptions.RemoveEmptyEntries));
            var archiveItems = new List<string>();
            for (int i = 0; i < items.Length; ++i)
            {
                if (!newItems.Contains(items[i]))
                {
                    archiveItems.Add(items[i]);
                }
            }

            if (archiveItems.Count != 0)
            {
                Console.Out.WriteLine("Updating " + ArchivePage);
                string archiveText = string.Join(Delimeter, archiveItems.ToArray()) + "\n";
                wiki.Prepend(ArchivePage, archiveText, Module.UpdateComment);
            }
        }