From 6c2e2c0639ae52faa6f8e780e6f9796eaa14ce42 Mon Sep 17 00:00:00 2001 From: forest93 Date: Sun, 23 Oct 2022 22:23:03 +0800 Subject: [PATCH] Scribunto: Add token param since MW 1.40.0-wmf.5. --- WikiClientLibrary/Scribunto/ScribuntoConsole.cs | 2 ++ WikiClientLibrary/Sites/WikiSiteToken.cs | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/WikiClientLibrary/Scribunto/ScribuntoConsole.cs b/WikiClientLibrary/Scribunto/ScribuntoConsole.cs index 59b1cbc7d..0bb890310 100644 --- a/WikiClientLibrary/Scribunto/ScribuntoConsole.cs +++ b/WikiClientLibrary/Scribunto/ScribuntoConsole.cs @@ -180,6 +180,8 @@ internal static async Task InvokeApiAsync(WikiSite si jresult = await site.InvokeMediaWikiApiAsync(new MediaWikiFormRequestMessage(new { action = "scribunto-console", + // Since wikimedia/mediawiki-extensions-Scribunto@0f2585244cbdc22580cc431745328a8f1fb270bd (1.40.0-wmf.5) + token = site.SiteInfo.Version.Above(1, 40, 0, MediaWikiDevChannel.Wmf, 5) ? WikiSiteToken.Csrf : null, session = sessionId, title = title, clear = clear, diff --git a/WikiClientLibrary/Sites/WikiSiteToken.cs b/WikiClientLibrary/Sites/WikiSiteToken.cs index a5739117c..9d7d30dc9 100644 --- a/WikiClientLibrary/Sites/WikiSiteToken.cs +++ b/WikiClientLibrary/Sites/WikiSiteToken.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Text; using WikiClientLibrary.Client; namespace WikiClientLibrary.Sites @@ -9,6 +7,10 @@ namespace WikiClientLibrary.Sites /// Represents a token placeholder in the . /// This enables to detect bad tokens. /// + /// + /// For backwards-compatibility, please use the most specific token type where possible + /// (e.g., or instead of ). + /// public sealed class WikiSiteToken { @@ -20,6 +22,9 @@ public sealed class WikiSiteToken public static WikiSiteToken Patrol = new WikiSiteToken("patrol"); + /// General CSRF token. This token type is not supported prior to MW 1.24. + public static WikiSiteToken Csrf = new WikiSiteToken("csrf"); + public WikiSiteToken(string type) { Type = type ?? throw new ArgumentNullException(nameof(type));