feat(wxapi): 新增小程序短剧媒资管理相关接口

This commit is contained in:
Fu Diwei 2023-05-28 21:28:39 +08:00
parent 76f9cb855b
commit 33967033cb
51 changed files with 1599 additions and 1 deletions

View File

@ -153,5 +153,281 @@ namespace SKIT.FlurlHttpClient.Wechat.Api
return await client.SendRequestWithJsonAsync<Models.WxaSecOrderGetOrderResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region Vod
#region Vod/Upload
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/singlefileupload 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-1-%E5%8D%95%E4%B8%AA%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodSingleFileUploadResponse> ExecuteWxaSecVodSingleFileUploadAsync(this WechatApiClient client, Models.WxaSecVodSingleFileUploadRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "singlefileupload")
.SetQueryParam("access_token", request.AccessToken);
using var httpContent = Utilities.FileHttpContentBuilder.Build(fileName: $"{request.MediaName}.{request.MediaType}", fileBytes: request.MediaFileBytes, fileContentType: "video/mp4", formDataName: "media_data");
if (request.CoverType != null) httpContent.Add(new StringContent(request.CoverType), "cover_type");
if (request.CoverFileBytes != null) httpContent.Add(new ByteArrayContent(request.CoverFileBytes), "cover_data");
if (request.SourceContext != null) httpContent.Add(new StringContent(request.SourceContext), "source_context");
return await client.SendRequestAsync<Models.WxaSecVodSingleFileUploadResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/pullupload 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-2-%E6%8B%89%E5%8F%96%E4%B8%8A%E4%BC%A0 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodPullUploadResponse> ExecuteWxaSecVodPullUploadAsync(this WechatApiClient client, Models.WxaSecVodPullUploadRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "pullupload")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodPullUploadResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/gettask 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-3-%E6%9F%A5%E8%AF%A2%E4%BB%BB%E5%8A%A1 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodGetTaskResponse> ExecuteWxaSecVodGetTaskAsync(this WechatApiClient client, Models.WxaSecVodGetTaskRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "gettask")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodGetTaskResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/applyupload 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-4-%E7%94%B3%E8%AF%B7%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodApplyUploadResponse> ExecuteWxaSecVodApplyUploadAsync(this WechatApiClient client, Models.WxaSecVodApplyUploadRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "applyupload")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodApplyUploadResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/uploadpart 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-5-%E4%B8%8A%E4%BC%A0%E5%88%86%E7%89%87 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodUploadPartResponse> ExecuteWxaSecVodUploadPartAsync(this WechatApiClient client, Models.WxaSecVodUploadPartRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "uploadpart")
.SetQueryParam("access_token", request.AccessToken);
using var httpContent = Utilities.FileHttpContentBuilder.Build(fileName: string.Empty, fileBytes: request.FileBytes, fileContentType: "application/octet-stream", formDataName: "data");
httpContent.Add(new StringContent(request.UploadId), "upload_id");
httpContent.Add(new StringContent(request.PartNumber.ToString()), "part_number");
httpContent.Add(new StringContent(request.FileType.ToString()), "resource_type");
return await client.SendRequestAsync<Models.WxaSecVodUploadPartResponse>(flurlReq, httpContent: httpContent, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/commitupload 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_1-6-%E7%A1%AE%E8%AE%A4%E4%B8%8A%E4%BC%A0 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodCommitUploadResponse> ExecuteWxaSecVodCommitUploadAsync(this WechatApiClient client, Models.WxaSecVodCommitUploadRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "commitupload")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodCommitUploadResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region /Vod/Media
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/listmedia 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_2-1-%E8%8E%B7%E5%8F%96%E5%AA%92%E8%B5%84%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.WxaSecVodListMediaResponse> ExecuteWxaSecVodListMediaAsync(this WechatApiClient client, Models.WxaSecVodListMediaRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "listmedia")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodListMediaResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/getmedia 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_2-2-%E8%8E%B7%E5%8F%96%E5%AA%92%E8%B5%84%E8%AF%A6%E7%BB%86%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.WxaSecVodGetMediaResponse> ExecuteWxaSecVodGetMediaAsync(this WechatApiClient client, Models.WxaSecVodGetMediaRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "getmedia")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodGetMediaResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/getmedialink 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_2-3-%E8%8E%B7%E5%8F%96%E5%AA%92%E8%B5%84%E6%92%AD%E6%94%BE%E9%93%BE%E6%8E%A5 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodGetMediaLinkResponse> ExecuteWxaSecVodGetMediaLinkAsync(this WechatApiClient client, Models.WxaSecVodGetMediaLinkRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "getmedialink")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodGetMediaLinkResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/deletemedia 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_2-4-%E5%88%A0%E9%99%A4%E5%AA%92%E8%B5%84 </para>
/// </summary>
/// <param name="client"></param>
/// <param name="request"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public static async Task<Models.WxaSecVodDeleteMediaResponse> ExecuteWxaSecVodDeleteMediaAsync(this WechatApiClient client, Models.WxaSecVodDeleteMediaRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "deletemedia")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodDeleteMediaResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#region /Vod/Drama
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/auditdrama 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_3-1-%E5%89%A7%E7%9B%AE%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.WxaSecVodAuditDramaResponse> ExecuteWxaSecVodAuditDramaAsync(this WechatApiClient client, Models.WxaSecVodAuditDramaRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "auditdrama")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodAuditDramaResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/listdramas 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_3-2-%E8%8E%B7%E5%8F%96%E5%89%A7%E7%9B%AE%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.WxaSecVodListDramasResponse> ExecuteWxaSecVodListDramasAsync(this WechatApiClient client, Models.WxaSecVodListDramasRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "listdramas")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodListDramasResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
/// <summary>
/// <para>异步调用 [POST] /wxa/sec/vod/getdrama 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/mini-drama/mini_drama.html#_3-3-%E8%8E%B7%E5%8F%96%E5%89%A7%E7%9B%AE%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.WxaSecVodGetDramaResponse> ExecuteWxaSecVodGetDramaAsync(this WechatApiClient client, Models.WxaSecVodGetDramaRequest 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
.CreateRequest(request, HttpMethod.Post, "wxa", "sec", "vod", "getdrama")
.SetQueryParam("access_token", request.AccessToken);
return await client.SendRequestWithJsonAsync<Models.WxaSecVodGetDramaResponse>(flurlReq, data: request, cancellationToken: cancellationToken);
}
#endregion
#endregion
}
}

