feat(wxapi): 新增小说小程序作品管理相关接口相关接口
Some checks are pending
CodeQL / Analyze (csharp) (push) Waiting to run
CodeLint / Lint (push) Waiting to run

This commit is contained in:
Fu Diwei 2025-04-29 17:23:25 +08:00
parent 530735a7ec
commit a2188d28b3
75 changed files with 2350 additions and 2 deletions

View File

@ -0,0 +1,406 @@
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Flurl;
using Flurl.Http;
namespace SKIT.FlurlHttpClient.Wechat.Api
{
public static class WechatApiClientExecuteWxaBookExtensions
{
/// <summary>
/// <para>异步调用 [POST] /wxa/book/createbook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E5%88%9B%E5%BB%BA%E4%BD%9C%E5%93%81 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookCreateBookResponse> ExecuteWxaBookCreateBookAsync(this WechatApiClient client, Models.WxaBookCreateBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "createbook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookCreateBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/updatebook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E7%BC%96%E8%BE%91%E4%BD%9C%E5%93%81 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookUpdateBookResponse> ExecuteWxaBookUpdateBookAsync(this WechatApiClient client, Models.WxaBookUpdateBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "updatebook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookUpdateBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/deletebook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E5%88%A0%E9%99%A4%E4%BD%9C%E5%93%81 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookDeleteBookResponse> ExecuteWxaBookDeleteBookAsync(this WechatApiClient client, Models.WxaBookDeleteBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "deletebook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookDeleteBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/listbook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%8E%B7%E5%8F%96%E4%BD%9C%E5%93%81%E5%88%97%E8%A1%A8 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookListBookResponse> ExecuteWxaBookListBookAsync(this WechatApiClient client, Models.WxaBookListBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "listbook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookListBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/getbook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%8E%B7%E5%8F%96%E4%BD%9C%E5%93%81%E4%BF%A1%E6%81%AF ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookGetBookResponse> ExecuteWxaBookGetBookAsync(this WechatApiClient client, Models.WxaBookGetBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "getbook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookGetBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/createchapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E4%B8%8A%E4%BC%A0%E7%AB%A0%E8%8A%82 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookCreateChapterResponse> ExecuteWxaBookCreateChapterAsync(this WechatApiClient client, Models.WxaBookCreateChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "createchapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookCreateChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/batchcreatechapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E6%89%B9%E9%87%8F%E4%B8%8A%E4%BC%A0%E7%AB%A0%E8%8A%82 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookBatchCreateChapterResponse> ExecuteWxaBookBatchCreateChapterAsync(this WechatApiClient client, Models.WxaBookBatchCreateChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "batchcreatechapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookBatchCreateChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/deletechapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E5%88%A0%E9%99%A4%E7%AB%A0%E8%8A%82 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookDeleteChapterResponse> ExecuteWxaBookDeleteChapterAsync(this WechatApiClient client, Models.WxaBookDeleteChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "deletechapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookDeleteChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/replacechapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E6%9B%BF%E6%8D%A2%E7%AB%A0%E8%8A%82 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookReplaceChapterResponse> ExecuteWxaBookReplaceChapterAsync(this WechatApiClient client, Models.WxaBookReplaceChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "replacechapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookReplaceChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/listchapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%8E%B7%E5%8F%96%E7%AB%A0%E8%8A%82%E5%88%97%E8%A1%A8 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookListChapterResponse> ExecuteWxaBookListChapterAsync(this WechatApiClient client, Models.WxaBookListChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "listchapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookListChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/getchapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%8E%B7%E5%8F%96%E7%AB%A0%E8%8A%82%E4%BF%A1%E6%81%AF ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookGetChapterResponse> ExecuteWxaBookGetChapterAsync(this WechatApiClient client, Models.WxaBookGetChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "getchapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookGetChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/reorderchapter 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%B0%83%E6%95%B4%E7%AB%A0%E8%8A%82%E9%A1%BA%E5%BA%8F ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookReorderChapterResponse> ExecuteWxaBookReorderChapterAsync(this WechatApiClient client, Models.WxaBookReorderChapterRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "reorderchapter")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookReorderChapterResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/updatechapterseq 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%B0%83%E6%95%B4%E7%AB%A0%E8%8A%82%E7%9B%B8%E5%AF%B9%E9%A1%BA%E5%BA%8F ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookUpdateChapterSequenceResponse> ExecuteWxaBookUpdateChapterSequenceAsync(this WechatApiClient client, Models.WxaBookUpdateChapterSequenceRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "updatechapterseq")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookUpdateChapterSequenceResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/auditbook 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E4%BD%9C%E5%93%81%E6%8F%90%E5%AE%A1 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookAuditBookResponse> ExecuteWxaBookAuditBookAsync(this WechatApiClient client, Models.WxaBookAuditBookRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "auditbook")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookAuditBookResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#region Auth
/// <summary>
/// <para>异步调用 [POST] /wxa/book/addbookauth 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E6%96%B0%E5%A2%9E%E8%B4%A6%E5%8F%B7-%E5%B0%8F%E8%AF%B4%E6%8E%88%E6%9D%83 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookAddBookAuthResponse> ExecuteWxaBookAddBookAuthAsync(this WechatApiClient client, Models.WxaBookAddBookAuthRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "addbookauth")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookAddBookAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/querybookauth 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E6%9F%A5%E7%9C%8B%E4%B8%BB%E6%8E%88%E6%9D%83%E5%85%B3%E7%B3%BB%E5%88%97%E8%A1%A8 ]]> <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E6%9F%A5%E7%9C%8B%E8%A2%AB%E6%8E%88%E6%9D%83%E5%85%B3%E7%B3%BB%E5%88%97%E8%A1%A8 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookQueryBookAuthResponse> ExecuteWxaBookQueryBookAuthAsync(this WechatApiClient client, Models.WxaBookQueryBookAuthRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "querybookauth")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookQueryBookAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/book/delbookauth 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E5%88%A0%E9%99%A4%E6%8C%87%E5%AE%9A%E7%9A%84%E6%8E%88%E6%9D%83%E5%85%B3%E7%B3%BB ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBookDeleteBookAuthResponse> ExecuteWxaBookDeleteBookAuthAsync(this WechatApiClient client, Models.WxaBookDeleteBookAuthRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "book", "delbookauth")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBookDeleteBookAuthResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
}
}

