Releases: CXuesong/WikiClientLibrary
v0.6.2
With the help of SourceLink, now may debug into the source code of WCL from your application in VS 2017. If you meet any problem debugging into WCL, please go to #41 and report it.
- Fixed the incorrect logic in
WikiReadOnlyDictionary.GetBooleanValue
. - Fixed occasional
NullReferenceException
inLogEventItem.ToString
caused byLogEventItem.Params == null
. - Make
LogParameterCollection.SuppressRedirect
compatible with MW 1.19.- Older version of MediaWiki uses
suppressedredirect
rather thansuppressredirect
for property name.
- Older version of MediaWiki uses
v0.6.1
WCL
- Added
RandomPageGenerator
(mw:API:Random) (#43 by @aquilla12 ) - Make
IncludesInterwiki
andBackendName
properties effective inSearchGenerator
. They used to be neglected when executing MW API requests.
v0.6.0
-
Introduced SourceLink support. Ideally, you may debug into the source code of WCL from your application in VS. If you meet any problem debugging into WCL, please go to #41 and report it.
-
An HTML help document has been attached in this release (
WikiClientLibrary-0.6.0.chm
); check it out!
Wikia
-
Fixed
Int32OverflowExeption
caused bySiteVariableData.CacheBuster
. (#39) -
Fixed
WikiClientLibrary.InvalidActionException
caused by the absence ofaction=logout
in MW API of recent Wikia builds. (#40)there is no escape”That's outrageous.“
— Otulissa
Flow
- Fixed
ArgumentException
for Flow boards without pagination inBoard.EnumTopicsAsync
.
v0.6-intX7a
v0.6-intX7
- Removed members that have been marked with
[Obsolete]
. - Multi-targeted
WikiClientLibrary
package to .NET Standard 1.1/2.0. This can eliminate the dependency to System.Reflection.Emit since .NET Standard 2.0.
WCL
- Added predefined
LogTypes
&LogActions
. - Use
WikiReadOnlyDictionary
instead ofdynamic
for RecentChangeItem.LogParams .- You can access
LogParams
in a more convenient way.
- You can access
- Added
LogEventsList
. You may query for MW log events now. - Moved
FileRevision
& upload-related classes fromPages
toFiles
namespace. - Add
ParsingOptions.DisableEditSection
&ParsingOptions.DisableTidy
. You can parse wikitext without generating TOC nor "Edit section" links now.
Wikibase
- Added
Entity.IdsFromSiteLinksAsync
to query for entity IDs from sitelinks. - Fixed
InvalidCastException
when progressive editingEntitySiteLink
.
v0.6-intX6
Wikibase
SerializableEntity.Load
should returnnull
for EOF.SerializableEntity.ToContract
should include claims.- Added
SerializableEntity.LoadAll
/ParseAll
methods.
v0.6-intX5
WCL
The JsonSerializer
returned by MediaWikiHelper.CreateWikiJsonSerializer
now supports serializing the POCO classes into (as well as de-serializing from) well-formed JSON.
Wikibase
- Removed superfluous id parameter in
wbsetclaim
. This used to cause MW API warnings. - Introduced
SerializableEntity
. Now you can work with Wikibase JSON dump offline more easily with this class.
v0.6-intX4
WCL
- When composing the request arguments, WCL now supports using pipe character "|" to concatenate the values, if possible, and use alternative multiple-value separator ("\u001F") for values that has pipe character in the string. (400ac35)
Wikibase
Snak.RawDataValue
is now of typeJObject
instead ofJToken
.- Added handy constructors for
Claim
,Snak
. Added handly factory overloads forWbTime
. - Replaced
WbUri
withSystem.Uri
.- To reduce memory consumption, use
WikibaseUriFactory
for cachingUri
instances.
- To reduce memory consumption, use
- Added some well-konwn URIs, including
WbTime.JulianCalendar
,
WbTime.GregorianCalendar
, andWbQuantity.Unity
. Entity.EditAsync
supports progressive edits. It can break down the sequence ofEntityEditEntry
and perform the edits incrementally. In this mode, more detailed edit summary can be left in the revision history.
v0.6-intX3
- Added
CategoriesGenerator
. You can enumerate a page's categories now.
Wikia
- Moved
WikiaSite
toWikia.Sites
namespace. - Now you can use
WikiaSite.WikiVariables
to retrieve Wikia variables information.
Wikibase
- Added
WikibaseSiteInfo
class. You may now convert entity URI from/to entity ID.
v0.6-intX2
New features
- Added
IWikiPageQueryProvider
for generating parameters foraction=query
requests.- The implementation type
WikiPageQueryProvider
supports more elaborate configurations on which query modules to use, and their respective settings by holding a collection ofIWikiPagePropertyProvider
s.
- The implementation type
- Added
IWikiPagePropertyProvider
for adding/configuring query modules (prop=
) when fetching page information from server- There are some client-side module implementations in
WikiClientLibrary.Pages.Queries.Properties
namespace.
- There are some client-side module implementations in
- Added
WikiPage.GetPropertyGroup<T>()
that allows you to retrieve the extensible group of properties provided byIWikiPagePropertyProvider
. WikiPage.RefreshAsync
now acceptsIWikiPageQueryProvider
as parameter. ( #33 )- Removed
PageQueryOptions.FetchExtract
andPageQueryOptions.FetchGeoCoordinate
. You can useExtractsPropertyProvider
andGeoCoordinatePropertyProvider
to request for these properties when callingWikiPage.RefreshAsync
. WikiPage
supports initialization from MediaWiki page IDs. You can even perform edit/move/delete operations without fetching for page titles beforehand.- Added
CategoriesGenerator
. (v0.6-intX2a)
Major API changes
- Obsoleted
FilePage
andCategoryPage
. Now you can simply useWikiPage
to rule them all. (d4bf001)- Thus removed
TPage
type parameter inIWikiPageGenerator
interface.TPage
will always beWikiPage
.
- Thus removed
- Made
IWikiResponseMessageParser
as a generic-typed interface. (55a96b4) - Renamed
WikiSite.GetJsonAsync
toWikiSite.InvokeMediaWikiApiAsync
. This method now accepts arbitraryIWikiResponseMessageParser
, i.e. the API response can be something other than JSON now. (55a96b4) - Moved
UploadAsync
methods toWikiClientLibrary.Files.WikiSiteExtensions
as extension methods. (d4bf001) - Moved
WikiSite.Parse***Async
methods toWikiClientLibrary.Pages.Parsing.WikiSiteExtensions
as extension methods. (7f81501)- There might be other peripheral methods extracted from
WikiSite
as extension methods in the future.
- There might be other peripheral methods extracted from