View File

@ -1,4 +1,4 @@
using System;
using System;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{

View File

@ -0,0 +1,80 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/auditdrama 接口的请求。</para>
/// </summary>
public class WxaSecVodAuditDramaRequest : WechatApiRequest, IInferable<WxaSecVodAuditDramaRequest, WxaSecVodAuditDramaResponse>
{
/// <summary>
/// 获取或设置剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
public long? DramaId { get; set; }
/// <summary>
/// 获取或设置剧名。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string? Name { get; set; }
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置媒资文件数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_count")]
[System.Text.Json.Serialization.JsonPropertyName("media_count")]
public int? MediaCount { get; set; }
/// <summary>
/// 获取或设置媒资文件 ID 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("media_id_list")]
public IList<long>? MediaIdList { get; set; }
/// <summary>
/// 获取或设置制作方。
/// </summary>
[Newtonsoft.Json.JsonProperty("producer")]
[System.Text.Json.Serialization.JsonPropertyName("producer")]
public string? Producer { get; set; }
/// <summary>
/// 获取或设置编剧。
/// </summary>
[Newtonsoft.Json.JsonProperty("playwright")]
[System.Text.Json.Serialization.JsonPropertyName("playwright")]
public string? Playwright { get; set; }
/// <summary>
/// 获取或设置封面图片 MediaId。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_material_id")]
[System.Text.Json.Serialization.JsonPropertyName("cover_material_id")]
public string? CoverMaterialMediaId { get; set; }
/// <summary>
/// 获取或设置广播电视节目制作经营许可证 MediaId。
/// </summary>
[Newtonsoft.Json.JsonProperty("production_license_material_id")]
[System.Text.Json.Serialization.JsonPropertyName("production_license_material_id")]
public string? ProductionLicenseMaterialMediaId { get; set; }
/// <summary>
/// 获取或设置剧目播放授权材料 MediaId。
/// </summary>
[Newtonsoft.Json.JsonProperty("authorized_material_id")]
[System.Text.Json.Serialization.JsonPropertyName("authorized_material_id")]
public string? AuthorizationMaterialMediaId { get; set; }
}
}

View File

