Skip to content

Releases: CXuesong/WikiClientLibrary

v0.6-int4

24 Sep 16:32
Compare
Choose a tag to compare
v0.6-int4 Pre-release
Pre-release

This version has a bug that is fixed in the next pre-release. This version of NuGet package has been unlisted.

If you have any questions or suggestions, feel free to open an issue :-)

New features

  • Added two page generators: BacklinksGenerator and TranscludedInGenerator.
  • MW API requests via WikiSite.GetJsonAsync will automatically attempt to re-fetch tokens on badtoken error. (#21)

Major interface changes

  • Renamed PageGenerator to WikiPageGenerator, and RecentChangesEntry to RecentChangeItem.
  • IWikiClientLoggable.SetLoggerFactory has been replaced with a R/W property IWikiClientLoggable.LoggerFactory.
  • UnauthorizedOperationException is now a subclass of OperationFailedException.
    • Though for certain locally detected authorization failure, UnauthorizedOperationException.ErrorCode will be null.
  • Added WikiRequestMessage class to contain query parameters.
    • This class (WikiFormRequestMessage, to be more exact) unifies application/x-www-form-urlencoded and multipart/form-data, while enables per request configurations in the future, and a better request-tracing experience.
    • WikiClient.GetJsonAsync now only accepts WikiRequestMessage. WikiSite.PostValuesAsync is kept for now but is marked as obsolete. It will be removed in the next pre-release. You need to use WikiSite.GetJsonAsync now. (See usage example.)
    • See the documentation of WikiFormRequestMessage for more information.

Bug fix

  • Fixed incorrect logic for getting patrol token for MW [1.17, 1.20).
  • Fixed some incorrect logging emissions.

Other changes

  • Re-implemented WikiSite.GetToken(s)Async. Still the code might need more simplifications.

Unit tests

  • Use MSTest adapter for xUnit. Now you can execute unit tests with VS.
  • Added xUnit console runner dotnet-xunit. Now you can execute unit tests with dotnet xunit command.
  • Now the unit test is net452/netcoreapp2.0 multi-targeted.
  • Thanks to AArnott, again. Now I have XUnit.SkippableFact to take over the original UnitTestProject1.Utility.Inconclusive method. (I'm also a fan of Nerdbank.FullDuplexStream!)

v0.6-int3

11 Sep 14:59
Compare
Choose a tag to compare
v0.6-int3 Pre-release
Pre-release

New features

  • Assume File: namespace by default in FilePage.UploadAsyncInternal. (#17)

API changes

  • Renamed PageExtensions to WikiPageExtensions.
  • Removed PageGeneratorBase.ActualPagingSize.
  • Use Microsoft.Extensions.Logging for logging; removed WikiClientLibrary.ILogger. (#14)

Bug fix

  • Fixed the letter case of key for PagePropertyCollection.DisplayTitle. (633852b)

v0.6-int2

01 Sep 14:03
Compare
Choose a tag to compare
v0.6-int2 Pre-release
Pre-release

Bug fix

  • Inappropriate usage of Site.Logger may cause NullReferenceException. (#13)
  • Throttler.QueueWorkAsync is not disposed, causing Throttler to hang. (#13)

Others

  • Migrated unit tests to xUnit, with a workaround for T51890 that serializes all the unit tests. (#11)

v0.6-int1

16 Jul 14:45
Compare
Choose a tag to compare
v0.6-int1 Pre-release
Pre-release
  • Renamed Page to WikiPage, and Category to CategoryPage.
  • Renamed Family to WikiFamily.
  • Made DelegateAsyncEnumerable internal.

v0.6-int0

15 Jul 16:27
Compare
Choose a tag to compare
v0.6-int0 Pre-release
Pre-release

Bug fix / New features

  • FilePage.UploadAsync now supports retry. (#8)
  • Moved throttling logic from WikiClient to WikiSite
    • Added a Throttler class responsible for the request queuing.
    • Now throttling supports parallel (edit/move/delete) requests. (#9)
  • Changed ContentSectionInfo.Index from int to string type. (8e1ab82)
    • Titles in transcluded templates may have an index of "T-1", "T-2", etc.
  • Added Page.IsSpecialPage property. (3f52a26)

Major interface changes

Some major API changes (basically changes of names, see #12) are to be involved in v0.6. The changes as listed below are still not complete yet, which will be applied in future pre-releases.

  • Moved classes in WikiClientLibrary root namespace to the following namespaces
    • WikiClientLibrary.Infrastructures
    • WikiClientLibrary.Pages
    • WikiClientLibrary.Sites
  • Renamed WikiClientLibrary.Site to WikiClientLibrary.Sites.WikiSite

0.5.1

29 Jun 02:56
Compare
Choose a tag to compare
  • Fixed NullReferenceException in Site.FetchTokensAsyncCore when all tokens are already cached. (#8)

0.5.0

20 May 06:34
Compare
Choose a tag to compare
  • Add language variant support in Site.Parse methods.
  • Bug fix: ParsedContentInfo.Interlanguages is always null.
  • Do not cache messages in Site.GetMessagesAsync.
  • Site.GetTokensAsync will wait for ongoing token fetching tasks before fetching for tokens.
    • Before this version, two simultaneous GetTokensAsync call for a same token will cause MW API be called twice.

0.5-int2

08 Apr 17:09
Compare
Choose a tag to compare
0.5-int2 Pre-release
Pre-release
  • Add Logger property and virtual CreateSiteAsync method in Family.
  • Add source parameter to ILogger methods.
  • Upgrade the project to VS 2017.

0.5-int1

09 Mar 14:27
Compare
Choose a tag to compare
0.5-int1 Pre-release
Pre-release
  • OpenSearch: Fixed the ArgumentOutOfRangeException when working with Wikia.

0.5-int0

07 Mar 13:10
Compare
Choose a tag to compare
0.5-int0 Pre-release
Pre-release

New features

  • Implemented SearchGenerator (242f086, 6ed35c9)
  • You can construct a WikiClient with HttpClientHandler now. (2ab4683)

Major interface changes

  • Renamed RefreshUserInfoAsync to RefreshAccountInfoAsync .