Releases: CXuesong/WikiClientLibrary
Releases · CXuesong/WikiClientLibrary
v0.9.0-int.4
- Embed pdb into the published dll files. Debug information was omitted from the publish output before, making Source Link useless. (#122 by @hymccord)
- When removing Wikibase entity aliases with
Entity.EditAsync, the old value needs to be included (#124 by @mormegil-cz)
v0.9.0-int.3
- Implement
CategoriesPropertyProvider.ParsePropertyGroup. It was omitted withNotImplementedExceptionbefore. (a6d1afc) - Now
WikiPage.GetPropertyGroupwill return an empty*PropertyGroupinstance instead ofnullif corresponding property group has been requested in RefreshAsync but there is no corresponding information returned from MW API. (0da96e7) - A warning log will be emitted if a user freshly logged in with
WikiSite.LoginAsyncis not insideusergroup. This can happen there is something wrong with the cookie, causing user's session getting lost. (be7e9cf) - Prevent
FileInfoPropertyProviderfrom returning more than 1 file revisions, often with a very slow continuation process, when there is only 1 page being refreshed. (0a73c45, #118)- This means WCL does not support listing file revisions on a single file.
- A class like
RevisionsGeneratorshould be implemented to meet the requirement (noting that imageinfo is a list and cannot act as a generator).
- And a couple of regressions after
System.Text.Jsonmigration.
v0.9.0-int.2
WCL package
New features
- Added
PageHelperclass andWikiClientHelperclass to provide some opinionated but could-be-useful methods for- stripping the bracketed part from disambiguation page titles
- computing SHA-1 hash from a string containing the page content, with limited local page content normalization support.
- generating
User-Agentheader with reflection information from the providedAssemblyobject.
These utilities are migrated from the old NuGet package named CXuesong.MW.WikiClientLibrary.Bots.
API changes
- Pushed down
AccountInfo.Block*properties into a stand-aloneAccountBlockInfoobject stored inAccountInfo.BlockInfoproperty.- Also added the rest of properties for the block detail, including
AccountBlockInfo.BlockComponentsfor composite blocks. - Breaking change: Removed the old
AccountInfo.Block*properties in this version.
- Also added the rest of properties for the block detail, including
- Preset
AutomaticDecompressionof the defaultHttpClientHandlerused inWikiClientclass toAll. This will enable Brotli compression support when sending MW API requests.
Bug fixes
MediaWikiHelper.JoinValues<T>has not been correctly switching delimiter to\u001F, when there are one or more items containing pipe character (|).
v0.9.0-int.1
- Migrated JSON framework dependency from
Newtonsoft.JsontoSystem.Text.Jsonv8.0.- This is a major breaking change as planned in #108 (Yes it's happening now)
- All the
Newtonsoft.Json.Linqpublic APIs are completely replaced bySystem.Text.Json.NodesAPI. - While most of the regression tests have passed (except those running against FANDOM/Wikia due to "readonly" error), there could be still bugs needing to be smoothed out. Expect
Exceptions to occur.- WCL Flow package is only migrated on a can-compile basis - StructuredDiscussion already has been deprecated.
- Meanwhile on dman Wiki
readonly: The wiki is currently in read-only mode. Our main datacenter is down, you are accessing our backup datacenter. We are working to fix the problem.
- We are going to eventually upgrade the
System.Text.Jsonpackage to v9.0 after it enters stable release phase, because WCL Wikibase package depends on theJsonSerializer.DeserializeAsyncEnumerable[TValue]API.- This means for now, WCL Wikibase package will be aggressively referencing the v9.0.0-preview.7 package.
- You can still consume WCL packages on .NET 6.0. Referencing WCL packages will automatically reference
System.Text.Jsonv8.0 NuGet package, though.
- Converted all of the JSON contract object to leverage the new
initaccessor of the property andrequiredkeyword. Also marked them all assealed. - Added
MediaWikiReadOnlyExceptionto map thereadonlyMediaWiki API error code.
While we are still in the process of plugging the latest int package in various projects, If you are experiencing any difficulty adopting this breaking change, feel free to open an issue. Thanks!
v0.9.0-int.0
- Dropped support for .NET Standard 2.1. Now WCL is targeting .NET 6.0/8.0. (#108)
- Revision IDs need to be
longeverywhere. (#113 by @mormegil-cz )
v0.8.0
v0.8.0-int.9
v0.8.0-int.8
- Added .NET 8.0 as target SDK. We are going to remove support for .NET Standard 2.1 in the next pre-release. (#108)
- Added
FilesGenerator(#101 by @ashotjanibekyan) - Added
MyWatchlistGenerator(#102 by @ashotjanibekyan) - Added
PagesWithPropGenerator(#103 by @ashotjanibekyan) - Introduced
WikiPage.EditAsync/EditSectionAsync/AddSectionAsyncfor Wiki page editing with more control (#99)- Deprecated the property setter of
WikiPage.Contentin favor ofWikiPage.EditAsync.
- Deprecated the property setter of
Full Changelog: v0.8.0-int.7...v0.8.0-int.8
v0.8.0-int.7
- Add
tokenparameter inScribuntoConsole.InvokeApiAsynccalls since MW 1.40.0-wmf.5 (wikimedia/mediawiki-extensions-Scribunto@0f25852). (6c2e2c0) - Bug fix:
WbTime.FromDateTime/FromDateTimeOffsetincorrectly loads the DateTime(Offset) components. (#98)
v0.8.0-int.6
- Bug fix:
QueryPageGenerator.EnumItemsAsynchaven't ever been working before. (#92)QueryPageGeneratornow yields a sequence ofQueryPageResultIteminstead ofWikiPageStub.
- Bug fix: False-positive warnings on interwiki prefix casing violation "Interwiki prefix must be all lower-case".