@ -0,0 +1,16 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/auditdrama 接口的响应。</para>
/// </summary>
public class WxaSecVodAuditDramaResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long DramaId { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getdrama 接口的请求。</para>
/// </summary>
public class WxaSecVodGetDramaRequest : WechatApiRequest, IInferable<WxaSecVodGetDramaRequest, WxaSecVodGetDramaResponse>
{
/// <summary>
/// 获取或设置剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
public long DramaId { get; set; }
}
}

View File

@ -0,0 +1,46 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getdrama 接口的响应。</para>
/// </summary>
public class WxaSecVodGetDramaResponse : WechatApiResponse
{
public static class Types
{
public class DramaInfo : WxaSecVodListDramasResponse.Types.DramaInfo
{
public static new class Types
{
public class Media : WxaSecVodListDramasResponse.Types.DramaInfo.Types.Media
{
}
public class AuditDetail : WxaSecVodListDramasResponse.Types.DramaInfo.Types.AuditDetail
{
}
}
/// <summary>
/// 获取或设置媒资文件列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_list")]
[System.Text.Json.Serialization.JsonPropertyName("media_list")]
public new Types.Media[] MediaList { get; set; } = default!;
/// <summary>
/// 获取或设置审核详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_detail")]
[System.Text.Json.Serialization.JsonPropertyName("audit_detail")]
public new Types.AuditDetail? AuditDetail { get; set; }
}
}
/// <summary>
/// 获取或设置剧目信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_info")]
[System.Text.Json.Serialization.JsonPropertyName("drama_info")]
public Types.DramaInfo DramaInfo { get; set; } = default!;
}
}

View File

@ -0,0 +1,22 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/listdramas 接口的请求。</para>
/// </summary>
public class WxaSecVodListDramasRequest : WechatApiRequest, IInferable<WxaSecVodListDramasRequest, WxaSecVodListDramasResponse>
{
/// <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,130 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/listdramas 接口的响应。</para>
/// </summary>
public class WxaSecVodListDramasResponse : WechatApiResponse
{
public static class Types
{
public class DramaInfo
{
public static class Types
{
public class Media
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long MediaId { get; set; }
}
public class AuditDetail
{
/// <summary>
/// 获取或设置状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { 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("audit_time")]
[System.Text.Json.Serialization.JsonPropertyName("audit_time")]
public long? AuditTimestamp { get; set; }
}
}
/// <summary>
/// 获取或设置剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long DramaId { get; set; }
/// <summary>
/// 获取或设置剧名。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string Name { get; set; } = default!;
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string Description { get; set; } = default!;
/// <summary>
/// 获取或设置媒资文件数量。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_count")]
[System.Text.Json.Serialization.JsonPropertyName("media_count")]
public int MediaCount { get; set; }
/// <summary>
/// 获取或设置媒资文件列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_list")]
[System.Text.Json.Serialization.JsonPropertyName("media_list")]
public Types.Media[] MediaList { get; set; } = default!;
/// <summary>
/// 获取或设置创建时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("create_time")]
[System.Text.Json.Serialization.JsonPropertyName("create_time")]
public long CreateTimestamp { get; set; }
/// <summary>
/// 获取或设置封面图片临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_url")]
[System.Text.Json.Serialization.JsonPropertyName("cover_url")]
public string? CoverUrl { get; set; }
/// <summary>
/// 获取或设置制作方。
/// </summary>
[Newtonsoft.Json.JsonProperty("producer")]
[System.Text.Json.Serialization.JsonPropertyName("producer")]
public string? Producer { get; set; }
/// <summary>
/// 获取或设置编剧。
/// </summary>
[Newtonsoft.Json.JsonProperty("playwright")]
[System.Text.Json.Serialization.JsonPropertyName("playwright")]
public string? Playwright { get; set; }
/// <summary>
/// 获取或设置审核详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_detail")]
[System.Text.Json.Serialization.JsonPropertyName("audit_detail")]
public Types.AuditDetail? AuditDetail { get; set; }
}
}
/// <summary>
/// 获取或设置剧目信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("drama_info_list")]
public Types.DramaInfo[] DramaInfoList { get; set; } = default!;
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/deletemedia 接口的请求。</para>
/// </summary>
public class WxaSecVodDeleteMediaRequest : WechatApiRequest, IInferable<WxaSecVodDeleteMediaRequest, WxaSecVodDeleteMediaResponse>
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
public long MediaId { get; set; }
}
}