View File

@ -840,6 +840,77 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
}
#endregion
#region NovelReader
/// <summary>
/// <para>异步调用 [POST] /wxa/business/novelreader/setpreviewsetting 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E9%A2%84%E8%A7%88%E8%AE%BE%E7%BD%AE%E4%BF%AE%E6%94%B9 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBusinessNovelReaderSetPreviewSettingsResponse> ExecuteWxaBusinessNovelReaderSetPreviewSettingsAsync(this WechatApiClient client, Models.WxaBusinessNovelReaderSetPreviewSettingsRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "business", "novelreader", "setpreviewsetting")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBusinessNovelReaderSetPreviewSettingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/business/novelreader/getpreviewsetting 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E9%A2%84%E8%A7%88%E8%AE%BE%E7%BD%AE%E8%8E%B7%E5%8F%96 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBusinessNovelReaderGetPreviewSettingsResponse> ExecuteWxaBusinessNovelReaderGetPreviewSettingsAsync(this WechatApiClient client, Models.WxaBusinessNovelReaderGetPreviewSettingsRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "business", "novelreader", "getpreviewsetting")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBusinessNovelReaderGetPreviewSettingsResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/business/novelreader/setrecmdnovel 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/novel-api.html#%E8%AF%BB%E5%90%8E%E6%8E%A8%E8%8D%90 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaBusinessNovelReaderSetRecommendNovelResponse> ExecuteWxaBusinessNovelReaderSetRecommendNovelAsync(this WechatApiClient client, Models.WxaBusinessNovelReaderSetRecommendNovelRequest request, CancellationToken cancellationToken = default)
{
if (client is null) throw new ArgumentNullException(nameof(client));
if (request is null) throw new ArgumentNullException(nameof(request));
IFlurlRequest flurlReq = client
.CreateFlurlRequest(request, HttpMethod.Post, "wxa", "business", "novelreader", "setrecmdnovel")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendFlurlRequestAsJsonAsync<Models.WxaBusinessNovelReaderSetRecommendNovelResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
}
#endregion
#region Runtime
/// <summary>
/// <para>异步调用 [POST] /wxa/business/runtime/adddevice 接口。</para>

View File

@ -13,7 +13,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
/// <para>异步调用 [POST] /wxadrama/setplayerdramarecmdswitch 接口。</para>
/// <para>
/// REF: <br/>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/videoplayer.html ]]>
/// <![CDATA[ https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/videoplayer.html#%E6%92%AD%E6%94%BE%E5%8E%9F%E5%A7%8B%E8%A7%86%E9%A2%91 ]]>
/// </para>
/// </summary>
/// <param name="client"></param>

View File

@ -0,0 +1,44 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/addbookauth 接口的请求。</para>
/// </summary>
public class WxaBookAddBookAuthRequest : WechatApiRequest, IInferable<WxaBookAddBookAuthRequest, WxaBookAddBookAuthResponse>
{
public static class Types
{
public class Book
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置被授权账号 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("grantee_appid")]
[System.Text.Json.Serialization.JsonPropertyName("grantee_appid")]
public string GranteeAppId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置授权到期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long? ExpireTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置作品列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("books")]
[System.Text.Json.Serialization.JsonPropertyName("books")]
public IList<Types.Book> BookList { get; set; } = new List<Types.Book>();
}
}

View File

