结构调整
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
|
||||
|
||||
public class UpdatePwdRequest
|
||||
{
|
||||
public string UserId { get; set; }
|
||||
public string OldPassword { get; set; }
|
||||
public string Password { get; set; }
|
||||
public string ConfirmPassword { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class LoginRequest
|
||||
{
|
||||
public string UserName { get; set; }
|
||||
public string Password { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class DataBaseConfigInfoRequest
|
||||
{
|
||||
public SqlSugar.DbType DbType { get; set; }
|
||||
|
||||
public string ConnString { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
using dy.net.model.entity;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class AppConfigImportDto
|
||||
{
|
||||
|
||||
public List<DouyinFollowed> follows { get; set; }
|
||||
|
||||
public AppConfig conf { get; set; }
|
||||
|
||||
public List<DouyinCookie> cookies { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DeleteInvalidVideoDto
|
||||
{
|
||||
public string AwId { get; set; }
|
||||
public string Title { get; set; }
|
||||
public string Path { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinCookieStopDto
|
||||
{
|
||||
public string Id { get; set; }
|
||||
|
||||
public int Status { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinDynamicVideoDto
|
||||
{
|
||||
public string Path { get; set; }
|
||||
|
||||
public int Height { get; set; }
|
||||
|
||||
public int Width { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinFollowGroupDto
|
||||
{
|
||||
/// <summary>
|
||||
/// MyUserId
|
||||
/// </summary>
|
||||
|
||||
public string Key { get; set; }
|
||||
|
||||
public int Total { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinApiResponse<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 响应状态码(自定义业务码,非HTTP状态码)
|
||||
/// </summary>
|
||||
[JsonPropertyName("code")]
|
||||
public int Code { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 响应数据
|
||||
/// </summary>
|
||||
[JsonPropertyName("data")]
|
||||
public T Data { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 响应消息(成功/失败描述)
|
||||
/// </summary>
|
||||
[JsonPropertyName("msg")]
|
||||
public string Msg { get; set; }
|
||||
[JsonPropertyName("message")]
|
||||
public string Message { get; set; }
|
||||
[JsonPropertyName("error")]
|
||||
public string Error { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 响应时间戳(UTC时间)
|
||||
/// </summary>
|
||||
[JsonPropertyName("timestamp")]
|
||||
public DateTime Timestamp { get; set; } = DateTime.UtcNow;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 响应状态码常量
|
||||
/// </summary>
|
||||
public static class ResponseCode
|
||||
{
|
||||
public const int Success = 0; // 操作成功
|
||||
public const int ServerError = -1; // 服务器错误
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 直接返回 IActionResult 的API响应工具类
|
||||
/// 无需控制器手动拼接 Ok()/BadRequest(),一步返回标准化响应
|
||||
/// </summary>
|
||||
public static class ApiResult
|
||||
{
|
||||
#region 成功响应
|
||||
/// <summary>
|
||||
/// 成功响应(带数据)
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型</typeparam>
|
||||
/// <param name="data">响应数据</param>
|
||||
/// <param name="message">成功消息(默认:操作成功)</param>
|
||||
/// <returns>IActionResult(HTTP 200)</returns>
|
||||
public static IActionResult Success<T>(T data, string message = "操作成功")
|
||||
{
|
||||
var response = new DouyinApiResponse<T>
|
||||
{
|
||||
Code = ResponseCode.Success,
|
||||
Data = data,
|
||||
Message = message,
|
||||
Error = message,
|
||||
Msg = message,
|
||||
};
|
||||
return new OkObjectResult(response); // HTTP 200
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="code"></param>
|
||||
/// <param name="t"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
public static IActionResult SuccOrFail<T>(int code,T t,string message = "")
|
||||
{
|
||||
if (code == ResponseCode.Success)
|
||||
{
|
||||
return Success(t, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Fail(message);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="result"></param>
|
||||
/// <param name="t"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
public static IActionResult SuccOrFail<T>(bool result, T t, string message = "")
|
||||
{
|
||||
if (result)
|
||||
{
|
||||
return Success(t, message);
|
||||
}
|
||||
else
|
||||
{
|
||||
return Fail(message);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 成功响应(无数据)
|
||||
/// </summary>
|
||||
/// <param name="message">成功消息(默认:操作成功)</param>
|
||||
/// <returns>IActionResult(HTTP 200)</returns>
|
||||
public static IActionResult Success(string message = "操作成功")
|
||||
{
|
||||
return Success<object>(null, message);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 失败响应
|
||||
/// <summary>
|
||||
/// 失败响应
|
||||
/// </summary>
|
||||
/// <typeparam name="T">数据类型</typeparam>
|
||||
/// <param name="message">错误消息</param>
|
||||
/// <param name="data">附加数据</param>
|
||||
/// <returns>IActionResult</returns>
|
||||
public static IActionResult Fail<T>(string message="请求失败", int businessCode = ResponseCode.ServerError, T data = default)
|
||||
{
|
||||
var response = new DouyinApiResponse<T>
|
||||
{
|
||||
Code = businessCode,
|
||||
Data = data,
|
||||
Message = message,
|
||||
Error = message,
|
||||
Msg = message,
|
||||
};
|
||||
return new OkObjectResult(response);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 失败响应(无附加数据)
|
||||
/// </summary>
|
||||
/// <param name="message">错误消息</param>
|
||||
/// <param name="businessCode">自定义业务码</param>
|
||||
/// <returns>IActionResult</returns>
|
||||
public static IActionResult Fail(string message, int businessCode = ResponseCode.ServerError)
|
||||
{
|
||||
return Fail<object>(message, businessCode);
|
||||
}
|
||||
/// <summary>
|
||||
/// 失败响应(无附加数据)
|
||||
/// </summary>
|
||||
/// <param name="message">错误消息</param>
|
||||
/// <returns>IActionResult</returns>
|
||||
public static IActionResult Fail(string message="请求失败")
|
||||
{
|
||||
return Fail<object>(message, ResponseCode.ServerError);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinUpSecUserIdDto
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// up主名称
|
||||
/// </summary>
|
||||
public string uper { get; set; }
|
||||
|
||||
public string uid { get; set; }
|
||||
/// <summary>
|
||||
/// 是否同步up主全部视频 0-否 1-是
|
||||
/// </summary>
|
||||
public bool syncAll { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
|
||||
// Actor.cs
|
||||
public class Actor
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public string Role { get; set; } // 角色名称
|
||||
public string Thumb { get; set; } // 演员头像 URL 或路径
|
||||
}
|
||||
public class DouyinVideoNfo
|
||||
{
|
||||
|
||||
/// 视频名称
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 封面图片路径或URL
|
||||
/// </summary>
|
||||
public string Thumbnail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 海报图片路径或URL
|
||||
/// </summary>
|
||||
public string Poster { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 作者/创作者
|
||||
/// </summary>
|
||||
public string Author { get; set; }
|
||||
|
||||
// 新增的属性
|
||||
public DateTime? ReleaseDate { get; set; } // 可空,避免无发布时间时的默认值
|
||||
public IEnumerable<string> Genres { get; set; } // 分类标签集合(如 ["动作", "科幻"])
|
||||
|
||||
public List<Actor> Actors { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinVideoPageRequestDto : PageRequestDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 标题查询。
|
||||
/// </summary>
|
||||
public string? Title { get; set; }
|
||||
|
||||
public string? Author { get; set; }
|
||||
//public string? Name { get; set; }
|
||||
|
||||
public string? ViedoType { get; set; }
|
||||
|
||||
public List<string>? Dates { get; set; }
|
||||
public List<string>? Dates2 { get; set; }
|
||||
|
||||
public string? Tag { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class PageRequestDto
|
||||
{
|
||||
|
||||
public int PageIndex { get; set; }
|
||||
|
||||
public int PageSize { get; set; } = 10;
|
||||
}
|
||||
|
||||
|
||||
public class FollowRequestDto: PageRequestDto
|
||||
{
|
||||
public string FollowUserName { get; set; }
|
||||
|
||||
public string MySelfId { get; set; }
|
||||
}
|
||||
|
||||
public class FollowUpdateDto
|
||||
{
|
||||
|
||||
public string Id { get; set; }
|
||||
|
||||
public bool OpenSync { get; set; }
|
||||
|
||||
public bool FullSync { get; set; }
|
||||
|
||||
public string SavePath { get; set; }
|
||||
|
||||
public string UperId { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinVideoRequestDto
|
||||
{
|
||||
public int cursor { get; set; }
|
||||
|
||||
public int count { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class DouyinVideoTopDto
|
||||
{
|
||||
public string Title { get; set; }
|
||||
|
||||
public string Time { get; set; }
|
||||
|
||||
public string Id { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class FollowErrorDto
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[JsonProperty("followings")]
|
||||
public object Followings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 8 - 用户未登录
|
||||
/// </summary>
|
||||
[JsonProperty("status_code")]
|
||||
public int StatusCode { get; set; }
|
||||
/// <summary>
|
||||
/// 用户未登录
|
||||
/// </summary>
|
||||
[JsonProperty("status_msg")]
|
||||
public string StatusMsg { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class InitSystemInfo
|
||||
{
|
||||
public DbType DbType { get; set; }
|
||||
|
||||
public string ConnString { get; set; }
|
||||
|
||||
public string UserName { get; set; }
|
||||
|
||||
public string UswePwd { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 主域名
|
||||
/// </summary>
|
||||
public string domainName { get; set; }
|
||||
/// <summary>
|
||||
/// 二级域名前缀数组
|
||||
/// </summary>
|
||||
public string domainRecord { get; set; }
|
||||
/// <summary>
|
||||
/// 解析类型
|
||||
/// </summary>
|
||||
public string recordType { get; set; }
|
||||
|
||||
public string ipv6Prefix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 域名服务商
|
||||
/// </summary>
|
||||
public string cloudName { get; set; }
|
||||
|
||||
public string AK { get; set; }
|
||||
public string SK { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 可能是int类型(分钟) 不能大于1440,也可能是cron表达式
|
||||
/// </summary>
|
||||
public string Cron { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务配置实体
|
||||
/// </summary>
|
||||
//public class JobConfig
|
||||
//{
|
||||
// public JobConfig(Type jobType, string jobKey, string triggerKey, string description)
|
||||
// {
|
||||
// JobType = jobType ?? throw new ArgumentNullException(nameof(jobType));
|
||||
// JobKey = jobKey ?? throw new ArgumentNullException(nameof(jobKey));
|
||||
// TriggerKey = triggerKey ?? throw new ArgumentNullException(nameof(triggerKey));
|
||||
// Description = description ?? throw new ArgumentNullException(nameof(description));
|
||||
// }
|
||||
|
||||
// /// <summary>
|
||||
// /// 任务类型
|
||||
// /// </summary>
|
||||
// public Type JobType { get; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 任务Key
|
||||
// /// </summary>
|
||||
// public string JobKey { get; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 触发器Key
|
||||
// /// </summary>
|
||||
// public string TriggerKey { get; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 任务描述
|
||||
// /// </summary>
|
||||
// public string Description { get; }
|
||||
//}
|
||||
|
||||
|
||||
public class JobConfig
|
||||
{
|
||||
public Type JobType { get; }
|
||||
public string JobKey { get; }
|
||||
public string TriggerKey { get; }
|
||||
public string Description { get; }
|
||||
|
||||
public JobConfig(Type jobType, string jobKey, string triggerKey, string description)
|
||||
{
|
||||
JobType = jobType ?? throw new ArgumentNullException(nameof(jobType), "任务类型不能为空");
|
||||
JobKey = jobKey ?? throw new ArgumentNullException(nameof(jobKey), "任务Key不能为空");
|
||||
TriggerKey = triggerKey ?? throw new ArgumentNullException(nameof(triggerKey), "触发器Key不能为空");
|
||||
Description = description ?? throw new ArgumentNullException(nameof(description), "任务描述不能为空");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class LogFileInfoDto
|
||||
{
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 日志类型(debug/error)
|
||||
/// </summary>
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日志日期(格式:20251203)
|
||||
/// </summary>
|
||||
public string Date { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 完整文件名
|
||||
/// </summary>
|
||||
public string FileName { get; set; }
|
||||
}
|
||||
|
||||
|
||||
public class LogContentRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 日志类型
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Type { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日志日期
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Date { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class MediaMergeRequest
|
||||
{
|
||||
/// <summary>网络图片地址数组(必填)</summary>
|
||||
public List<string> ImageUrls { get; set; }
|
||||
|
||||
/// <summary>网络MP3地址数组(必填)</summary>
|
||||
public List<string> AudioUrls { get; set; }
|
||||
|
||||
/// <summary>每张图片显示时长(秒,默认3秒)</summary>
|
||||
public int ImageDurationPerSecond { get; set; } = 3;
|
||||
|
||||
/// <summary>视频分辨率(格式:1920x1080,默认1920x1080)</summary>
|
||||
public int VideoWidth { get; set; } = 1080;
|
||||
public int VideoHeight { get; set; } = 1920;
|
||||
|
||||
/// <summary>输出视频格式(默认mp4)</summary>
|
||||
public string OutputFormat { get; set; } = "mp4";
|
||||
|
||||
/// <summary>视频帧率(默认25)</summary>
|
||||
public int VideoFps { get; set; } = 25;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class PriorityLevelDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; }
|
||||
|
||||
public int Sort { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class ReDownViedoDto
|
||||
{
|
||||
public List<string> Ids { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
//如果好用,请收藏地址,帮忙分享。
|
||||
public class ImageTagInfoItem
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Architecture { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Author { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string CreationTime { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string DockerVersion { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string DurationDays { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string ImageId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Kind { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string OS { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string PushTime { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Size { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int SizeByte { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string TagId { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string TagName { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string UpdateTime { get; set; }
|
||||
}
|
||||
|
||||
public class ImageData
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string RepoName { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string Server { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public int TagCount { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public List<ImageTagInfoItem> TagInfo { get; set; }
|
||||
}
|
||||
|
||||
public class ImageResponse
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public ImageData Data { get; set; }
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public string RequestId { get; set; }
|
||||
}
|
||||
|
||||
public class TenImageApiResponse
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public ImageResponse Response { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class VideoStaticsItemDto
|
||||
{
|
||||
public string Name { get; set; }
|
||||
|
||||
public long Count { get; set; }
|
||||
|
||||
public string Color { get; set; }
|
||||
|
||||
public string Icon { get; set; }
|
||||
|
||||
public string UperId { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public class VideoStaticsDto
|
||||
{
|
||||
|
||||
public long VideoCount { get; set; }
|
||||
|
||||
public long AuthorCount { get; set; }
|
||||
|
||||
public long CategoryCount { get; set; }
|
||||
|
||||
public string VideoSizeTotal { get; set; }
|
||||
|
||||
public string VideoCollectSize { get; set; }
|
||||
public string VideoFollowSize { get; set; }
|
||||
public string VideoFavoriteSize { get; set; }
|
||||
|
||||
public long CollectCount { get; set; }
|
||||
public long FavoriteCount { get; set; }
|
||||
|
||||
public long FollowCount { get; set; }
|
||||
|
||||
|
||||
public long GraphicVideoCount { get; set; }
|
||||
public string GraphicVideoSize { get; set; }
|
||||
|
||||
|
||||
public string TotalDiskSize { get; set; }
|
||||
public List<VideoStaticsItemDto> Authors { get; set; } = new List<VideoStaticsItemDto>();
|
||||
public List<VideoStaticsItemDto> Categories { get; set; } = new List<VideoStaticsItemDto>();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public class VideoTitleDataTemplate
|
||||
{
|
||||
/// <summary> 对应 {id} </summary>
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary> 对应 {VideoTitle} </summary>
|
||||
public string VideoTitle { get; set; } = string.Empty;
|
||||
|
||||
/// <summary> 对应 {SyncTime}(同步时间) </summary>
|
||||
//public DateTime? SyncTime { get; set; }
|
||||
|
||||
/// <summary> 对应 {ReleaseTime}(发布时间) </summary>
|
||||
public DateTime? ReleaseTime { get; set; }
|
||||
|
||||
/// <summary> 对应 {FileHash}(文件哈希值) </summary>
|
||||
public string FileHash { get; set; } = string.Empty;
|
||||
|
||||
/// <summary> 对应 {Resolution}(分辨率,如 1920x1080) </summary>
|
||||
public string Resolution { get; set; } = string.Empty;
|
||||
public string Author { get; set; } = string.Empty;
|
||||
/// <summary> 对应 {FileSize}(文件大小,单位:字节) </summary>
|
||||
//public long FileSize { get; set; } = 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace dy.net.model.dto
|
||||
{
|
||||
public enum VideoTypeEnum
|
||||
{
|
||||
/// <summary>
|
||||
///喜欢的
|
||||
/// </summary>
|
||||
[Description("喜欢的")]
|
||||
dy_favorite = 1,
|
||||
/// <summary>
|
||||
///收藏的
|
||||
/// </summary>
|
||||
[Description("收藏的")]
|
||||
dy_collects = 2,
|
||||
/// <summary>
|
||||
/// 关注的
|
||||
/// </summary>
|
||||
[Description("关注的")]
|
||||
dy_follows = 3,
|
||||
/// <summary>
|
||||
/// 图文视频,无用了,但是不能删...
|
||||
/// </summary>
|
||||
[Description("图片视频")]
|
||||
ImageVideo = 4
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
[SqlSugar.SugarTable(TableName = "login_user_info")]
|
||||
public class AdminUserInfo
|
||||
@@ -2,7 +2,7 @@
|
||||
using SqlSugar;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
|
||||
[SugarTable(TableName = "dy_app_config")]
|
||||
@@ -0,0 +1,52 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 收藏夹-自定义收藏夹、合集、短剧
|
||||
/// </summary>
|
||||
[SugarTable(TableName = "dy_collect_cate")]
|
||||
public class DouyinCollectCate
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
[SugarColumn(IsPrimaryKey = true)]
|
||||
public string Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联cookieId
|
||||
/// </summary>
|
||||
public long CookieId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏夹名称
|
||||
/// </summary>
|
||||
[SugarColumn(Length = 500, IsNullable = false)]
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 收藏夹Id
|
||||
/// </summary>
|
||||
[SugarColumn(Length =60,IsNullable =false)]
|
||||
public string XId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 封面
|
||||
/// </summary>
|
||||
public string CoverUrl { get; set; }
|
||||
/// <summary>
|
||||
/// 保存文件夹
|
||||
/// </summary>
|
||||
public string SaveFolder { get; set; }
|
||||
/// <summary>
|
||||
/// 是否开启同步
|
||||
/// </summary>
|
||||
public bool Sync { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏夹类型(0:自定义收藏夹,1:合集,2:短剧)
|
||||
/// </summary>
|
||||
public int CollectType { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
using dy.net.dto;
|
||||
using Newtonsoft.Json;
|
||||
using SqlSugar;
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
[SugarTable(TableName = "dy_cookie")]
|
||||
public class DouyinCookie
|
||||
@@ -26,10 +24,24 @@ namespace dy.net.model
|
||||
[SugarColumn(Length =-1,IsNullable =true)]
|
||||
public string Cookies { get; set; }
|
||||
/// <summary>
|
||||
/// 存储路径
|
||||
/// 存储路径(收藏视频的存储路径)
|
||||
/// </summary>
|
||||
[SugarColumn(Length =255,IsNullable =true)]
|
||||
public string SavePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否按收藏夹文件夹来存储视频
|
||||
/// </summary>
|
||||
public bool UseCollectFolder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否下载合集
|
||||
/// </summary>
|
||||
public bool DownMix { get; set; }
|
||||
/// <summary>
|
||||
/// 是否下载短剧
|
||||
/// </summary>
|
||||
public bool DownSeries { get; set; }
|
||||
/// <summary>
|
||||
/// 1 开启同步 0 关闭同步
|
||||
/// </summary>
|
||||
@@ -98,15 +110,10 @@ namespace dy.net.model
|
||||
[SugarColumn(Length = 100, IsNullable = true)]
|
||||
public string StatusMsg { get; set; }
|
||||
/// <summary>
|
||||
/// 是否统一一个路径-用 SavePath
|
||||
/// 是否统一一个路径(savepath)
|
||||
/// </summary>
|
||||
public bool useSinglePath { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 服务端口--不存数据库
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore =true)]
|
||||
public int AppPort { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
using Newtonsoft.Json;
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
[SugarTable(TableName = "dy_follow")]
|
||||
public class DouyinFollowed
|
||||
@@ -1,6 +1,6 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
/// <summary>
|
||||
/// 重新下载的列表
|
||||
@@ -1,8 +1,8 @@
|
||||
using dy.net.dto;
|
||||
using dy.net.extension;
|
||||
using dy.net.extension;
|
||||
using dy.net.model.dto;
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
|
||||
[SugarTable(TableName = "dy_collect_video")]
|
||||
@@ -1,6 +1,6 @@
|
||||
using SqlSugar;
|
||||
|
||||
namespace dy.net.model
|
||||
namespace dy.net.model.entity
|
||||
{
|
||||
/// <summary>
|
||||
/// 永久删除的视频记录-不再下载
|
||||
@@ -0,0 +1,298 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace dy.net.model.response
|
||||
{
|
||||
/// <summary>
|
||||
/// 收藏夹列表
|
||||
/// </summary>
|
||||
public class DouyinCollectListResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 收藏列表数据
|
||||
/// </summary>
|
||||
[JsonProperty("collects_list")]
|
||||
public List<DouyinCollectItem> CollectsList { get; set; } = new List<DouyinCollectItem>();
|
||||
|
||||
/// <summary>
|
||||
/// 分页游标
|
||||
/// </summary>
|
||||
[JsonProperty("cursor")]
|
||||
public int Cursor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 额外扩展信息
|
||||
/// </summary>
|
||||
//[JsonProperty("extra")]
|
||||
//public ExtraInfo Extra { get; set; } = new ExtraInfo();
|
||||
|
||||
/// <summary>
|
||||
/// 是否还有更多数据
|
||||
/// </summary>
|
||||
[JsonProperty("has_more")]
|
||||
public bool HasMore { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 日志相关信息
|
||||
/// </summary>
|
||||
//[JsonProperty("log_pb")]
|
||||
//public LogPb LogPb { get; set; } = new LogPb();
|
||||
|
||||
/// <summary>
|
||||
/// 响应状态码(0表示成功)
|
||||
/// </summary>
|
||||
[JsonProperty("status_code")]
|
||||
public int StatusCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏列表总数
|
||||
/// </summary>
|
||||
[JsonProperty("total_number")]
|
||||
public int TotalNumber { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 单个收藏项实体
|
||||
/// </summary>
|
||||
public class DouyinCollectItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 应用ID
|
||||
/// </summary>
|
||||
[JsonProperty("app_id")]
|
||||
public int AppId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏封面信息
|
||||
/// </summary>
|
||||
//[JsonProperty("collects_cover")]
|
||||
//public CollectsCover CollectsCover { get; set; } = new CollectsCover();
|
||||
|
||||
/// <summary>
|
||||
/// 收藏ID(数值型)
|
||||
/// </summary>
|
||||
[JsonProperty("collects_id")]
|
||||
public string CollectsId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 收藏ID(字符串型)
|
||||
/// </summary>
|
||||
[JsonProperty("collects_id_str")]
|
||||
public string CollectsIdStr { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 收藏名称
|
||||
/// </summary>
|
||||
[JsonProperty("collects_name")]
|
||||
public string CollectsName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(时间戳)
|
||||
/// </summary>
|
||||
[JsonProperty("create_time")]
|
||||
public long CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关注状态
|
||||
/// </summary>
|
||||
[JsonProperty("follow_status")]
|
||||
public int FollowStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 被关注数量
|
||||
/// </summary>
|
||||
[JsonProperty("followed_count")]
|
||||
public int FollowedCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为正常状态
|
||||
/// </summary>
|
||||
[JsonProperty("is_normal_status")]
|
||||
public bool IsNormalStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 项目类型
|
||||
/// </summary>
|
||||
[JsonProperty("item_type")]
|
||||
public int ItemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后收藏时间(时间戳)
|
||||
/// </summary>
|
||||
[JsonProperty("last_collect_time")]
|
||||
public long LastCollectTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 播放数量
|
||||
/// </summary>
|
||||
[JsonProperty("play_count")]
|
||||
public int PlayCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 西西里收藏封面列表(暂为null,用可空对象接收)
|
||||
/// </summary>
|
||||
[JsonProperty("sicily_collects_cover_list")]
|
||||
public object? SicilyCollectsCoverList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态标识
|
||||
/// </summary>
|
||||
[JsonProperty("states")]
|
||||
public int States { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 系统类型
|
||||
/// </summary>
|
||||
[JsonProperty("system_type")]
|
||||
public int SystemType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 该收藏下的项目总数
|
||||
/// </summary>
|
||||
[JsonProperty("total_number")]
|
||||
public int TotalNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID(数值型)
|
||||
/// </summary>
|
||||
[JsonProperty("user_id")]
|
||||
public long UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID(字符串型)
|
||||
/// </summary>
|
||||
[JsonProperty("user_id_str")]
|
||||
public string UserIdStr { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 用户信息
|
||||
/// </summary>
|
||||
//[JsonProperty("user_info")]
|
||||
//public UserInfo UserInfo { get; set; } = new UserInfo();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 收藏封面信息实体
|
||||
/// </summary>
|
||||
//public class CollectsCover
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 封面资源URI
|
||||
// /// </summary>
|
||||
// [JsonProperty("uri")]
|
||||
// public string Uri { get; set; } = string.Empty;
|
||||
|
||||
// /// <summary>
|
||||
// /// 封面URL列表
|
||||
// /// </summary>
|
||||
// [JsonProperty("url_list")]
|
||||
// public List<string> UrlList { get; set; } = new List<string>();
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 用户信息实体
|
||||
/// </summary>
|
||||
//public class UserInfo
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 大尺寸头像信息
|
||||
// /// </summary>
|
||||
// [JsonProperty("avatar_larger")]
|
||||
// public AvatarInfo AvatarLarger { get; set; } = new AvatarInfo();
|
||||
|
||||
// /// <summary>
|
||||
// /// 中等尺寸头像信息
|
||||
// /// </summary>
|
||||
// [JsonProperty("avatar_medium")]
|
||||
// public AvatarInfo AvatarMedium { get; set; } = new AvatarInfo();
|
||||
|
||||
// /// <summary>
|
||||
// /// 缩略图尺寸头像信息
|
||||
// /// </summary>
|
||||
// [JsonProperty("avatar_thumb")]
|
||||
// public AvatarInfo AvatarThumb { get; set; } = new AvatarInfo();
|
||||
|
||||
// /// <summary>
|
||||
// /// 用户昵称
|
||||
// /// </summary>
|
||||
// [JsonProperty("nickname")]
|
||||
// public string Nickname { get; set; } = string.Empty;
|
||||
|
||||
// /// <summary>
|
||||
// /// 用户唯一标识
|
||||
// /// </summary>
|
||||
// [JsonProperty("uid")]
|
||||
// public string Uid { get; set; } = string.Empty;
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 头像信息实体
|
||||
/// </summary>
|
||||
//public class AvatarInfo
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 头像高度
|
||||
// /// </summary>
|
||||
// [JsonProperty("height")]
|
||||
// public int Height { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 头像资源URI
|
||||
// /// </summary>
|
||||
// [JsonProperty("uri")]
|
||||
// public string Uri { get; set; } = string.Empty;
|
||||
|
||||
// /// <summary>
|
||||
// /// 头像URL列表
|
||||
// /// </summary>
|
||||
// [JsonProperty("url_list")]
|
||||
// public List<string> UrlList { get; set; } = new List<string>();
|
||||
|
||||
// /// <summary>
|
||||
// /// 头像宽度
|
||||
// /// </summary>
|
||||
// [JsonProperty("width")]
|
||||
// public int Width { get; set; }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 额外扩展信息实体
|
||||
/// </summary>
|
||||
//public class ExtraInfo
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 异常项目ID列表
|
||||
// /// </summary>
|
||||
// [JsonProperty("fatal_item_ids")]
|
||||
// public List<long> FatalItemIds { get; set; } = new List<long>();
|
||||
|
||||
// /// <summary>
|
||||
// /// 日志ID
|
||||
// /// </summary>
|
||||
// [JsonProperty("logid")]
|
||||
// public string Logid { get; set; } = string.Empty;
|
||||
|
||||
// /// <summary>
|
||||
// /// 当前时间戳(带毫秒)
|
||||
// /// </summary>
|
||||
// [JsonProperty("now")]
|
||||
// public long Now { get; set; }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 日志PB实体
|
||||
/// </summary>
|
||||
public class LogPb
|
||||
{
|
||||
/// <summary>
|
||||
/// 曝光ID
|
||||
/// </summary>
|
||||
[JsonProperty("impr_id")]
|
||||
public string ImprId { get; set; } = string.Empty;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,628 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace dy.net.model.response
|
||||
{
|
||||
/// <summary>
|
||||
/// 抖音合集列表响应根实体
|
||||
/// </summary>
|
||||
public class DouyinMixListResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 分页游标
|
||||
/// </summary>
|
||||
[JsonProperty("cursor")]
|
||||
public long Cursor { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 额外信息
|
||||
///// </summary>
|
||||
//[JsonProperty("extra")]
|
||||
//public DouyinExtra Extra { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否有更多数据(0=无,1=有)
|
||||
/// </summary>
|
||||
[JsonProperty("has_more")]
|
||||
public int HasMore { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 日志信息
|
||||
///// </summary>
|
||||
//[JsonProperty("log_pb")]
|
||||
//public DouyinLogPb LogPb { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集信息列表
|
||||
/// </summary>
|
||||
[JsonProperty("mix_infos")]
|
||||
public List<DouyinMixInfo> MixInfos { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 响应状态码(0=成功)
|
||||
/// </summary>
|
||||
[JsonProperty("status_code")]
|
||||
public int StatusCode { get; set; }
|
||||
}
|
||||
|
||||
///// <summary>
|
||||
///// 额外信息实体
|
||||
///// </summary>
|
||||
//public class DouyinExtra
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 致命项ID列表
|
||||
// /// </summary>
|
||||
// [JsonProperty("fatal_item_ids")]
|
||||
// public List<object> FatalItemIds { get; set; }
|
||||
|
||||
// ///// <summary>
|
||||
// ///// 日志ID
|
||||
// ///// </summary>
|
||||
// //[JsonProperty("logid")]
|
||||
// //public string Logid { get; set; }
|
||||
|
||||
// /// <summary>
|
||||
// /// 当前时间戳(毫秒)
|
||||
// /// </summary>
|
||||
// [JsonProperty("now")]
|
||||
// public long Now { get; set; }
|
||||
//}
|
||||
|
||||
///// <summary>
|
||||
///// 日志PB实体
|
||||
///// </summary>
|
||||
//public class DouyinLogPb
|
||||
//{
|
||||
// /// <summary>
|
||||
// /// 曝光ID
|
||||
// /// </summary>
|
||||
// [JsonProperty("impr_id")]
|
||||
// public string ImprId { get; set; }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// 合集信息实体
|
||||
/// </summary>
|
||||
public class DouyinMixInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 作者信息
|
||||
/// </summary>
|
||||
[JsonProperty("author")]
|
||||
public DouyinAuthor Author { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集封面
|
||||
/// </summary>
|
||||
[JsonProperty("cover_url")]
|
||||
public DouyinImageInfo CoverUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间戳(秒)
|
||||
/// </summary>
|
||||
[JsonProperty("create_time")]
|
||||
public long CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集描述
|
||||
/// </summary>
|
||||
[JsonProperty("desc")]
|
||||
public string Desc { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 合集额外信息(JSON字符串)
|
||||
///// </summary>
|
||||
//[JsonProperty("extra")]
|
||||
//public string Extra { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// ID列表(预留)
|
||||
///// </summary>
|
||||
//[JsonProperty("ids")]
|
||||
//public object Ids { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 是否为IAA内容
|
||||
///// </summary>
|
||||
//[JsonProperty("is_iaa")]
|
||||
//public int IsIaa { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 是否为系列合集
|
||||
///// </summary>
|
||||
//[JsonProperty("is_serial_mix")]
|
||||
//public int IsSerialMix { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集ID
|
||||
/// </summary>
|
||||
[JsonProperty("mix_id")]
|
||||
public string MixId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集名称
|
||||
/// </summary>
|
||||
[JsonProperty("mix_name")]
|
||||
public string MixName { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 合集图片类型
|
||||
///// </summary>
|
||||
//[JsonProperty("mix_pic_type")]
|
||||
//public int MixPicType { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 合集类型
|
||||
///// </summary>
|
||||
//[JsonProperty("mix_type")]
|
||||
//public int MixType { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 付费剧集(预留)
|
||||
///// </summary>
|
||||
//[JsonProperty("paid_episodes")]
|
||||
//public object PaidEpisodes { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 分享信息
|
||||
///// </summary>
|
||||
//[JsonProperty("share_info")]
|
||||
//public DouyinShareInfo ShareInfo { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 统计信息
|
||||
///// </summary>
|
||||
//[JsonProperty("statis")]
|
||||
//public DouyinMixStatis Statis { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 状态信息
|
||||
///// </summary>
|
||||
//[JsonProperty("status")]
|
||||
//public DouyinMixStatus Status { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 更新时间戳(秒)
|
||||
///// </summary>
|
||||
//[JsonProperty("update_time")]
|
||||
//public long UpdateTime { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 已观看剧集数
|
||||
///// </summary>
|
||||
//[JsonProperty("watched_episode")]
|
||||
//public int WatchedEpisode { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 已观看项ID
|
||||
///// </summary>
|
||||
//[JsonProperty("watched_item")]
|
||||
//public string WatchedItem { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作者信息实体
|
||||
/// </summary>
|
||||
public class DouyinAuthor
|
||||
{
|
||||
///// <summary>
|
||||
///// 是否接受隐私政策
|
||||
///// </summary>
|
||||
//[JsonProperty("accept_private_policy")]
|
||||
//public bool AcceptPrivatePolicy { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 账号地区
|
||||
///// </summary>
|
||||
//[JsonProperty("account_region")]
|
||||
//public string AccountRegion { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 广告封面URL(预留)
|
||||
///// </summary>
|
||||
//[JsonProperty("ad_cover_url")]
|
||||
//public object AdCoverUrl { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// Apple账号(预留)
|
||||
///// </summary>
|
||||
//[JsonProperty("apple_account")]
|
||||
//public int AppleAccount { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 权限状态
|
||||
///// </summary>
|
||||
//[JsonProperty("authority_status")]
|
||||
//public int AuthorityStatus { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 168x168头像
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_168x168")]
|
||||
//public DouyinImageInfo Avatar168x168 { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 300x300头像
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_300x300")]
|
||||
//public DouyinImageInfo Avatar300x300 { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 大尺寸头像
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_larger")]
|
||||
//public DouyinImageInfo AvatarLarger { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 中等尺寸头像
|
||||
/// </summary>
|
||||
[JsonProperty("avatar_medium")]
|
||||
public DouyinImageInfo AvatarMedium { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 头像方案列表(预留)
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_schema_list")]
|
||||
//public object AvatarSchemaList { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 缩略头像
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_thumb")]
|
||||
//public DouyinImageInfo AvatarThumb { get; set; }
|
||||
|
||||
///// <summary>
|
||||
///// 头像URI
|
||||
///// </summary>
|
||||
//[JsonProperty("avatar_uri")]
|
||||
//public string AvatarUri { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 作品控制权限
|
||||
/// </summary>
|
||||
[JsonProperty("aweme_control")]
|
||||
public DouyinAwemeControl AwemeControl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 作品数量
|
||||
/// </summary>
|
||||
[JsonProperty("aweme_count")]
|
||||
public int AwemeCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 火山小视频认证
|
||||
/// </summary>
|
||||
[JsonProperty("aweme_hotsoon_auth")]
|
||||
public int AwemeHotsoonAuth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 火山小视频认证关系
|
||||
/// </summary>
|
||||
[JsonProperty("aweme_hotsoon_auth_relation")]
|
||||
public int AwemeHotsoonAuthRelation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 火山小视频问候信息
|
||||
/// </summary>
|
||||
[JsonProperty("awemehts_greet_info")]
|
||||
public string AwemehtsGreetInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 禁用用户功能列表
|
||||
/// </summary>
|
||||
[JsonProperty("ban_user_functions")]
|
||||
public List<object> BanUserFunctions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 星座
|
||||
/// </summary>
|
||||
[JsonProperty("constellation")]
|
||||
public int Constellation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 联系人状态
|
||||
/// </summary>
|
||||
[JsonProperty("contacts_status")]
|
||||
public int ContactsStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 封面URL列表
|
||||
/// </summary>
|
||||
[JsonProperty("cover_url")]
|
||||
public List<DouyinImageInfo> CoverUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间
|
||||
/// </summary>
|
||||
[JsonProperty("create_time")]
|
||||
public int CreateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 自定义认证
|
||||
/// </summary>
|
||||
[JsonProperty("custom_verify")]
|
||||
public string CustomVerify { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// CV等级
|
||||
/// </summary>
|
||||
[JsonProperty("cv_level")]
|
||||
public string CvLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 下载设置
|
||||
/// </summary>
|
||||
[JsonProperty("download_setting")]
|
||||
public int DownloadSetting { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合拍设置
|
||||
/// </summary>
|
||||
[JsonProperty("duet_setting")]
|
||||
public int DuetSetting { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 企业认证理由
|
||||
/// </summary>
|
||||
[JsonProperty("enterprise_verify_reason")]
|
||||
public string EnterpriseVerifyReason { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关注状态
|
||||
/// </summary>
|
||||
[JsonProperty("follow_status")]
|
||||
public int FollowStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 粉丝数量
|
||||
/// </summary>
|
||||
[JsonProperty("follower_count")]
|
||||
public long FollowerCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关注数量
|
||||
/// </summary>
|
||||
[JsonProperty("following_count")]
|
||||
public long FollowingCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否隐藏位置
|
||||
/// </summary>
|
||||
[JsonProperty("hide_location")]
|
||||
public bool HideLocation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否隐藏搜索
|
||||
/// </summary>
|
||||
[JsonProperty("hide_search")]
|
||||
public bool HideSearch { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否为合集用户
|
||||
/// </summary>
|
||||
[JsonProperty("is_mix_user")]
|
||||
public bool IsMixUser { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已认证
|
||||
/// </summary>
|
||||
[JsonProperty("is_verified")]
|
||||
public bool IsVerified { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 语言
|
||||
/// </summary>
|
||||
[JsonProperty("language")]
|
||||
public string Language { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
[JsonProperty("nickname")]
|
||||
public string Nickname { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 安全UID
|
||||
/// </summary>
|
||||
[JsonProperty("sec_uid")]
|
||||
public string SecUid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 短ID
|
||||
/// </summary>
|
||||
[JsonProperty("short_id")]
|
||||
public string ShortId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 个性签名
|
||||
/// </summary>
|
||||
[JsonProperty("signature")]
|
||||
public string Signature { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
public int Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// UID
|
||||
/// </summary>
|
||||
[JsonProperty("uid")]
|
||||
public string Uid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 唯一ID
|
||||
/// </summary>
|
||||
[JsonProperty("unique_id")]
|
||||
public string UniqueId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 认证类型
|
||||
/// </summary>
|
||||
[JsonProperty("verification_type")]
|
||||
public int VerificationType { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 作品控制权限实体
|
||||
/// </summary>
|
||||
public class DouyinAwemeControl
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否可评论
|
||||
/// </summary>
|
||||
[JsonProperty("can_comment")]
|
||||
public bool CanComment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可转发
|
||||
/// </summary>
|
||||
[JsonProperty("can_forward")]
|
||||
public bool CanForward { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可分享
|
||||
/// </summary>
|
||||
[JsonProperty("can_share")]
|
||||
public bool CanShare { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否可显示评论
|
||||
/// </summary>
|
||||
[JsonProperty("can_show_comment")]
|
||||
public bool CanShowComment { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 图片信息实体(头像/封面通用)
|
||||
/// </summary>
|
||||
public class DouyinImageInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 图片高度
|
||||
/// </summary>
|
||||
[JsonProperty("height")]
|
||||
public int Height { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片URI
|
||||
/// </summary>
|
||||
[JsonProperty("uri")]
|
||||
public string Uri { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片URL列表(多CDN节点)
|
||||
/// </summary>
|
||||
[JsonProperty("url_list")]
|
||||
public List<string> UrlList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片宽度
|
||||
/// </summary>
|
||||
[JsonProperty("width")]
|
||||
public int Width { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 分享信息实体
|
||||
/// </summary>
|
||||
public class DouyinShareInfo
|
||||
{
|
||||
/// <summary>
|
||||
/// 分享描述
|
||||
/// </summary>
|
||||
[JsonProperty("share_desc")]
|
||||
public string ShareDesc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分享详细描述
|
||||
/// </summary>
|
||||
[JsonProperty("share_desc_info")]
|
||||
public string ShareDescInfo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分享标题
|
||||
/// </summary>
|
||||
[JsonProperty("share_title")]
|
||||
public string ShareTitle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 自己查看的分享标题
|
||||
/// </summary>
|
||||
[JsonProperty("share_title_myself")]
|
||||
public string ShareTitleMyself { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 他人查看的分享标题
|
||||
/// </summary>
|
||||
[JsonProperty("share_title_other")]
|
||||
public string ShareTitleOther { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 分享URL
|
||||
/// </summary>
|
||||
[JsonProperty("share_url")]
|
||||
public string ShareUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 微博分享描述
|
||||
/// </summary>
|
||||
[JsonProperty("share_weibo_desc")]
|
||||
public string ShareWeiboDesc { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 合集统计信息实体
|
||||
/// </summary>
|
||||
public class DouyinMixStatis
|
||||
{
|
||||
/// <summary>
|
||||
/// 收藏播放量
|
||||
/// </summary>
|
||||
[JsonProperty("collect_vv")]
|
||||
public long CollectVv { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 当前剧集
|
||||
/// </summary>
|
||||
[JsonProperty("current_episode")]
|
||||
public int CurrentEpisode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否有更新剧集
|
||||
/// </summary>
|
||||
[JsonProperty("has_updated_episode")]
|
||||
public int HasUpdatedEpisode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 播放总量
|
||||
/// </summary>
|
||||
[JsonProperty("play_vv")]
|
||||
public long PlayVv { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新至剧集数
|
||||
/// </summary>
|
||||
[JsonProperty("updated_to_episode")]
|
||||
public int UpdatedToEpisode { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 合集状态信息实体
|
||||
/// </summary>
|
||||
public class DouyinMixStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否已收藏(1=是,0=否)
|
||||
/// </summary>
|
||||
[JsonProperty("is_collected")]
|
||||
public int IsCollected { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 合集状态(2=正常)
|
||||
/// </summary>
|
||||
[JsonProperty("status")]
|
||||
public int Status { get; set; }
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user