/// <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); }
/// <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 }); }
/// <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 }); }