@ -0,0 +1,28 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/addbookauth 接口的响应。</para>
/// </summary>
public class WxaBookAddBookAuthResponse : WechatApiResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("errcode")]
[System.Text.Json.Serialization.JsonPropertyName("errcode")]
public int ErrorCode { get; set; }
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("results")]
[System.Text.Json.Serialization.JsonPropertyName("results")]
public Types.Result[] ResultList { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/delbookauth 接口的请求。</para>
/// </summary>
public class WxaBookDeleteBookAuthRequest : WechatApiRequest, IInferable<WxaBookDeleteBookAuthRequest, WxaBookDeleteBookAuthResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置被授权账号 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("grantee_appid")]
[System.Text.Json.Serialization.JsonPropertyName("grantee_appid")]
public string GranteeAppId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/delbookauth 接口的响应。</para>
/// </summary>
public class WxaBookDeleteBookAuthResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/querybookauth 接口的请求。</para>
/// </summary>
public class WxaBookQueryBookAuthRequest : WechatApiRequest, IInferable<WxaBookQueryBookAuthRequest, WxaBookQueryBookAuthResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string? BookId { get; set; }
/// <summary>
/// 获取或设置是否返回总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_sum")]
[System.Text.Json.Serialization.JsonPropertyName("is_sum")]
public bool? IsNeedTotalCount { get; set; }
/// <summary>
/// 获取或设置查询类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("type")]
[System.Text.Json.Serialization.JsonPropertyName("type")]
public int? Type { get; set; }
/// <summary>
/// 获取或设置分页起始位置。
/// </summary>
[Newtonsoft.Json.JsonProperty("offset")]
[System.Text.Json.Serialization.JsonPropertyName("offset")]
public int? Offset { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("count")]
[System.Text.Json.Serialization.JsonPropertyName("count")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,56 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/querybookauth 接口的响应。</para>
/// </summary>
public class WxaBookQueryBookAuthResponse : WechatApiResponse
{
public static class Types
{
public class Result
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = default!;
/// <summary>
/// 获取或设置主授权账号 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("grantor_appid")]
[System.Text.Json.Serialization.JsonPropertyName("grantor_appid")]
public string GrantorAppId { get; set; } = default!;
/// <summary>
/// 获取或设置被授权账号 AppId。
/// </summary>
[Newtonsoft.Json.JsonProperty("grantee_appid")]
[System.Text.Json.Serialization.JsonPropertyName("grantee_appid")]
public string GranteeAppId { get; set; } = default!;
/// <summary>
/// 获取或设置授权到期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long? ExpireTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置结果列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("results")]
[System.Text.Json.Serialization.JsonPropertyName("results")]
public Types.Result[] ResultList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("sum")]
[System.Text.Json.Serialization.JsonPropertyName("sum")]
public int? TotalCount { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/auditbook 接口的请求。</para>
/// </summary>
public class WxaBookAuditBookRequest : WechatApiRequest, IInferable<WxaBookAuditBookRequest, WxaBookAuditBookResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/auditbook 接口的响应。</para>
/// </summary>
public class WxaBookAuditBookResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,31 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/batchcreatechapter 接口的请求。</para>
/// </summary>
public class WxaBookBatchCreateChapterRequest : WechatApiRequest, IInferable<WxaBookBatchCreateChapterRequest, WxaBookBatchCreateChapterResponse>
{
public static class Types
{
public class Chapter : WxaBookCreateChapterRequest.Types.Chapter
{
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_list")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_list")]
public IList<Types.Chapter> ChapterList { get; set; } = new List<Types.Chapter>();
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/batchcreatechapter 接口的响应。</para>
/// </summary>
public class WxaBookBatchCreateChapterResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置章节 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id_list")]
public string[] ChapterIdList { get; set; } = default!;
/// <summary>
/// 获取或设置冲突的提供方章节唯一标识列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("conflict_original_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("conflict_original_id_list")]
public string[]? ConflictOriginalIdList { get; set; }
}
}

View File

@ -0,0 +1,101 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/createbook 接口的请求。</para>
/// </summary>
public class WxaBookCreateBookRequest : WechatApiRequest, IInferable<WxaBookCreateBookRequest, WxaBookCreateBookResponse>
{
/// <summary>
/// 获取或设置作品名。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 获取或设置作品简介。
/// </summary>
[Newtonsoft.Json.JsonProperty("intro")]
[System.Text.Json.Serialization.JsonPropertyName("intro")]
public string Introduction { get; set; } = string.Empty;
/// <summary>
/// 获取或设置封面图 MediaId。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_media_id")]
[System.Text.Json.Serialization.JsonPropertyName("cover_media_id")]
public string CoverMediaId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置作者名。
/// </summary>
[Newtonsoft.Json.JsonProperty("author")]
[System.Text.Json.Serialization.JsonPropertyName("author")]
public string Author { get; set; } = string.Empty;
/// <summary>
/// 获取或设置一级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("first_category_id")]
public int FirstCategoryId { get; set; }
/// <summary>
/// 获取或设置二级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("second_category_id")]
public int SecondCategoryId { get; set; }
/// <summary>
/// 获取或设置三级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("third_category_id")]
public int ThirdCategoryId { get; set; }
/// <summary>
/// 获取或设置完结状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("complete_status")]
[System.Text.Json.Serialization.JsonPropertyName("complete_status")]
public int CompleteStatus { get; set; }
/// <summary>
/// 获取或设置提供方作品唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
/// <summary>
/// 获取或设置章节排序方式。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_order_method")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_order_method")]
public int? ChapterOrderMethod { get; set; }
/// <summary>
/// 获取或设置自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("custom_info")]
public string? CustomInfo { get; set; }
/// <summary>
/// 获取或设置题材关键词列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("keyword_list")]
[System.Text.Json.Serialization.JsonPropertyName("keyword_list")]
public IList<string>? KeywordList { get; set; }
/// <summary>
/// 获取或设置精彩片段。
/// </summary>
[Newtonsoft.Json.JsonProperty("awesome_paragraph")]
[System.Text.Json.Serialization.JsonPropertyName("awesome_paragraph")]
public string? AwesomeParagraph { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/createbook 接口的响应。</para>
/// </summary>
public class WxaBookCreateBookResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = default!;
}
}

View File

@ -0,0 +1,63 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/createchapter 接口的请求。</para>
/// </summary>
public class WxaBookCreateChapterRequest : WechatApiRequest, IInferable<WxaBookCreateChapterRequest, WxaBookCreateChapterResponse>
{
public static class Types
{
public class Chapter
{
/// <summary>
/// 获取或设置章节标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_title")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("content")]
[System.Text.Json.Serialization.JsonPropertyName("content")]
public string Content { get; set; } = string.Empty;
/// <summary>
/// 获取或设置提供方章节唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
/// <summary>
/// 获取或设置章节相对顺序。
/// </summary>
[Newtonsoft.Json.JsonProperty("seq")]
[System.Text.Json.Serialization.JsonPropertyName("seq")]
public int? Sequence { get; set; }
/// <summary>
/// 获取或设置自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("custom_info")]
public string? CustomInfo { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter")]
[System.Text.Json.Serialization.JsonPropertyName("chapter")]
public Types.Chapter Chapter { get; set; } = new Types.Chapter();
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/createchapter 接口的响应。</para>
/// </summary>
public class WxaBookCreateChapterResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = default!;
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/deletebook 接口的请求。</para>
/// </summary>
public class WxaBookDeleteBookRequest : WechatApiRequest, IInferable<WxaBookDeleteBookRequest, WxaBookDeleteBookResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/deletebook 接口的响应。</para>
/// </summary>
public class WxaBookDeleteBookResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/deletechapter 接口的请求。</para>
/// </summary>
public class WxaBookDeleteChapterRequest : WechatApiRequest, IInferable<WxaBookDeleteChapterRequest, WxaBookDeleteChapterResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/deletechapter 接口的响应。</para>
/// </summary>
public class WxaBookDeleteChapterResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/getbook 接口的请求。</para>
/// </summary>
public class WxaBookGetBookRequest : WechatApiRequest, IInferable<WxaBookGetBookRequest, WxaBookGetBookResponse>
{
/// <summary>
/// 获取或设置是否返回编辑版信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_edited_data")]
[System.Text.Json.Serialization.JsonPropertyName("need_edited_data")]
public bool? IsNeedEditedData { get; set; }
/// <summary>
/// 获取或设置作品 ID。与字段 <see cref="OriginalId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string? BookId { get; set; }
/// <summary>
/// 获取或设置提供方作品唯一标识。与字段 <see cref="BookId"/> 二选一。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
}
}

View File

@ -0,0 +1,76 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/getbook 接口的响应。</para>
/// </summary>
public class WxaBookGetBookResponse : WechatApiResponse
{
public static class Types
{
public class Book : WxaBookListBookResponse.Types.Book
{
public static new class Types
{
public class Volumn
{
/// <summary>
/// 获取或设置分卷名。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_title")]
[System.Text.Json.Serialization.JsonPropertyName("volume_title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置分卷起始章节下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_index")]
[System.Text.Json.Serialization.JsonPropertyName("start_index")]
public int StartIndex { get; set; }
/// <summary>
/// 获取或设置分卷截止章节下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_index")]
[System.Text.Json.Serialization.JsonPropertyName("end_index")]
public int EndIndex { get; set; }
}
}
/// <summary>
/// 获取或设置一级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_category_name")]
[System.Text.Json.Serialization.JsonPropertyName("first_category_name")]
public string FirstCategoryName { get; set; } = default!;
/// <summary>
/// 获取或设置二级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_category_name")]
[System.Text.Json.Serialization.JsonPropertyName("second_category_name")]
public string SecondCategoryName { get; set; } = default!;
/// <summary>
/// 获取或设置三级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_category_name")]
[System.Text.Json.Serialization.JsonPropertyName("third_category_name")]
public string ThirdCategoryName { get; set; } = default!;
/// <summary>
/// 获取或设置分卷列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_list")]
[System.Text.Json.Serialization.JsonPropertyName("volume_list")]
public Types.Volumn[] VolumnList { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置作品信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("book")]
[System.Text.Json.Serialization.JsonPropertyName("book")]
public Types.Book Book { get; set; } = default!;
}
}

View File

@ -0,0 +1,29 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/getchapter 接口的请求。</para>
/// </summary>
public class WxaBookGetChapterRequest : WechatApiRequest, IInferable<WxaBookGetChapterRequest, WxaBookGetChapterResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置是否返回编辑版信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_edited_data")]
[System.Text.Json.Serialization.JsonPropertyName("need_edited_data")]
public bool? IsNeedEditedData { get; set; }
}
}

View File

@ -0,0 +1,35 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/getchapter 接口的响应。</para>
/// </summary>
public class WxaBookGetChapterResponse : WechatApiResponse
{
public static class Types
{
public class Chapter : WxaBookListChapterResponse.Types.Chapter
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = default!;
/// <summary>
/// 获取或设置章节内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("content")]
[System.Text.Json.Serialization.JsonPropertyName("content")]
public string Content { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置章节信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter")]
[System.Text.Json.Serialization.JsonPropertyName("chapter")]
public Types.Chapter Chapter { get; set; } = default!;
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/listbook 接口的请求。</para>
/// </summary>
public class WxaBookListBookRequest : WechatApiRequest, IInferable<WxaBookListBookRequest, WxaBookListBookResponse>
{
/// <summary>
/// 获取或设置是否返回编辑版信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_edited_data")]
[System.Text.Json.Serialization.JsonPropertyName("need_edited_data")]
public bool? IsNeedEditedData { get; set; }
/// <summary>
/// 获取或设置分页起始 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("last_id")]
[System.Text.Json.Serialization.JsonPropertyName("last_id")]
public long? LastId { get; set; }
/// <summary>
/// 获取或设置分页起始位置。
/// </summary>
[Newtonsoft.Json.JsonProperty("offset")]
[System.Text.Json.Serialization.JsonPropertyName("offset")]
public int? Offset { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,202 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/listbook 接口的响应。</para>
/// </summary>
public class WxaBookListBookResponse : WechatApiResponse
{
public static class Types
{
public class Book
{
public static class Types
{
public class AuditInfo
{
/// <summary>
/// 获取或设置审核状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_status")]
[System.Text.Json.Serialization.JsonPropertyName("audit_status")]
public int AuditStatus { get; set; }
/// <summary>
/// 获取或设置提审时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置审核原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason")]
[System.Text.Json.Serialization.JsonPropertyName("reason")]
public string? Reason { get; set; }
/// <summary>
/// 获取或设置修改建议。
/// </summary>
[Newtonsoft.Json.JsonProperty("suggestion")]
[System.Text.Json.Serialization.JsonPropertyName("suggestion")]
public string? Suggestion { get; set; }
/// <summary>
/// 获取或设置审核时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_time")]
[System.Text.Json.Serialization.JsonPropertyName("audit_time")]
public long? AuditTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = default!;
/// <summary>
/// 获取或设置作品名。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置作品简介。
/// </summary>
[Newtonsoft.Json.JsonProperty("intro")]
[System.Text.Json.Serialization.JsonPropertyName("intro")]
public string Introduction { get; set; } = default!;
/// <summary>
/// 获取或设置封面图 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_url")]
[System.Text.Json.Serialization.JsonPropertyName("cover_url")]
public string CoverUrl { get; set; } = default!;
/// <summary>
/// 获取或设置作者名。
/// </summary>
[Newtonsoft.Json.JsonProperty("author")]
[System.Text.Json.Serialization.JsonPropertyName("author")]
public string Author { get; set; } = default!;
/// <summary>
/// 获取或设置一级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("first_category_id")]
public int FirstCategoryId { get; set; }
/// <summary>
/// 获取或设置二级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("second_category_id")]
public int SecondCategoryId { get; set; }
/// <summary>
/// 获取或设置三级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("third_category_id")]
public int ThirdCategoryId { get; set; }
/// <summary>
/// 获取或设置完结状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("complete_status")]
[System.Text.Json.Serialization.JsonPropertyName("complete_status")]
public int CompleteStatus { get; set; }
/// <summary>
/// 获取或设置提供方作品唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
/// <summary>
/// 获取或设置上传场景。
/// </summary>
[Newtonsoft.Json.JsonProperty("upload_scene")]
[System.Text.Json.Serialization.JsonPropertyName("upload_scene")]
public int UploadScene { get; set; }
/// <summary>
/// 获取或设置章节数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_cnt")]
public int ChapterCount { get; set; }
/// <summary>
/// 获取或设置分卷数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("volume_cnt")]
public int VolumeCount { get; set; }
/// <summary>
/// 获取或设置作品总字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_word_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("total_word_cnt")]
public int TotalWordCount { get; set; }
/// <summary>
/// 获取或设置章节排序方式。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_order_method")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_order_method")]
public int ChapterOrderMethod { get; set; }
/// <summary>
/// 获取或设置自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("custom_info")]
public string? CustomInfo { get; set; }
/// <summary>
/// 获取或设置审核信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_info")]
[System.Text.Json.Serialization.JsonPropertyName("audit_info")]
public Types.AuditInfo? AuditInfo { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置作品列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_list")]
[System.Text.Json.Serialization.JsonPropertyName("book_list")]
public Types.Book[] BookList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("total_cnt")]
public int TotalCount { get; set; }
/// <summary>
/// 获取或设置分页 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("last_id")]
[System.Text.Json.Serialization.JsonPropertyName("last_id")]
public long? LastId { get; set; }
}
}

View File

@ -0,0 +1,43 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/listchapter 接口的请求。</para>
/// </summary>
public class WxaBookListChapterRequest : WechatApiRequest, IInferable<WxaBookListChapterRequest, WxaBookListChapterResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置是否返回编辑版信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_edited_data")]
[System.Text.Json.Serialization.JsonPropertyName("need_edited_data")]
public bool? IsNeedEditedData { get; set; }
/// <summary>
/// 获取或设置分卷下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_index")]
[System.Text.Json.Serialization.JsonPropertyName("volume_index")]
public int? VolumeIndex { get; set; }
/// <summary>
/// 获取或设置分页起始位置。
/// </summary>
[Newtonsoft.Json.JsonProperty("offset")]
[System.Text.Json.Serialization.JsonPropertyName("offset")]
public int? Offset { get; set; }
/// <summary>
/// 获取或设置分页每页数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("limit")]
[System.Text.Json.Serialization.JsonPropertyName("limit")]
public int? Limit { get; set; }
}
}

View File

@ -0,0 +1,98 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/listchapter 接口的响应。</para>
/// </summary>
public class WxaBookListChapterResponse : WechatApiResponse
{
public static class Types
{
public class Chapter
{
public static class Types
{
public class AuditInfo : WxaBookListBookResponse.Types.Book.Types.AuditInfo
{
}
}
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = default!;
/// <summary>
/// 获取或设置章节标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_title")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置所属分卷下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_index")]
[System.Text.Json.Serialization.JsonPropertyName("volume_index")]
public int VolumeIndex { get; set; }
/// <summary>
/// 获取或设置提供方章节唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
/// <summary>
/// 获取或设置字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("word_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("word_cnt")]
public int WordCount { get; set; }
/// <summary>
/// 获取或设置章节相对顺序。
/// </summary>
[Newtonsoft.Json.JsonProperty("seq")]
[System.Text.Json.Serialization.JsonPropertyName("seq")]
public int? Sequence { get; set; }
/// <summary>
/// 获取或设置自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("custom_info")]
public string? CustomInfo { get; set; }
/// <summary>
/// 获取或设置审核信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_info")]
[System.Text.Json.Serialization.JsonPropertyName("audit_info")]
public Types.AuditInfo? AuditInfo { get; set; }
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置章节列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_list")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_list")]
public Types.Chapter[] ChapterList { get; set; } = default!;
/// <summary>
/// 获取或设置总数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("total_cnt")]
[System.Text.Json.Serialization.JsonPropertyName("total_cnt")]
public int TotalCount { get; set; }
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/reorderchapter 接口的请求。</para>
/// </summary>
public class WxaBookReorderChapterRequest : WechatApiRequest, IInferable<WxaBookReorderChapterRequest, WxaBookReorderChapterResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置目标章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("target_chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("target_chapter_id")]
public string TargetChapterId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置排序操作类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("operation")]
[System.Text.Json.Serialization.JsonPropertyName("operation")]
public int Operation { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/reorderchapter 接口的响应。</para>
/// </summary>
public class WxaBookReorderChapterResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/replacechapter 接口的请求。</para>
/// </summary>
public class WxaBookReplaceChapterRequest : WechatApiRequest, IInferable<WxaBookReplaceChapterRequest, WxaBookReplaceChapterResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节标题。
/// </summary>
[Newtonsoft.Json.JsonProperty("new_chapter_title")]
[System.Text.Json.Serialization.JsonPropertyName("new_chapter_title")]
public string ChapterTitle { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("new_content")]
[System.Text.Json.Serialization.JsonPropertyName("new_content")]
public string ChapterContent { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/replacechapter 接口的响应。</para>
/// </summary>
public class WxaBookReplaceChapterResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置新章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("new_chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("new_chapter_id")]
public string ChapterId { get; set; } = default!;
}
}

View File

@ -0,0 +1,163 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/updatebook 接口的请求。</para>
/// </summary>
public class WxaBookUpdateBookRequest : WechatApiRequest, IInferable<WxaBookUpdateBookRequest, WxaBookUpdateBookResponse>
{
public static class Types
{
public class Volume
{
/// <summary>
/// 获取或设置分卷名。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_title")]
[System.Text.Json.Serialization.JsonPropertyName("volume_title")]
public string Title { get; set; } = string.Empty;
/// <summary>
/// 获取或设置分卷起始章节下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_index")]
[System.Text.Json.Serialization.JsonPropertyName("start_index")]
public int StartIndex { get; set; }
/// <summary>
/// 获取或设置分卷截止章节下标。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_index")]
[System.Text.Json.Serialization.JsonPropertyName("end_index")]
public int EndIndex { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置作品名。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string? Title { get; set; }
/// <summary>
/// 获取或设置作品简介。
/// </summary>
[Newtonsoft.Json.JsonProperty("intro")]
[System.Text.Json.Serialization.JsonPropertyName("intro")]
public string? Introduction { get; set; }
/// <summary>
/// 获取或设置封面图 MediaId。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_media_id")]
[System.Text.Json.Serialization.JsonPropertyName("cover_media_id")]
public string? CoverMediaId { get; set; }
/// <summary>
/// 获取或设置作者名。
/// </summary>
[Newtonsoft.Json.JsonProperty("author")]
[System.Text.Json.Serialization.JsonPropertyName("author")]
public string? Author { get; set; }
/// <summary>
/// 获取或设置一级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("first_category_id")]
public int? FirstCategoryId { get; set; }
/// <summary>
/// 获取或设置二级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("second_category_id")]
public int? SecondCategoryId { get; set; }
/// <summary>
/// 获取或设置三级类型 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("third_category_id")]
[System.Text.Json.Serialization.JsonPropertyName("third_category_id")]
public int? ThirdCategoryId { get; set; }
/// <summary>
/// 获取或设置完结状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("complete_status")]
[System.Text.Json.Serialization.JsonPropertyName("complete_status")]
public int? CompleteStatus { get; set; }
/// <summary>
/// 获取或设置提供方作品唯一标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_id")]
[System.Text.Json.Serialization.JsonPropertyName("original_id")]
public string? OriginalId { get; set; }
/// <summary>
/// 获取或设置章节 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id_list")]
public IList<string>? ChapterIdList { get; set; }
/// <summary>
/// 获取或设置是否需要分卷。
/// </summary>
[Newtonsoft.Json.JsonProperty("need_volume")]
[System.Text.Json.Serialization.JsonPropertyName("need_volume")]
public bool? IsNeedVolume { get; set; }
/// <summary>
/// 获取或设置分卷列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("volume_list")]
[System.Text.Json.Serialization.JsonPropertyName("volume_list")]
public IList<Types.Volume>? VolumeList { get; set; }
/// <summary>
/// 获取或设置章节排序方式。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_order_method")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_order_method")]
public int? ChapterOrderMethod { get; set; }
/// <summary>
/// 获取或设置自定义信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("custom_info")]
[System.Text.Json.Serialization.JsonPropertyName("custom_info")]
public string? CustomInfo { get; set; }
/// <summary>
/// 获取或设置是否更新题材关键词。
/// </summary>
[Newtonsoft.Json.JsonProperty("update_keyword")]
[System.Text.Json.Serialization.JsonPropertyName("update_keyword")]
public bool? IsUpdateKeyword { get; set; }
/// <summary>
/// 获取或设置题材关键词列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("keyword_list")]
[System.Text.Json.Serialization.JsonPropertyName("keyword_list")]
public IList<string>? KeywordList { get; set; }
/// <summary>
/// 获取或设置精彩片段。
/// </summary>
[Newtonsoft.Json.JsonProperty("awesome_paragraph")]
[System.Text.Json.Serialization.JsonPropertyName("awesome_paragraph")]
public string? AwesomeParagraph { get; set; }
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/updatebook 接口的响应。</para>
/// </summary>
public class WxaBookUpdateBookResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,44 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/updatechapterseq 接口的请求。</para>
/// </summary>
public class WxaBookUpdateChapterSequenceRequest : WechatApiRequest, IInferable<WxaBookUpdateChapterSequenceRequest, WxaBookUpdateChapterSequenceResponse>
{
public static class Types
{
public class Chapter
{
/// <summary>
/// 获取或设置章节 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_id")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_id")]
public string ChapterId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节相对顺序。
/// </summary>
[Newtonsoft.Json.JsonProperty("seq")]
[System.Text.Json.Serialization.JsonPropertyName("seq")]
public int Sequence { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置章节列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_seq_list")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_seq_list")]
public IList<Types.Chapter> ChapterIdList { get; set; } = new List<Types.Chapter>();
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/book/updatechapterseq 接口的响应。</para>
/// </summary>
public class WxaBookUpdateChapterSequenceResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/getpreviewsetting 接口的请求。</para>
/// </summary>
public class WxaBusinessNovelReaderGetPreviewSettingsRequest : WechatApiRequest, IInferable<WxaBusinessNovelReaderGetPreviewSettingsRequest, WxaBusinessNovelReaderGetPreviewSettingsResponse>
{
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,62 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/getpreviewsetting 接口的响应。</para>
/// </summary>
public class WxaBusinessNovelReaderGetPreviewSettingsResponse : WechatApiResponse
{
public static class Types
{
public class Settings
{
public static class Types
{
public class Chapter
{
/// <summary>
/// 获取或设置章节索引。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_index")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_index")]
public int ChapterIndex { get; set; }
/// <summary>
/// 获取或设置章节字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("words")]
[System.Text.Json.Serialization.JsonPropertyName("words")]
public int? WordCount { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置默认预览字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("default_words")]
[System.Text.Json.Serialization.JsonPropertyName("default_words")]
public int DefaultWordCount { get; set; }
/// <summary>
/// 获取或设置章节列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_setting")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_setting")]
public Types.Chapter[]? ChapterList { get; set; }
}
}
/// <summary>
/// 获取或设置预览设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("setting")]
[System.Text.Json.Serialization.JsonPropertyName("setting")]
public Types.Settings Settings { get; set; } = default!;
}
}

View File

@ -0,0 +1,64 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/setpreviewsetting 接口的请求。</para>
/// </summary>
public class WxaBusinessNovelReaderSetPreviewSettingsRequest : WechatApiRequest, IInferable<WxaBusinessNovelReaderSetPreviewSettingsRequest, WxaBusinessNovelReaderSetPreviewSettingsResponse>
{
public static class Types
{
public class Settings
{
public static class Types
{
public class Chapter
{
/// <summary>
/// 获取或设置章节索引。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_index")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_index")]
public int ChapterIndex { get; set; }
/// <summary>
/// 获取或设置章节字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("words")]
[System.Text.Json.Serialization.JsonPropertyName("words")]
public int? WordCount { get; set; }
}
}
/// <summary>
/// 获取或设置作品 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id")]
[System.Text.Json.Serialization.JsonPropertyName("book_id")]
public string BookId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置默认预览字数。
/// </summary>
[Newtonsoft.Json.JsonProperty("default_words")]
[System.Text.Json.Serialization.JsonPropertyName("default_words")]
public int DefaultWordCount { get; set; }
/// <summary>
/// 获取或设置章节列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("chapter_setting")]
[System.Text.Json.Serialization.JsonPropertyName("chapter_setting")]
public IList<Types.Chapter>? ChapterList { get; set; }
}
}
/// <summary>
/// 获取或设置预览设置信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("setting")]
[System.Text.Json.Serialization.JsonPropertyName("setting")]
public Types.Settings Settings { get; set; } = new Types.Settings();
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/setpreviewsetting 接口的响应。</para>
/// </summary>
public class WxaBusinessNovelReaderSetPreviewSettingsResponse : WechatApiResponse
{
}
}

View File

@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/setrecmdnovel 接口的请求。</para>
/// </summary>
public class WxaBusinessNovelReaderSetRecommendNovelRequest : WechatApiRequest, IInferable<WxaBusinessNovelReaderSetRecommendNovelRequest, WxaBusinessNovelReaderSetRecommendNovelResponse>
{
/// <summary>
/// 获取或设置推荐小说的类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("recmd_type")]
[System.Text.Json.Serialization.JsonPropertyName("recmd_type")]
public int RecommendType { get; set; }
/// <summary>
/// 获取或设置作品 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("book_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("book_id_list")]
public IList<string> ChapterList { get; set; } = new List<string>();
}
}

View File

@ -0,0 +1,9 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/business/novelreader/setrecmdnovel 接口的响应。</para>
/// </summary>
public class WxaBusinessNovelReaderSetRecommendNovelResponse : WechatApiResponse
{
}
}

View File

@ -7,10 +7,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// 获取或设置推荐位类型。
/// <para>默认值2002</para>
/// </summary>
[Newtonsoft.Json.JsonProperty("entry_type")]
[System.Text.Json.Serialization.JsonPropertyName("entry_type")]
public int EntryType { get; set; }
public int EntryType { get; set; } = 2002;
/// <summary>
/// 获取或设置是否打开。

View File

@ -0,0 +1,14 @@
{
"books": [
{
"book_id": "A1Hcfuuv",
"expire_time": 1704970161,
"grantee_appid": "wx002"
},
{
"book_id": "KqNdTu",
"expire_time": 1705460123,
"grantee_appid": "wx003"
}
]
}

View File

@ -0,0 +1,8 @@
{
"errcode": 0,
"results": [
{
"errcode": 0
}
]
}

View File

@ -0,0 +1,4 @@
{
"book_id": "A1Hcfu",
"grantee_appid": "wx001"
}

View File

@ -0,0 +1,4 @@
{
"count": 20,
"offset": 0
}

View File

@ -0,0 +1,17 @@
{
"errcode": 0,
"results": [
{
"book_id": "A1Hcfu",
"grantor_appid": "wx001",
"grantee_appid": "wx004",
"expire_time": 1801698644
},
{
"book_id": "uvKqNd",
"grantor_appid": "wx001",
"grantee_appid": "wx005",
"expire_time": 1704259146
}
]
}

View File

@ -0,0 +1,3 @@
{
"book_id": "A1b2C3d4"
}

View File

@ -0,0 +1,13 @@
{
"book_id": "A1b2C3d4",
"chapter_list": [
{
"chapter_title": "第一章 香蕉的诞生",
"content": "从前,有一座山……"
},
{
"chapter_title": "第二章 牛奶的诞生",
"content": "一望无际的草原,有一群快乐的奶牛……"
}
]
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"chapter_id_list": [ "abc1234", "abc2345" ]
}

View File

@ -0,0 +1,10 @@
{
"title": "香蕉牛奶",
"intro": "香蕉牛奶的奇幻之旅。",
"cover_media_id": "xxx",
"author": "香蕉和牛奶",
"first_category_id": 10001,
"second_category_id": 10002,
"third_category_id": 10003,
"complete_status": 1
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"book_id": "A1b2C3d4"
}

View File

@ -0,0 +1,7 @@
{
"book_id": "A1b2C3d4",
"chapter": {
"chapter_title": "第一章 香蕉的诞生",
"content": "从前,有一座山……"
}
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"chapter_id": "abc1234"
}

View File

@ -0,0 +1,3 @@
{
"book_id": "A1b2C3d4"
}

View File

@ -0,0 +1,4 @@
{
"book_id": "A1b2C3d4",
"chapter_id": "abc123"
}

View File

@ -0,0 +1,3 @@
{
"book_id": "A1b2C3d4"
}

View File

@ -0,0 +1,26 @@
{
"errcode": 0,
"errmsg": "ok",
"book": {
"book_id": "A1b2C3d4",
"title": "香蕉牛奶",
"intro": "香蕉牛奶的奇幻之旅。",
"cover_url": "https://xxx.jpg",
"author": "香蕉和牛奶",
"first_category_id": 10001,
"first_category_name": "男频",
"second_category_id": 10002,
"second_category_name": "都市",
"third_category_id": 10003,
"third_category_name": "娱乐明星",
"complete_status": 2,
"upload_scene": 1,
"chapter_cnt": 5,
"volume_cnt": 0,
"volume_list": [],
"total_word_cnt": 15234,
"create_time": 1704715412,
"original_id": "",
"chapter_order_method": 0
}
}

View File

@ -0,0 +1,4 @@
{
"book_id": "A1b2C3d4",
"chapter_id": "abc123"
}

View File

@ -0,0 +1,19 @@
{
"errcode": 0,
"errmsg": "ok",
"chapter": {
"book_id": "A1b2C3d4",
"chapter_id": "abc1234",
"chapter_title": "第一章 香蕉的诞生",
"content": "从前,有一座山……",
"word_cnt": 1234,
"create_time": 1704793640,
"audit_info": {
"audit_status": 3,
"create_time": 1705062255,
"audit_time": 1705063255
},
"volume_index": -1,
"original_id": "1234"
}
}

View File

@ -0,0 +1,5 @@
{
"last_id": 0,
"offset": 0,
"limit": 1
}

View File

@ -0,0 +1,26 @@
{
"errcode": 0,
"errmsg": "ok",
"book_list": [
{
"book_id": "A1b2C3d4",
"title": "香蕉牛奶",
"intro": "香蕉牛奶的奇幻之旅。",
"cover_url": "https://xxx.jpg",
"author": "香蕉和牛奶",
"first_category_id": 10001,
"second_category_id": 10002,
"third_category_id": 10003,
"complete_status": 2,
"upload_scene": 1,
"chapter_cnt": 6,
"volume_cnt": 3,
"total_word_cnt": 15234,
"create_time": 1704715412,
"original_id": "",
"chapter_order_method": 0
}
],
"total_cnt": 1,
"last_id": 1
}

View File

@ -0,0 +1,6 @@
{
"book_id": "A1b2C3d4",
"need_edited_data": true,
"limit": 10,
"offset": 0
}

View File

@ -0,0 +1,16 @@
{
"errcode": 0,
"errmsg": "ok",
"chapter_list": [
{
"chapter_id": "abc1234",
"chapter_title": "第一章 x",
"word_cnt": 1234,
"create_time": 1704793640,
"volume_index": -1,
"original_id": "1234",
"seq": 100
}
],
"total_cnt": 1
}

View File

@ -0,0 +1,6 @@
{
"book_id": "A1b2C3d4",
"chapter_id": "abc123",
"target_chapter_id": "qwe456",
"operation": 1
}

View File

@ -0,0 +1,6 @@
{
"book_id": "A1b2C3d4",
"chapter_id": "x1y2z3",
"new_chapter_title": "第一章 香蕉的诞生",
"new_content": "从前,有一座山……"
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"new_chapter_id": "abc1234"
}

View File

@ -0,0 +1,17 @@
{
"book_id": "A1b2C3d4",
"complete_status": 2,
"need_volume": true,
"volume_list": [
{
"volume_title": "第一卷",
"start_index": 0,
"end_index": 2
},
{
"volume_title": "第二卷",
"start_index": 2,
"end_index": 5
}
]
}

View File

@ -0,0 +1,13 @@
{
"book_id": "A1b2C3d4",
"chapter_seq_list": [
{
"chapter_id": "chapter10",
"seq": 100
},
{
"chapter_id": "chapter20",
"seq": 200
}
]
}

View File

@ -0,0 +1,14 @@
{
"errcode": 0,
"errmsg": "ok",
"setting": {
"book_id": "test",
"default_words": 240,
"chapter_setting": [
{
"chapter_index": 1,
"words": 123
}
]
}
}

View File

@ -0,0 +1,12 @@
{
"setting": {
"book_id": "test",
"default_words": 240,
"chapter_setting": [
{
"chapter_index": 1,
"words": 123
}
]
}
}

View File

@ -0,0 +1,7 @@
{
"recmd_type": 1,
"book_id_list": [
"321321",
"abcdef"
]
}