Пример #1
0
        /// <inheritdoc />
        public override IEnumerable <KeyValuePair <string, object> > EnumListParameters()
        {
            if ((TargetTitle != null) == (TargetPageId != null))
            {
                throw new ArgumentException(string.Format(Prompts.ExceptionArgumentExpectEitherNull2, nameof(TargetTitle), nameof(TargetPageId)));
            }
            var actualPaginationSize = PaginationSize;

            if (AllowRedirectedLinks)
            {
                // When the blredirect parameter is set, this module behaves slightly differently.
                // bllimit applies to both levels separately: if e.g. bllimit=10,
                // at most 10 first-level pages (pages that link to bltitle) and
                // 10 second-level pages (pages that link to bltitle through a redirect) will be listed.
                // Continuing queries also works differently.
                actualPaginationSize = Math.Max(1, PaginationSize / 2);
            }
            return(new Dictionary <string, object>
            {
                { "bltitle", TargetTitle },
                { "blpageid", TargetPageId },
                { "blnamespace", NamespaceIds == null ? null : MediaWikiHelper.JoinValues(NamespaceIds) },
                { "blfilterredir", RedirectsFilter.ToString("redirects", "nonredirects") },
                { "bllimit", actualPaginationSize },
                { "blredirect", AllowRedirectedLinks }
            });
        }
        private string ParseFilters()
        {
            var types = MinorFilter.ToString("|minor", "|!minor", "")
                        + BotFilter.ToString("|bot", "|!bot", "")
                        + AnonymousFilter.ToString("|anon", "|!anon", "")
                        + RedirectsFilter.ToString("|redirect", "|!redirect", "")
                        + PatrolledFilter.ToString("|patrolled", "|!patrolled", "");

            return(types.Length > 1 ? types.Substring(1) : null);
        }
Пример #3
0
 /// <inheritdoc/>
 public override IEnumerable <KeyValuePair <string, object> > EnumListParameters()
 {
     return(new Dictionary <string, object>
     {
         { "apfrom", StartTitle },
         { "apto", EndTitle },
         { "aplimit", PaginationSize },
         { "apnamespace", NamespaceId },
         { "apprefix", Prefix },
         { "apfilterredir", RedirectsFilter.ToString("redirects", "nonredirects") },
         { "apfilterlanglinks", LanguageLinkFilter.ToString("withlanglinks", "withoutlanglinks") },
         { "apminsize", MinPageContentLength },
         { "apmaxsize", MaxPageContentLength },
         // TODO add other filters
     });
 }
Пример #4
0
 /// <summary>
 /// When overridden, fills generator parameters for action=query request.
 /// </summary>
 /// <param name="actualPagingSize"></param>
 /// <returns>The dictioanry containing request value pairs.</returns>
 protected override IEnumerable <KeyValuePair <string, object> > GetGeneratorParams(int actualPagingSize)
 {
     return(new Dictionary <string, object>
     {
         { "generator", "allpages" },
         { "gapfrom", StartTitle },
         { "gapto", EndTitle },
         { "gaplimit", actualPagingSize },
         { "gapnamespace", NamespaceId },
         { "gapprefix", Prefix },
         { "gapfilterredir", RedirectsFilter.ToString("redirects", "nonredirects") },
         { "gapfilterlanglinks", LanguageLinkFilter.ToString("withlanglinks", "withoutlanglinks") },
         { "gapminsize", MinPageContentLength },
         { "gapmaxsize", MaxPageContentLength },
         // TODO add other filters
     });
 }