View File

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

View File

@ -0,0 +1,56 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getmedialink 接口的请求。</para>
/// </summary>
public class WxaSecVodGetMediaLinkRequest : WechatApiRequest, IInferable<WxaSecVodGetMediaLinkRequest, WxaSecVodGetMediaLinkResponse>
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
public long MediaId { get; set; }
/// <summary>
/// 获取或设置过期时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("t")]
[System.Text.Json.Serialization.JsonPropertyName("t")]
public long ExpireTimestamp { get; set; }
/// <summary>
/// 获取或设置试看时长(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("expr")]
[System.Text.Json.Serialization.JsonPropertyName("expr")]
public int? ExperienceTime { get; set; }
/// <summary>
/// 获取或设置最多允许多少个不同 IP 的终端播放。
/// </summary>
[Newtonsoft.Json.JsonProperty("rlimit")]
[System.Text.Json.Serialization.JsonPropertyName("rlimit")]
public int? IpLimit { get; set; }
/// <summary>
/// 获取或设置允许访问的域名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("whref")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]
[System.Text.Json.Serialization.JsonPropertyName("whref")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]
public IList<string>? DomainWhiteList { get; set; }
/// <summary>
/// 获取或设置禁止访问的域名列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("bkref")]
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.TextualStringListWithCommaSplitConverter))]
[System.Text.Json.Serialization.JsonPropertyName("bkref")]
[System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.TextualStringListWithCommaSplitConverter))]
public IList<string>? DomainBlackList { get; set; }
}
}

View File

@ -0,0 +1,71 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getmedialink 接口的响应。</para>
/// </summary>
public class WxaSecVodGetMediaLinkResponse : WechatApiResponse
{
public static class Types
{
public class MediaInfo
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long MediaId { get; set; }
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string MediaName { get; set; } = default!;
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string Description { get; set; } = default!;
/// <summary>
/// 获取或设置时长(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("duration")]
[System.Text.Json.Serialization.JsonPropertyName("duration")]
public int Duration { get; set; }
/// <summary>
/// 获取或设置封面图片临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_url")]
[System.Text.Json.Serialization.JsonPropertyName("cover_url")]
public string CoverUrl { get; set; } = default!;
/// <summary>
/// 获取或设置 MP4 视频临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("mp4_url")]
[System.Text.Json.Serialization.JsonPropertyName("mp4_url")]
public string VideoMp4Url { get; set; } = default!;
/// <summary>
/// 获取或设置 HLS 视频临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("hls_url")]
[System.Text.Json.Serialization.JsonPropertyName("hls_url")]
public string VideoHlsUrl { get; set; } = default!;
}
}
/// <summary>
/// 获取或设置媒资信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_info")]
[System.Text.Json.Serialization.JsonPropertyName("media_info")]
public Types.MediaInfo MediaInfo { get; set; } = default!;
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getmedia 接口的请求。</para>
/// </summary>
public class WxaSecVodGetMediaRequest : WechatApiRequest, IInferable<WxaSecVodGetMediaRequest, WxaSecVodListMediaResponse>
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
public long MediaId { get; set; }
}
}

View File

@ -0,0 +1,35 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/getmedia 接口的响应。</para>
/// </summary>
public class WxaSecVodGetMediaResponse : WechatApiResponse
{
public static class Types
{
public class MediaInfo : WxaSecVodListMediaResponse.Types.MediaInfo
{
public static new class Types
{
public class AuditDetail : WxaSecVodListMediaResponse.Types.MediaInfo.Types.AuditDetail
{
}
}
/// <summary>
/// 获取或设置审核详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_detail")]
[System.Text.Json.Serialization.JsonPropertyName("audit_detail")]
public new Types.AuditDetail? AuditDetail { get; set; }
}
}
/// <summary>
/// 获取或设置媒资信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_info")]
[System.Text.Json.Serialization.JsonPropertyName("media_info")]
public Types.MediaInfo MediaInfo { get; set; } = default!;
}
}

View File

