From f5449f3ace743527030e1d0f3f35511679b7c0a5 Mon Sep 17 00:00:00 2001 From: jianzhichu Date: Mon, 19 Jan 2026 09:57:40 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/AuthController.cs | 52 +- Controllers/ConfigController.cs | 53 +- Controllers/FollowController.cs | 4 +- Controllers/LogsController.cs | 2 +- Controllers/VideoController.cs | 4 +- Program.cs | 3 +- Properties/PublishProfiles/docker.pubxml.user | 2 +- app/src/components/layout/PageFooter.vue | 2 +- app/src/pages/cok/CookieTable.vue | 522 +++++++- app/src/pages/personal/MyPersonal.vue | 22 - app/src/store/coreapi.ts | 56 +- extension/DouyinExceptionFilter.cs | 2 +- extension/EnumExtensions.cs | 2 +- extension/ServiceExtension.cs | 106 +- job/DependencyJobListener.cs | 2 +- job/DouYinCollectSyncJob.cs | 41 +- job/DouYinFavoritSyncJob.cs | 16 +- job/DouyinBasicSyncJob.cs | 137 +- job/DouyinFollowedUsersSyncJob.cs | 6 +- job/DouyinFollowedViedoSyncJob.cs | 15 +- {dto => model/dto}/AdminUserDto.cs | 2 +- {dto => model/dto}/AppConfigImportDto.cs | 4 +- {dto => model/dto}/DeleteInvalidVideoDto.cs | 2 +- {dto => model/dto}/DouyinCookieStopDto.cs | 2 +- {dto => model/dto}/DouyinDynamicVideoDto.cs | 2 +- {dto => model/dto}/DouyinFollowGroupDto.cs | 2 +- {dto => model/dto}/DouyinResponse.cs | 2 +- {dto => model/dto}/DouyinUpSecUserIdDto.cs | 2 +- {dto => model/dto}/DouyinVideoNfo.cs | 2 +- .../dto}/DouyinVideoPageRequestDto.cs | 2 +- {dto => model/dto}/DouyinVideoRequestDto.cs | 2 +- {dto => model/dto}/DouyinVideoTopDto.cs | 2 +- {dto => model/dto}/FollowErrorDto.cs | 2 +- {dto => model/dto}/InitSystemInfo.cs | 2 +- {dto => model/dto}/JobConfig.cs | 2 +- {dto => model/dto}/LogFileInfoDto.cs | 2 +- {dto => model/dto}/MediaMergeRequest.cs | 2 +- {dto => model/dto}/PriorityLevelDto.cs | 2 +- {dto => model/dto}/ReDownViedoDto.cs | 2 +- {dto => model/dto}/TenImageApiResponse.cs | 2 +- {dto => model/dto}/VideoStaticsDto.cs | 2 +- {dto => model/dto}/VideoTitleDataTemplate.cs | 2 +- {dto => model/dto}/VideoTypeEnum.cs | 2 +- model/{ => entity}/AdminUserInfo.cs | 2 +- model/{ => entity}/AppConfig.cs | 2 +- model/entity/DouyinCollectCate.cs | 52 + model/{ => entity}/DouyinCookie.cs | 29 +- model/{ => entity}/DouyinFollowed.cs | 2 +- model/{ => entity}/DouyinReDownload.cs | 2 +- model/{ => entity}/DouyinVideo.cs | 6 +- model/{ => entity}/DouyinVideoDelete.cs | 2 +- model/response/DouyinCollectListResponse.cs | 298 +++++ .../response/DouyinFollowInfoResponse.cs | 298 ++--- model/response/DouyinMixListResponse.cs | 628 +++++++++ model/response/DouyinSeriesListResponse.cs | 1126 +++++++++++++++++ .../response/DouyinVideoInfoResponse.cs | 7 +- repository/AdminUserRepository.cs | 4 +- repository/DouyinCookieRepository.cs | 4 +- repository/DouyinFollowRepository.cs | 5 +- repository/DouyinVideoRepository.cs | 6 +- service/AdminUserService.cs | 4 +- service/DouyinCommonService.cs | 4 +- service/DouyinCookieService.cs | 4 +- service/DouyinFollowService.cs | 5 +- service/DouyinHttpClientService.cs | 997 +++++++++------ service/DouyinMergeVideoService.cs | 2 +- service/DouyinQuartzJobService.cs | 4 +- service/DouyinVideoService.cs | 4 +- service/LogInfoService.cs | 2 +- utils/BogusManager.cs | 174 --- utils/DouyinBaseParamDics.cs | 337 ----- utils/DouyinRequestParamManager.cs | 440 +++++++ utils/FFmpegHelper.cs | 2 +- utils/Md5Util.cs | 5 - utils/NfoFileGenerator.cs | 4 +- utils/SystemStaticUtil.cs | 16 - utils/VideoTitleGenerator.cs | 2 +- 77 files changed, 4060 insertions(+), 1516 deletions(-) rename {dto => model/dto}/AdminUserDto.cs (95%) rename {dto => model/dto}/AppConfigImportDto.cs (78%) rename {dto => model/dto}/DeleteInvalidVideoDto.cs (85%) rename {dto => model/dto}/DouyinCookieStopDto.cs (81%) rename {dto => model/dto}/DouyinDynamicVideoDto.cs (85%) rename {dto => model/dto}/DouyinFollowGroupDto.cs (89%) rename {dto => model/dto}/DouyinResponse.cs (99%) rename {dto => model/dto}/DouyinUpSecUserIdDto.cs (93%) rename {dto => model/dto}/DouyinVideoNfo.cs (97%) rename {dto => model/dto}/DouyinVideoPageRequestDto.cs (97%) rename {dto => model/dto}/DouyinVideoRequestDto.cs (81%) rename {dto => model/dto}/DouyinVideoTopDto.cs (85%) rename {dto => model/dto}/FollowErrorDto.cs (95%) rename {dto => model/dto}/InitSystemInfo.cs (97%) rename {dto => model/dto}/JobConfig.cs (98%) rename {dto => model/dto}/LogFileInfoDto.cs (96%) rename {dto => model/dto}/MediaMergeRequest.cs (97%) rename {dto => model/dto}/PriorityLevelDto.cs (84%) rename {dto => model/dto}/ReDownViedoDto.cs (75%) rename {dto => model/dto}/TenImageApiResponse.cs (98%) rename {dto => model/dto}/VideoStaticsDto.cs (97%) rename {dto => model/dto}/VideoTitleDataTemplate.cs (97%) rename {dto => model/dto}/VideoTypeEnum.cs (95%) rename model/{ => entity}/AdminUserInfo.cs (96%) rename model/{ => entity}/AppConfig.cs (99%) create mode 100644 model/entity/DouyinCollectCate.cs rename model/{ => entity}/DouyinCookie.cs (86%) rename model/{ => entity}/DouyinFollowed.cs (98%) rename model/{ => entity}/DouyinReDownload.cs (97%) rename model/{ => entity}/DouyinVideo.cs (98%) rename model/{ => entity}/DouyinVideoDelete.cs (96%) create mode 100644 model/response/DouyinCollectListResponse.cs rename dto/DouyinFollowInfo.cs => model/response/DouyinFollowInfoResponse.cs (99%) create mode 100644 model/response/DouyinMixListResponse.cs create mode 100644 model/response/DouyinSeriesListResponse.cs rename dto/DouyinVideoInfo.cs => model/response/DouyinVideoInfoResponse.cs (99%) delete mode 100644 utils/BogusManager.cs delete mode 100644 utils/DouyinBaseParamDics.cs create mode 100644 utils/DouyinRequestParamManager.cs delete mode 100644 utils/SystemStaticUtil.cs diff --git a/Controllers/AuthController.cs b/Controllers/AuthController.cs index 3db8340..531712f 100644 --- a/Controllers/AuthController.cs +++ b/Controllers/AuthController.cs @@ -7,7 +7,7 @@ using System.Security.Claims; using System.Text; using dy.net.service; using dy.net.utils; -using dy.net.dto; +using dy.net.model.dto; namespace dy.net.Controllers { @@ -50,55 +50,7 @@ namespace dy.net.Controllers return ApiResult.Success(new { user?.Avatar, user?.Id, user?.UserName }); } - /// - /// 修改用户头像 - /// - /// - /// - [Authorize] - [HttpPost] - public async Task UpdateUserAvatar(IFormFile file) - { - if (file != null && file.Length > 0) - { - long maxFileSize = 5 * 1024 * 1024; // 限制文件大小为5MB - if (file.Length > maxFileSize) - { - return ApiResult.Fail("文件最大只能上传5M"); - } - var fileName = $"{IdGener.GetGuid()}_{file.FileName}"; - var filePath = webHostEnvironment.IsProduction() ? - Path.Combine(Md5Util.UPLOAD_PATH_PRO, fileName) : Path.Combine(Md5Util.UPLOAD_PATH_DEV, fileName); - using (var stream = new FileStream(filePath, FileMode.Create)) - { - await file.CopyToAsync(stream); - - try - { - // 问了节约空间,删除文件夹下的所有文件 - string[] files = Directory.GetFiles(webHostEnvironment.IsProduction() ? Md5Util.UPLOAD_PATH_PRO : Md5Util.UPLOAD_PATH_DEV); - foreach (string mfile in files) - { - if (!mfile.Contains(fileName)) - System.IO.File.Delete(mfile); - } - } - catch (Exception ex) - { - Serilog.Log.Error($"delete file error ,{ex.Message}"); - return ApiResult.Fail(ex.Message); - } - var update = await _userService.UpdateAvatar(fileName); - - return ApiResult.SuccOrFail(update , update ? fileName : "", update ? "" : "上传失败"); - } - } - else - { - return ApiResult.Fail("无效的文件"); - } - } - + /// diff --git a/Controllers/ConfigController.cs b/Controllers/ConfigController.cs index 779f010..da3252d 100644 --- a/Controllers/ConfigController.cs +++ b/Controllers/ConfigController.cs @@ -1,7 +1,7 @@ using ClockSnowFlake; -using dy.net.dto; using dy.net.extension; -using dy.net.model; +using dy.net.model.dto; +using dy.net.model.entity; using dy.net.service; using dy.net.utils; using dy.sync.lib; @@ -28,26 +28,18 @@ namespace dy.net.Controllers private readonly DouyinQuartzJobService quartzJobService; private readonly DouyinFollowService douyinFollowService; private readonly DouyinCookieService douyinCookieService; - - //// 定义允许上传的音频扩展名(小写) - //private readonly string[] _allowedAudioExtensions = { ".mp3", ".wav" }; - - //// 定义允许的音频 MIME 类型(增强验证) - //private readonly string[] _allowedAudioMimeTypes = { - // "audio/mpeg", "audio/wav" - //}; - - // 最大文件大小:20MB(可根据需求调整) - //private const long _maxFileSize = 20 * 1024 * 1024; + private readonly DouyinHttpClientService httpClientService; - public ConfigController(DouyinCookieService dyCookieService, DouyinCommonService commonService, DouyinQuartzJobService quartzJobService, DouyinFollowService douyinFollowService, DouyinCookieService douyinCookieService) + + public ConfigController(DouyinCookieService dyCookieService, DouyinCommonService commonService, DouyinQuartzJobService quartzJobService, DouyinFollowService douyinFollowService, DouyinCookieService douyinCookieService, DouyinHttpClientService httpClientService) { this.dyCookieService = dyCookieService; this.commonService = commonService; this.quartzJobService = quartzJobService; this.douyinFollowService = douyinFollowService; this.douyinCookieService = douyinCookieService; + this.httpClientService = httpClientService; } @@ -161,6 +153,12 @@ namespace dy.net.Controllers public async Task AddAsync([FromBody] DouyinCookie dyUserCookies) { + var checkCk = await httpClientService.CheckCookie(dyUserCookies); + if (!checkCk) + { + return ApiResult.Fail("Cookie无效,请按照文档提示重新获取有效Cookie,不要使用插件获取cookie"); + } + var result = await dyCookieService.Add(dyUserCookies); if (result) { @@ -204,29 +202,21 @@ namespace dy.net.Controllers return ApiResult.Fail($"请在飞牛应用设置里面将{dyUserCookies.ImgSavePath}添加读写权限"); } + + var checkCk = await httpClientService.CheckCookie(dyUserCookies); + if (!checkCk) + { + return ApiResult.Fail("Cookie无效,请按照文档提示重新获取有效Cookie,不要使用插件获取cookie"); + } + var result = await dyCookieService.Add(dyUserCookies); if (result) { - return ApiResult.Success(); } return ApiResult.Fail("添加失败"); } - /// - /// - /// - /// - [HttpGet("appport")] - [AllowAnonymous] - public async Task GetAppPort() - { - //return ApiResult.Success(10105); - return ApiResult.Success(string.IsNullOrWhiteSpace(Appsettings.Get("appPort")) ? 10101 : Convert.ToInt32(Appsettings.Get("appPort"))); - } - - - /// /// 快速开启或停止 @@ -248,6 +238,11 @@ namespace dy.net.Controllers [HttpPost("update")] public async Task UpdateAsync([FromBody] DouyinCookie dyUserCookies) { + var checkCk = await httpClientService.CheckCookie(dyUserCookies); + if (!checkCk) + { + return ApiResult.Fail("Cookie无效,请按照文档提示重新获取有效Cookie,不要使用插件获取cookie"); + } if (dyUserCookies.Id == "0") { diff --git a/Controllers/FollowController.cs b/Controllers/FollowController.cs index 6c6a8b9..0eb5b2f 100644 --- a/Controllers/FollowController.cs +++ b/Controllers/FollowController.cs @@ -1,5 +1,5 @@ -using dy.net.dto; -using dy.net.model; +using dy.net.model.dto; +using dy.net.model.entity; using dy.net.service; using dy.net.utils; using Microsoft.AspNetCore.Authorization; diff --git a/Controllers/LogsController.cs b/Controllers/LogsController.cs index c9e56be..a8e696f 100644 --- a/Controllers/LogsController.cs +++ b/Controllers/LogsController.cs @@ -1,4 +1,4 @@ -using dy.net.dto; +using dy.net.model.dto; using dy.net.service; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; diff --git a/Controllers/VideoController.cs b/Controllers/VideoController.cs index 7af39c8..91bf07c 100644 --- a/Controllers/VideoController.cs +++ b/Controllers/VideoController.cs @@ -1,5 +1,5 @@ -using dy.net.dto; -using dy.net.model; +using dy.net.model.dto; +using dy.net.model.entity; using dy.net.service; using dy.net.utils; using Microsoft.AspNetCore.Authorization; diff --git a/Program.cs b/Program.cs index f5bcfac..bfab528 100644 --- a/Program.cs +++ b/Program.cs @@ -11,7 +11,7 @@ namespace dy.net public class Program { // 常量定义 - private static string DefaultListenUrl = "10101"; + private static string DefaultListenUrl = "http://*:10101"; private const string SpaRootPath = "app/dist"; private const string SpaSourcePath = "app/"; private const string SwaggerDocTitle = "dy.net WebApi Docs"; @@ -49,7 +49,6 @@ namespace dy.net { InitAppsettings(builder); //from docker yaml file 环境变量 或者 dockerfile 或appsettings.json - DefaultListenUrl = $"http://*:{builder.Configuration.GetValue(SystemStaticUtil.APP_PORT) ?? DefaultListenUrl}"; // 设置监听地址 builder.WebHost.UseUrls(DefaultListenUrl); // 配置日志 diff --git a/Properties/PublishProfiles/docker.pubxml.user b/Properties/PublishProfiles/docker.pubxml.user index a31a472..e20470b 100644 --- a/Properties/PublishProfiles/docker.pubxml.user +++ b/Properties/PublishProfiles/docker.pubxml.user @@ -3,7 +3,7 @@ <_PublishTargetUrl>E:\code\dysync\bin\Release\net6.0\publish\ - True|2026-01-16T16:45:04.0498090Z||;True|2026-01-16T21:00:57.7239379+08:00||;True|2026-01-16T21:00:03.3912989+08:00||;True|2026-01-16T20:56:08.5505592+08:00||;True|2026-01-16T20:46:32.3067302+08:00||;True|2026-01-15T22:18:57.9835738+08:00||;True|2026-01-15T22:07:25.4753938+08:00||;True|2026-01-15T22:07:14.8243754+08:00||;True|2026-01-15T21:40:13.2613927+08:00||;True|2026-01-15T20:57:56.6291682+08:00||;True|2026-01-15T20:57:47.1363536+08:00||;True|2026-01-15T20:08:44.4710883+08:00||;True|2026-01-15T20:04:51.8284314+08:00||;False|2026-01-15T20:04:45.3258155+08:00||;True|2026-01-15T19:59:11.7907672+08:00||;True|2026-01-15T01:10:48.9066941+08:00||;True|2026-01-15T01:03:23.6216975+08:00||;True|2026-01-15T01:03:16.3364591+08:00||;False|2026-01-15T01:03:10.5654436+08:00||;True|2026-01-15T00:49:21.6559622+08:00||;True|2026-01-15T00:10:42.7288439+08:00||;True|2026-01-15T00:06:28.4241682+08:00||;True|2026-01-13T22:34:15.2372411+08:00||;True|2026-01-13T22:26:46.4522947+08:00||;True|2026-01-13T22:15:56.9735179+08:00||;True|2026-01-13T22:15:51.8250677+08:00||;False|2026-01-13T22:15:46.6608690+08:00||;True|2026-01-13T22:03:06.4683237+08:00||;False|2026-01-13T22:03:01.2036027+08:00||;True|2026-01-13T21:36:05.8776209+08:00||;True|2026-01-13T21:33:02.0766289+08:00||;False|2026-01-13T21:32:57.1976141+08:00||;True|2026-01-13T19:14:35.2519439+08:00||;True|2026-01-13T15:07:50.0836745+08:00||;False|2026-01-13T15:06:35.5929685+08:00||;True|2026-01-13T10:21:41.6012776+08:00||;True|2026-01-13T09:57:25.4788847+08:00||;True|2026-01-13T09:53:14.4900360+08:00||;True|2026-01-13T09:23:53.6465295+08:00||;True|2026-01-12T22:04:14.5886955+08:00||;False|2026-01-12T22:04:08.2008101+08:00||;True|2026-01-12T21:53:46.9947176+08:00||;True|2026-01-12T21:11:15.8358024+08:00||;True|2026-01-12T21:09:51.8663228+08:00||;True|2026-01-11T21:25:07.5052845+08:00||;False|2026-01-11T21:24:27.5744557+08:00||;True|2026-01-11T19:59:15.4734611+08:00||;False|2026-01-11T19:59:04.9543339+08:00||;True|2026-01-11T18:51:30.6649269+08:00||;True|2026-01-08T21:07:57.5094466+08:00||;True|2026-01-08T14:51:18.2266231+08:00||;True|2026-01-08T14:31:55.1137120+08:00||;True|2026-01-08T00:16:24.4451490+08:00||;True|2026-01-08T00:14:20.7430793+08:00||;True|2026-01-08T00:07:46.7228194+08:00||;True|2026-01-07T23:52:13.3290082+08:00||;True|2026-01-07T23:49:28.4838650+08:00||;True|2026-01-07T23:47:45.1936189+08:00||;True|2026-01-07T23:35:09.7818611+08:00||;True|2026-01-07T23:20:43.7462863+08:00||;True|2026-01-07T23:04:39.5140429+08:00||;False|2026-01-07T23:04:36.5367611+08:00||;True|2026-01-07T22:53:14.6013449+08:00||;True|2026-01-07T22:49:59.9549006+08:00||;True|2026-01-07T22:36:40.0254856+08:00||;False|2026-01-07T22:36:28.8275903+08:00||;True|2026-01-07T21:59:51.4355171+08:00||;True|2026-01-03T21:38:51.4307034+08:00||;True|2026-01-02T19:09:16.9668906+08:00||;False|2026-01-02T19:09:11.7496369+08:00||;True|2026-01-02T15:42:08.2215697+08:00||;True|2026-01-02T09:46:56.1654861+08:00||;True|2026-01-02T09:35:28.0211225+08:00||;True|2026-01-01T23:07:01.9022045+08:00||;False|2026-01-01T23:06:56.0537216+08:00||;True|2026-01-01T22:16:10.2974067+08:00||;True|2026-01-01T22:16:06.2123787+08:00||;False|2026-01-01T22:15:33.3626979+08:00||;True|2026-01-01T22:01:30.7161900+08:00||;True|2026-01-01T21:10:19.3664263+08:00||;True|2026-01-01T21:09:38.6071080+08:00||;True|2025-12-30T11:45:54.5543034+08:00||;True|2025-12-30T09:19:08.3178124+08:00||;True|2025-12-29T18:57:29.7032246+08:00||;True|2025-12-27T14:52:24.4780776+08:00||;False|2025-12-27T14:52:19.5635794+08:00||;True|2025-12-27T14:48:01.6252748+08:00||;False|2025-12-27T14:47:55.7976192+08:00||;True|2025-12-27T14:38:23.9723838+08:00||;True|2025-12-27T13:00:29.8583858+08:00||;True|2025-12-26T22:18:42.4015637+08:00||;True|2025-12-26T22:10:58.5274572+08:00||;True|2025-12-26T22:06:26.3129600+08:00||;True|2025-12-26T22:03:55.6718618+08:00||;False|2025-12-26T22:03:48.3809954+08:00||;True|2025-12-26T22:02:33.1840390+08:00||;True|2025-12-26T22:01:16.1660100+08:00||;True|2025-12-25T00:50:26.1116465+08:00||;True|2025-12-25T00:48:27.3087708+08:00||;True|2025-12-25T00:47:38.4835720+08:00||; + True|2026-01-16T16:52:08.8180346Z||;False|2026-01-17T00:52:03.1829000+08:00||;True|2026-01-17T00:45:04.0498090+08:00||;True|2026-01-16T21:00:57.7239379+08:00||;True|2026-01-16T21:00:03.3912989+08:00||;True|2026-01-16T20:56:08.5505592+08:00||;True|2026-01-16T20:46:32.3067302+08:00||;True|2026-01-15T22:18:57.9835738+08:00||;True|2026-01-15T22:07:25.4753938+08:00||;True|2026-01-15T22:07:14.8243754+08:00||;True|2026-01-15T21:40:13.2613927+08:00||;True|2026-01-15T20:57:56.6291682+08:00||;True|2026-01-15T20:57:47.1363536+08:00||;True|2026-01-15T20:08:44.4710883+08:00||;True|2026-01-15T20:04:51.8284314+08:00||;False|2026-01-15T20:04:45.3258155+08:00||;True|2026-01-15T19:59:11.7907672+08:00||;True|2026-01-15T01:10:48.9066941+08:00||;True|2026-01-15T01:03:23.6216975+08:00||;True|2026-01-15T01:03:16.3364591+08:00||;False|2026-01-15T01:03:10.5654436+08:00||;True|2026-01-15T00:49:21.6559622+08:00||;True|2026-01-15T00:10:42.7288439+08:00||;True|2026-01-15T00:06:28.4241682+08:00||;True|2026-01-13T22:34:15.2372411+08:00||;True|2026-01-13T22:26:46.4522947+08:00||;True|2026-01-13T22:15:56.9735179+08:00||;True|2026-01-13T22:15:51.8250677+08:00||;False|2026-01-13T22:15:46.6608690+08:00||;True|2026-01-13T22:03:06.4683237+08:00||;False|2026-01-13T22:03:01.2036027+08:00||;True|2026-01-13T21:36:05.8776209+08:00||;True|2026-01-13T21:33:02.0766289+08:00||;False|2026-01-13T21:32:57.1976141+08:00||;True|2026-01-13T19:14:35.2519439+08:00||;True|2026-01-13T15:07:50.0836745+08:00||;False|2026-01-13T15:06:35.5929685+08:00||;True|2026-01-13T10:21:41.6012776+08:00||;True|2026-01-13T09:57:25.4788847+08:00||;True|2026-01-13T09:53:14.4900360+08:00||;True|2026-01-13T09:23:53.6465295+08:00||;True|2026-01-12T22:04:14.5886955+08:00||;False|2026-01-12T22:04:08.2008101+08:00||;True|2026-01-12T21:53:46.9947176+08:00||;True|2026-01-12T21:11:15.8358024+08:00||;True|2026-01-12T21:09:51.8663228+08:00||;True|2026-01-11T21:25:07.5052845+08:00||;False|2026-01-11T21:24:27.5744557+08:00||;True|2026-01-11T19:59:15.4734611+08:00||;False|2026-01-11T19:59:04.9543339+08:00||;True|2026-01-11T18:51:30.6649269+08:00||;True|2026-01-08T21:07:57.5094466+08:00||;True|2026-01-08T14:51:18.2266231+08:00||;True|2026-01-08T14:31:55.1137120+08:00||;True|2026-01-08T00:16:24.4451490+08:00||;True|2026-01-08T00:14:20.7430793+08:00||;True|2026-01-08T00:07:46.7228194+08:00||;True|2026-01-07T23:52:13.3290082+08:00||;True|2026-01-07T23:49:28.4838650+08:00||;True|2026-01-07T23:47:45.1936189+08:00||;True|2026-01-07T23:35:09.7818611+08:00||;True|2026-01-07T23:20:43.7462863+08:00||;True|2026-01-07T23:04:39.5140429+08:00||;False|2026-01-07T23:04:36.5367611+08:00||;True|2026-01-07T22:53:14.6013449+08:00||;True|2026-01-07T22:49:59.9549006+08:00||;True|2026-01-07T22:36:40.0254856+08:00||;False|2026-01-07T22:36:28.8275903+08:00||;True|2026-01-07T21:59:51.4355171+08:00||;True|2026-01-03T21:38:51.4307034+08:00||;True|2026-01-02T19:09:16.9668906+08:00||;False|2026-01-02T19:09:11.7496369+08:00||;True|2026-01-02T15:42:08.2215697+08:00||;True|2026-01-02T09:46:56.1654861+08:00||;True|2026-01-02T09:35:28.0211225+08:00||;True|2026-01-01T23:07:01.9022045+08:00||;False|2026-01-01T23:06:56.0537216+08:00||;True|2026-01-01T22:16:10.2974067+08:00||;True|2026-01-01T22:16:06.2123787+08:00||;False|2026-01-01T22:15:33.3626979+08:00||;True|2026-01-01T22:01:30.7161900+08:00||;True|2026-01-01T21:10:19.3664263+08:00||;True|2026-01-01T21:09:38.6071080+08:00||;True|2025-12-30T11:45:54.5543034+08:00||;True|2025-12-30T09:19:08.3178124+08:00||;True|2025-12-29T18:57:29.7032246+08:00||;True|2025-12-27T14:52:24.4780776+08:00||;False|2025-12-27T14:52:19.5635794+08:00||;True|2025-12-27T14:48:01.6252748+08:00||;False|2025-12-27T14:47:55.7976192+08:00||;True|2025-12-27T14:38:23.9723838+08:00||;True|2025-12-27T13:00:29.8583858+08:00||;True|2025-12-26T22:18:42.4015637+08:00||;True|2025-12-26T22:10:58.5274572+08:00||;True|2025-12-26T22:06:26.3129600+08:00||;True|2025-12-26T22:03:55.6718618+08:00||;False|2025-12-26T22:03:48.3809954+08:00||;True|2025-12-26T22:02:33.1840390+08:00||;True|2025-12-26T22:01:16.1660100+08:00||;True|2025-12-25T00:50:26.1116465+08:00||; \ No newline at end of file diff --git a/app/src/components/layout/PageFooter.vue b/app/src/components/layout/PageFooter.vue index a142482..16c8262 100644 --- a/app/src/components/layout/PageFooter.vue +++ b/app/src/components/layout/PageFooter.vue @@ -44,7 +44,7 @@ onMounted(() => { --> - {{currentVersion.deploy}}_{{ currentVersion.tag }} + {{currentVersion.deploy}}_{{ currentVersion.tag }} diff --git a/app/src/pages/cok/CookieTable.vue b/app/src/pages/cok/CookieTable.vue index 57fb1d3..9919934 100644 --- a/app/src/pages/cok/CookieTable.vue +++ b/app/src/pages/cok/CookieTable.vue @@ -1,8 +1,7 @@