WilderMinds.MetaWeblog 5.1.3

dotnet add package WilderMinds.MetaWeblog --version 5.1.3
NuGet\Install-Package WilderMinds.MetaWeblog -Version 5.1.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WilderMinds.MetaWeblog" Version="5.1.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WilderMinds.MetaWeblog --version 5.1.3
#r "nuget: WilderMinds.MetaWeblog, 5.1.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install WilderMinds.MetaWeblog as a Cake Addin
#addin nuget:?package=WilderMinds.MetaWeblog&version=5.1.3

// Install WilderMinds.MetaWeblog as a Cake Tool
#tool nuget:?package=WilderMinds.MetaWeblog&version=5.1.3

WilderMinds.MetaWeblog

Project Status:

Build NuGet

To install, use the Nuget "WilderMinds.MetaWeblog":

  PM> Install-Package WilderMinds.MetaWeblog

This project is an ASP.NET Core 2.0 Middleware component to support the MetaWeblog API that WordPress and Windows LiveWriter uses to support adding and editing of content in blogs.

To support MetaWeblog, you must first create a class that implements the IMetaWeblogProvider interface:

  public class TestMetaWeblogService : IMetaWeblogProvider
  {
    public async Task<UserInfo> GetUserInfoAsync(string key, string username, string password)
    {
      throw new NotImplementedException();
    }

    public async Task<BlogInfo[]> GetUsersBlogsAsync(string key, string username, string password)
    {
      throw new NotImplementedException();
    }


    public async Task<Post> GetPostAsync(string postid, string username, string password)
    {
      throw new NotImplementedException();
    }

    public async Task<Post[]> GetRecentPostsAsync(string blogid, string username, string password, int numberOfPosts)
    {
      throw new NotImplementedException();
    }


    public async Task<string> AddPostAsync(string blogid, string username, string password, Post post, bool publish)
    {
      throw new NotImplementedException();
    }

    public async Task<bool> DeletePostAsync(string key, string postid, string username, string password, bool publish)
    {
      throw new NotImplementedException();
    }

    public async Task<bool> EditPostAsync(string postid, string username, string password, Post post, bool publish)
    {
      throw new NotImplementedException();
    }


    public async Task<CategoryInfo[]> GetCategoriesAsync(string blogid, string username, string password)
    {
      throw new NotImplementedException();
    }

    public async Task<MediaObjectInfo> NewMediaObjectAsync(string blogid, string username, string password, MediaObject mediaObject)
    {
      throw new NotImplementedException();
    }

    public async Task<int> AddCategoryAsync(string key, string username, string password, NewCategory category)
    {
      throw new NotImplementedException();
    }

    public Task<Tag[]> GetTagsAsync(string blogid, string username, string password)
    {
      throw new NotImplementedException();
    }

    public Page GetPage(string blogid, string pageid, string username, string password)
    {
      throw new NotImplementedException();
    }

    public Page[] GetPages(string blogid, string username, string password, int numPages)
    {
      throw new NotImplementedException();
    }

    public Author[] GetAuthors(string blogid, string username, string password)
    {
      throw new NotImplementedException();
    }

    public string AddPage(string blogid, string username, string password, Page page, bool publish)
    {
      throw new NotImplementedException();
    }

    public bool EditPage(string blogid, string pageid, string username, string password, Page page, bool publish)
    {
      throw new NotImplementedException();
    }

    public bool DeletePage(string blogid, string username, string password, string pageid)
    {
      throw new NotImplementedException();
    }
  }

Once you've implemented the class, you can register the middleware by first adding MetaWeblog in ConfigureServices supplying the name of the implemented service class:

    public void ConfigureServices(IServiceCollection svcs)
    {
      //...

      // Supporting Live Writer (MetaWeblogAPI)
      svcs.AddMetaWeblog<TestMetaWeblogService>();

      //...
    }

Finally, you have to add MetaWeblog in the Configure call to specify the endpoint to listen on when waiting for the MetaWeblog calls:

    public void Configure(IApplicationBuilder app,
                          ILoggerFactory loggerFactory,
                          WilderInitializer initializer)
    {
      //...

      // Support MetaWeblog API
      app.UseMetaWeblog("/livewriter");

      //...
    }

This simply handles the routing to your methods. It does not implement the service at all.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on WilderMinds.MetaWeblog:

Package Downloads
Articulate

A wonderful Blog engine built on Umbraco

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on WilderMinds.MetaWeblog:

Repository Stars
EdiWang/Moonglade
The ASP.NET Core blog system of https://edi.wang, runs on Microsoft Azure
Shazwazza/Articulate
A wonderful Blog engine built on Umbraco
Version Downloads Last updated
5.1.3 566 1/28/2024
5.1.2 74 1/28/2024
5.1.1 4,262 4/3/2023
5.1.0 1,900 12/19/2022
5.0.0 12,707 11/11/2020
3.1.1 776 10/25/2020
3.1.0 613 10/25/2020
2.0.1 18,685 10/18/2019
2.0.0 2,908 4/5/2018
1.2.3 10,743 11/8/2017
1.2.2 7,860 10/19/2017
1.2.1 932 10/13/2017
1.2.0 974 9/21/2017
1.1.0 1,232 6/2/2017
1.0.2 1,955 6/27/2016
1.0.1-rc2 1,070 6/5/2016
1.0.0-rc2 821 6/4/2016
0.4.0-beta 1,031 4/17/2016
0.3.1-beta 836 4/14/2016
0.3.0-beta 794 4/14/2016
0.2.6-beta 786 4/14/2016
0.2.5-beta 812 4/14/2016
0.2.4-beta 797 4/13/2016
0.2.3 1,034 4/13/2016
0.2.2 1,106 4/9/2016
0.2.1-beta 808 4/9/2016
0.1.1-beta 816 3/12/2016
0.1.0-beta 766 3/12/2016
0.0.3-beta 856 3/12/2016
0.0.2-beta 868 2/27/2016
0.0.1-alpha 1,186 2/27/2016