@ -0,0 +1,50 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/listmedia 接口的请求。</para>
/// </summary>
public class WxaSecVodListMediaRequest : WechatApiRequest, IInferable<WxaSecVodListMediaRequest, WxaSecVodListMediaResponse>
{
/// <summary>
/// 获取或设置所属剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
public long? DramaId { get; set; }
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_name")]
[System.Text.Json.Serialization.JsonPropertyName("media_name")]
public string? MediaName { get; set; }
/// <summary>
/// 获取或设置媒资上传开始时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("start_time")]
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
public long? StartTimestamp { get; set; }
/// <summary>
/// 获取或设置媒资上传结束时间戳。
/// </summary>
[Newtonsoft.Json.JsonProperty("end_time")]
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
public long? EndTimestamp { 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,156 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/listmedia 接口的响应。</para>
/// </summary>
public class WxaSecVodListMediaResponse : WechatApiResponse
{
public static class Types
{
public class MediaInfo
{
public static class Types
{
public class AuditDetail
{
/// <summary>
/// 获取或设置状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { 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("audit_time")]
[System.Text.Json.Serialization.JsonPropertyName("audit_time")]
public long? AuditTimestamp { get; set; }
/// <summary>
/// 获取或设置审核备注。
/// </summary>
[Newtonsoft.Json.JsonProperty("reason")]
[System.Text.Json.Serialization.JsonPropertyName("reason")]
public string? Reason { get; set; }
/// <summary>
/// 获取或设置审核证据截图 MediaId 列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("evidence_material_id_list")]
[System.Text.Json.Serialization.JsonPropertyName("evidence_material_id_list")]
public string[]? EvidenceMaterialMediaIdList { get; set; }
}
}
/// <summary>
/// 获取或设置所属剧目 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("drama_id")]
[System.Text.Json.Serialization.JsonPropertyName("drama_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long? DramaId { get; set; }
/// <summary>
/// 获取或设置描述。
/// </summary>
[Newtonsoft.Json.JsonProperty("description")]
[System.Text.Json.Serialization.JsonPropertyName("description")]
public string? Description { get; set; }
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long MediaId { get; set; }
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("name")]
[System.Text.Json.Serialization.JsonPropertyName("name")]
public string MediaName { get; set; } = default!;
/// <summary>
/// 获取或设置文件大小(单位:字节)。
/// </summary>
[Newtonsoft.Json.JsonProperty("file_size")]
[System.Text.Json.Serialization.JsonPropertyName("file_size")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public int FileSize { get; set; }
/// <summary>
/// 获取或设置时长(单位:秒)。
/// </summary>
[Newtonsoft.Json.JsonProperty("duration")]
[System.Text.Json.Serialization.JsonPropertyName("duration")]
public int Duration { 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("expire_time")]
[System.Text.Json.Serialization.JsonPropertyName("expire_time")]
public long ExpireTimestamp { get; set; }
/// <summary>
/// 获取或设置封面图片临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_url")]
[System.Text.Json.Serialization.JsonPropertyName("cover_url")]
public string? CoverUrl { get; set; }
/// <summary>
/// 获取或设置原始视频临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("original_url")]
[System.Text.Json.Serialization.JsonPropertyName("original_url")]
public string? VideoOriginalUrl { get; set; }
/// <summary>
/// 获取或设置 MP4 视频临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("mp4_url")]
[System.Text.Json.Serialization.JsonPropertyName("mp4_url")]
public string? VideoMp4Url { get; set; }
/// <summary>
/// 获取或设置 HLS 视频临时链接。
/// </summary>
[Newtonsoft.Json.JsonProperty("hls_url")]
[System.Text.Json.Serialization.JsonPropertyName("hls_url")]
public string? VideoHlsUrl { get; set; }
/// <summary>
/// 获取或设置审核详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("audit_detail")]
[System.Text.Json.Serialization.JsonPropertyName("audit_detail")]
public Types.AuditDetail? AuditDetail { get; set; }
}
}
/// <summary>
/// 获取或设置媒资信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_info_list")]
[System.Text.Json.Serialization.JsonPropertyName("media_info_list")]
public Types.MediaInfo[] MediaInfoList { get; set; } = default!;
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/applyupload 接口的请求。</para>
/// </summary>
public class WxaSecVodApplyUploadRequest : WechatApiRequest, IInferable<WxaSecVodApplyUploadRequest, WxaSecVodApplyUploadResponse>
{
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_name")]
[System.Text.Json.Serialization.JsonPropertyName("media_name")]
public string MediaName { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频格式。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_type")]
[System.Text.Json.Serialization.JsonPropertyName("media_type")]
public string MediaType { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频封面图片格式。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_type")]
[System.Text.Json.Serialization.JsonPropertyName("cover_type")]
public string? CoverType { get; set; }
/// <summary>
/// 获取或设置来源上下文。
/// </summary>
[Newtonsoft.Json.JsonProperty("source_context")]
[System.Text.Json.Serialization.JsonPropertyName("source_context")]
public string? SourceContext { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/applyupload 接口的响应。</para>
/// </summary>
public class WxaSecVodApplyUploadResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置分片上传 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("upload_id")]
[System.Text.Json.Serialization.JsonPropertyName("upload_id")]
public string UploadId { get; set; } = default!;
}
}

View File

@ -0,0 +1,51 @@
using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/commitupload 接口的请求。</para>
/// </summary>
public class WxaSecVodCommitUploadRequest : WechatApiRequest, IInferable<WxaSecVodCommitUploadRequest, WxaSecVodCommitUploadResponse>
{
public static class Types
{
public class PartInfo
{
/// <summary>
/// 获取或设置分片编号。
/// </summary>
[Newtonsoft.Json.JsonProperty("part_number")]
[System.Text.Json.Serialization.JsonPropertyName("part_number")]
public int PartNumber { get; set; }
/// <summary>
/// 获取或设置分片标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("etag")]
[System.Text.Json.Serialization.JsonPropertyName("etag")]
public string ETag { get; set; } = string.Empty;
}
}
/// <summary>
/// 获取或设置分片上传 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("upload_id")]
[System.Text.Json.Serialization.JsonPropertyName("upload_id")]
public string UploadId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频文件分片信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_part_infos")]
[System.Text.Json.Serialization.JsonPropertyName("media_part_infos")]
public IList<Types.PartInfo> MediaPartInfo { get; set; } = new List<Types.PartInfo>();
/// <summary>
/// 获取或设置视频封面图片文件分片信息列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_part_infos")]
[System.Text.Json.Serialization.JsonPropertyName("cover_part_infos")]
public IList<Types.PartInfo>? CoverPartInfo { get; set; }
}
}

View File

@ -0,0 +1,16 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/commitupload 接口的响应。</para>
/// </summary>
public class WxaSecVodCommitUploadResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long MediaId { get; set; }
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/gettask 接口的请求。</para>
/// </summary>
public class WxaSecVodGetTaskRequest : WechatApiRequest, IInferable<WxaSecVodGetTaskRequest, WxaSecVodGetTaskResponse>
{
/// <summary>
/// 获取或设置拉取上传任务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("task_id")]
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
public long TaskId { get; set; }
}
}

View File

@ -0,0 +1,79 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/gettask 接口的响应。</para>
/// </summary>
public class WxaSecVodGetTaskResponse : WechatApiResponse
{
public static class Types
{
public class Task
{
/// <summary>
/// 获取或设置拉取上传任务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("id")]
[System.Text.Json.Serialization.JsonPropertyName("id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long Id { get; set; }
/// <summary>
/// 获取或设置任务类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("task_type")]
[System.Text.Json.Serialization.JsonPropertyName("task_type")]
public int Type { get; set; }
/// <summary>
/// 获取或设置任务状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public int Status { get; set; }
/// <summary>
/// 获取或设置任务错误码。
/// </summary>
[Newtonsoft.Json.JsonProperty("errcode")]
[System.Text.Json.Serialization.JsonPropertyName("errcode")]
public int ErrorCode { get; set; }
/// <summary>
/// 获取或设置任务错误原因。
/// </summary>
[Newtonsoft.Json.JsonProperty("errmsg")]
[System.Text.Json.Serialization.JsonPropertyName("errmsg")]
public string? ErrorMessage { 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("finish_time")]
[System.Text.Json.Serialization.JsonPropertyName("finish_time")]
public long? FinishTimestamp { get; set; }
/// <summary>
/// 获取或设置媒体文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long? MediaId { get; set; }
}
}
/// <summary>
/// 获取或设置拉取上传任务信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("task_info")]
[System.Text.Json.Serialization.JsonPropertyName("task_info")]
public Types.Task Task { get; set; } = default!;
}
}

View File

@ -0,0 +1,36 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/pullupload 接口的请求。</para>
/// </summary>
public class WxaSecVodPullUploadRequest : WechatApiRequest, IInferable<WxaSecVodPullUploadRequest, WxaSecVodPullUploadResponse>
{
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_name")]
[System.Text.Json.Serialization.JsonPropertyName("media_name")]
public string MediaName { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_url")]
[System.Text.Json.Serialization.JsonPropertyName("media_url")]
public string MediaUrl { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频封面 URL。
/// </summary>
[Newtonsoft.Json.JsonProperty("cover_url")]
[System.Text.Json.Serialization.JsonPropertyName("cover_url")]
public string? CoverUrl { get; set; }
/// <summary>
/// 获取或设置来源上下文。
/// </summary>
[Newtonsoft.Json.JsonProperty("source_context")]
[System.Text.Json.Serialization.JsonPropertyName("source_context")]
public string? SourceContext { get; set; }
}
}

View File

@ -0,0 +1,16 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/pullupload 接口的响应。</para>
/// </summary>
public class WxaSecVodPullUploadResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置拉取上传任务 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("task_id")]
[System.Text.Json.Serialization.JsonPropertyName("task_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long TaskId { get; set; }
}
}

View File

@ -0,0 +1,52 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/singlefileupload 接口的请求。</para>
/// </summary>
public class WxaSecVodSingleFileUploadRequest : WechatApiRequest, IInferable<WxaSecVodSingleFileUploadRequest, WxaSecVodSingleFileUploadResponse>
{
/// <summary>
/// 获取或设置视频名称。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string MediaName { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频格式。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string MediaType { get; set; } = string.Empty;
/// <summary>
/// 获取或设置视频文件字节数组。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public byte[] MediaFileBytes { get; set; } = Array.Empty<byte>();
/// <summary>
/// 获取或设置视频封面图片格式。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? CoverType { get; set; }
/// <summary>
/// 获取或设置视频封面文件字节数组。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public byte[]? CoverFileBytes { get; set; }
/// <summary>
/// 获取或设置来源上下文。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string? SourceContext { get; set; }
}
}

View File

@ -0,0 +1,16 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/singlefileupload 接口的响应。</para>
/// </summary>
public class WxaSecVodSingleFileUploadResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置媒资文件 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("media_id")]
[System.Text.Json.Serialization.JsonPropertyName("media_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public long MediaId { get; set; }
}
}

View File

@ -0,0 +1,38 @@
using System;
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/uploadpart 接口的请求。</para>
/// </summary>
public class WxaSecVodUploadPartRequest : WechatApiRequest, IInferable<WxaSecVodUploadPartRequest, WxaSecVodSingleFileUploadResponse>
{
/// <summary>
/// 获取或设置分片上传 ID。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public string UploadId { get; set; } = string.Empty;
/// <summary>
/// 获取或设置分片编号。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int PartNumber { get; set; }
/// <summary>
/// 获取或设置分片文件资源类型。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public int FileType { get; set; }
/// <summary>
/// 获取或设置分片文件字节数组。
/// </summary>
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
public byte[] FileBytes { get; set; } = Array.Empty<byte>();
}
}

View File

@ -0,0 +1,15 @@
namespace SKIT.FlurlHttpClient.Wechat.Api.Models
{
/// <summary>
/// <para>表示 [POST] /wxa/sec/vod/uploadpart 接口的响应。</para>
/// </summary>
public class WxaSecVodUploadPartResponse : WechatApiResponse
{
/// <summary>
/// 获取或设置根据分片内容生成的标识。
/// </summary>
[Newtonsoft.Json.JsonProperty("etag")]
[System.Text.Json.Serialization.JsonPropertyName("etag")]
public string ETag { get; set; } = default!;
}
}

View File

@ -0,0 +1,11 @@
{
"name": "这是剧名",
"media_count": 2,
"media_id_list": [ 20001, 20002 ],
"producer": "制作方名",
"playwright": "编剧名",
"description": "很有意思的一部剧",
"cover_material_id": "1223",
"production_license_material_id": "12233",
"authorized_material_id": "122344"
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"drama_id": 10001
}

View File

@ -0,0 +1,22 @@
{
"errcode": 0,
"errmsg": "ok",
"drama_info": {
"drama_id": 28918028,
"create_time": 1682214878,
"name": "我的中国梦",
"playwright": "编剧名",
"producer": "制作方名",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"media_count": 2,
"media_list": [
{ "media_id": 10001 },
{ "media_id": 10002 }
],
"audit_detail": {
"status": 3,
"create_time": 1682215878,
"audit_time": 1682235878
}
}
}

View File

@ -0,0 +1,24 @@
{
"errcode": 0,
"errmsg": "ok",
"drama_info_list": [
{
"drama_id": 28918028,
"create_time": 1682214878,
"name": "我的中国梦",
"playwright": "编剧名",
"producer": "制作方名",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"media_count": 2,
"media_list": [
{ "media_id": 10001 },
{ "media_id": 10002 }
],
"audit_detail": {
"status": 3,
"create_time": 1682215878,
"audit_time": 1682235878
}
}
]
}

View File

@ -0,0 +1,4 @@
{
"media_id": 28918028,
"t": 1689990878
}

View File

@ -0,0 +1,13 @@
{
"errcode": 0,
"errmsg": "ok",
"media_info": {
"media_id": 28918028,
"duration": 120,
"name": "我的中国梦 - 第1集",
"description": "剧情非常精彩哦",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"mp4_url": "https://developers.weixin.qq.com/test-encode.mp4",
"hls_url": "https://developers.weixin.qq.com/test-encode.m3u8"
}
}

View File

@ -0,0 +1,27 @@
{
"errcode": 0,
"errmsg": "ok",
"media_info": {
"media_id": 28918028,
"create_time": 1682214878,
"expire_time": 1689990878,
"drama_id": 4907,
"file_size": "9849163",
"duration": 120,
"name": "我的中国梦 - 第1集",
"description": "剧情非常精彩哦",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"original_url": "https://developers.weixin.qq.com/test.mp4",
"mp4_url": "",
"hls_url": "",
"audit_detail": {
"status": 3,
"create_time": 1682215878,
"audit_time": 1682235878,
"reason": "",
"evidence_material_id_list": [
"ivpvxwtX5GNzkCi6aX12f_VIFmGKiiwW5fkbISkZcamr6g_XrWqHkxB22MMAmIShb6rKOrS7"
]
}
}
}

View File

@ -0,0 +1,4 @@
{
"drama_id": 20001,
"limit": 20
}

View File

@ -0,0 +1,29 @@
{
"errcode": 0,
"errmsg": "ok",
"media_info_list": [
{
"media_id": 28918028,
"create_time": 1682214878,
"expire_time": 1689990878,
"drama_id": 4907,
"file_size": "9849163",
"duration": 120,
"name": "我的中国梦 - 第1集",
"description": "剧情非常精彩哦",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"original_url": "https://developers.weixin.qq.com/test.mp4",
"mp4_url": "",
"hls_url": "",
"audit_detail": {
"status": 3,
"create_time": 1682215878,
"audit_time": 1682235878,
"reason": "",
"evidence_material_id_list": [
"ivpvxwtX5GNzkCi6aX12f_VIFmGKiiwW5fkbISkZcamr6g_XrWqHkxB22MMAmIShb6rKOrS7"
]
}
}
]
}

View File

@ -0,0 +1,5 @@
{
"media_type": "MP4",
"cover_type": "JPG",
"media_name": "我的中国梦 - 第1集"
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"upload_id": "123456"
}

View File

@ -0,0 +1,17 @@
{
"upload_id": "abcdefg12345",
"media_part_infos": [
{
"part_number": 1,
"etag": "\"d899fbd1e06109ea2e4550f5751c88d6\""
},
{
"part_number": 2,
"etag": "\"jfb9892jfnhda2e4550f5bvhju9392af\""
},
{
"part_number": 3,
"etag": "\"bifh9u92wjefvjhytvn9u2898ef9uhea\""
}
]
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"media_id": 123456
}

View File

@ -0,0 +1,14 @@
{
"errcode": 0,
"errmsg": "ok",
"task_info": {
"id": 8412368,
"task_type": 1,
"status": 3,
"errcode": 0,
"errmsg": "",
"create_time": 1682214878,
"finish_time": 1682214907,
"media_id": 28918028
}
}

View File

@ -0,0 +1,5 @@
{
"media_url": "https://developers.weixin.qq.com/test.mp4",
"cover_url": "https://developers.weixin.qq.com/test.jpg",
"media_name": "我的中国梦 - 第1集"
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"task_id": 123456
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"media_id": 123456
}

View File

@ -0,0 +1,5 @@
{
"errcode": 0,
"errmsg": "ok",
"etag": "d899fbd1e06109ea2e4550f5751c88d6"
}