From 77628c98338017f5c076549be1b6c10bcd48a6a0 Mon Sep 17 00:00:00 2001 From: jianzhichu Date: Mon, 1 Dec 2025 00:41:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D=E9=95=BF=E5=BA=A6?= =?UTF-8?q?=E9=97=AE=E9=A2=98...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/FollowController.cs | 7 + .../PublishProfiles/FolderProfile.pubxml.user | 2 +- README.md | 14 +- app/src/pages/followd/index.vue | 455 ++++++++++++++---- app/src/store/coreapi.ts | 21 +- appsettings.json | 2 +- service/DouyinFollowService.cs | 15 +- utils/VideoTitleGenerator.cs | 4 +- 8 files changed, 399 insertions(+), 121 deletions(-) diff --git a/Controllers/FollowController.cs b/Controllers/FollowController.cs index 4adf63a..b2b7807 100644 --- a/Controllers/FollowController.cs +++ b/Controllers/FollowController.cs @@ -1,4 +1,5 @@ using dy.net.dto; +using dy.net.model; using dy.net.service; using dy.net.utils; using Microsoft.AspNetCore.Http; @@ -63,6 +64,12 @@ namespace dy.net.Controllers await Task.Delay(1000); return Ok(new { code = 0 }); } + [HttpPost("add")] + public async Task AddFollow(DouyinFollowed followed) + { + var res = await _douyinFollowService.AddAsync(followed); + return Ok(new { code = res ? 0 : -1, msg = res ? "" : "添加失败" }); + } /// /// 修改关注同步状态 diff --git a/Properties/PublishProfiles/FolderProfile.pubxml.user b/Properties/PublishProfiles/FolderProfile.pubxml.user index cf87409..7d44af4 100644 --- a/Properties/PublishProfiles/FolderProfile.pubxml.user +++ b/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_PublishTargetUrl>E:\code\dysync\bin\Release\net6.0\publish\ - True|2025-11-30T14:41:11.4538820Z||;True|2025-11-30T22:38:19.7064566+08:00||;True|2025-11-30T22:37:35.2889186+08:00||;True|2025-11-30T21:42:31.1408314+08:00||;True|2025-11-30T21:42:19.5385333+08:00||;False|2025-11-30T21:42:13.3290237+08:00||;True|2025-11-30T21:33:28.0806806+08:00||;True|2025-11-30T21:16:56.7088027+08:00||;False|2025-11-30T21:16:46.1444944+08:00||;True|2025-11-30T20:21:24.4059664+08:00||;False|2025-11-30T20:21:17.6006098+08:00||;True|2025-11-30T20:20:08.2030141+08:00||;False|2025-11-30T20:16:12.3608968+08:00||;True|2025-11-30T20:15:35.6048313+08:00||;True|2025-11-30T19:45:18.7229552+08:00||;True|2025-11-30T19:45:08.6083368+08:00||;False|2025-11-30T19:44:54.7824905+08:00||;True|2025-11-30T19:44:17.0179491+08:00||;True|2025-11-30T19:44:06.7073484+08:00||;False|2025-11-30T19:43:58.2896556+08:00||;True|2025-11-30T19:42:08.2261927+08:00||;True|2025-11-30T19:28:15.7115077+08:00||;False|2025-11-30T19:28:10.2280725+08:00||;True|2025-11-30T19:23:31.7859158+08:00||;True|2025-11-30T19:23:20.7788277+08:00||;True|2025-11-30T19:17:11.8583296+08:00||;False|2025-11-30T19:10:41.8369574+08:00||;True|2025-11-30T19:02:08.8184758+08:00||;False|2025-11-30T19:01:59.4711045+08:00||;True|2025-11-30T18:16:01.8372242+08:00||;True|2025-11-30T14:50:31.9356543+08:00||;True|2025-11-30T14:48:27.1833064+08:00||;True|2025-11-30T02:06:06.6099669+08:00||;True|2025-11-30T01:49:46.4358206+08:00||;False|2025-11-30T01:49:34.4884036+08:00||;True|2025-11-30T01:43:41.1028753+08:00||;True|2025-11-30T01:38:18.2856609+08:00||;True|2025-11-30T01:23:02.4378259+08:00||;True|2025-11-30T01:08:29.4041159+08:00||;True|2025-11-30T00:56:33.4172007+08:00||;False|2025-11-30T00:56:21.2777389+08:00||;True|2025-11-27T13:37:08.6884390+08:00||;False|2025-11-27T13:36:54.2595622+08:00||;True|2025-11-27T11:03:33.8401644+08:00||;False|2025-11-27T11:02:48.8942827+08:00||;True|2025-11-26T23:48:02.3957186+08:00||;True|2025-11-26T23:43:06.8154188+08:00||;False|2025-11-26T23:42:05.9191485+08:00||;True|2025-11-26T23:30:11.1295861+08:00||;True|2025-11-26T00:00:42.1507258+08:00||;True|2025-11-26T00:00:17.0107229+08:00||;True|2025-11-25T23:42:07.4349629+08:00||;False|2025-11-25T23:41:56.9328658+08:00||;True|2025-11-25T23:19:32.5262917+08:00||;True|2025-11-25T14:08:53.3850967+08:00||;True|2025-11-24T23:53:54.4283003+08:00||;True|2025-11-24T23:41:15.8248332+08:00||;True|2025-11-24T23:33:57.1844427+08:00||;True|2025-11-24T23:31:54.9228836+08:00||;True|2025-11-24T23:24:15.8681502+08:00||;True|2025-11-24T23:22:57.9046229+08:00||;True|2025-11-24T23:18:04.1131647+08:00||;True|2025-11-24T22:47:54.1336448+08:00||;True|2025-11-24T22:47:18.3613833+08:00||;True|2025-11-24T08:17:50.3994607+08:00||;True|2025-11-24T08:07:00.9951205+08:00||;True|2025-11-23T23:34:50.0030826+08:00||;True|2025-11-23T23:32:36.7452616+08:00||;True|2025-11-22T23:18:56.3202345+08:00||;True|2025-11-22T22:52:51.7203302+08:00||;True|2025-11-22T22:52:42.9620946+08:00||;True|2025-11-22T22:52:09.8257640+08:00||;True|2025-11-22T22:39:31.5894141+08:00||;True|2025-11-22T22:31:11.0704815+08:00||;True|2025-11-22T22:20:36.4579131+08:00||;True|2025-11-22T22:19:10.2281364+08:00||;True|2025-11-22T19:34:45.9336901+08:00||;True|2025-11-12T23:06:38.7834109+08:00||;False|2025-11-12T23:01:02.2269478+08:00||;True|2025-10-22T22:08:11.6423148+08:00||;True|2025-10-22T21:54:24.7180547+08:00||;True|2025-10-22T21:40:03.5194315+08:00||;True|2025-10-22T21:28:28.8962766+08:00||;True|2025-10-22T21:22:47.9631689+08:00||;True|2025-10-22T21:18:24.5274318+08:00||;True|2025-10-22T21:14:51.6386326+08:00||;False|2025-10-22T21:14:07.6282769+08:00||;True|2025-10-22T21:03:48.9892860+08:00||;True|2025-10-22T21:00:56.3617243+08:00||;False|2025-10-22T21:00:30.5472941+08:00||;True|2025-10-22T20:51:29.6155916+08:00||;False|2025-10-22T20:50:47.1882956+08:00||;True|2025-10-22T15:01:04.1668366+08:00||;True|2025-10-22T14:49:43.6340569+08:00||;True|2025-10-22T14:38:39.4685603+08:00||;True|2025-10-21T18:35:28.8392541+08:00||;True|2025-10-20T10:31:05.5865212+08:00||;True|2025-10-20T10:20:41.5717101+08:00||;True|2025-10-19T10:08:33.6669332+08:00||;False|2025-10-19T10:07:22.3337545+08:00||; + True|2025-11-30T16:27:25.1323561Z||;True|2025-11-30T23:58:20.7284116+08:00||;True|2025-11-30T23:57:58.3027622+08:00||;True|2025-11-30T23:57:43.0829614+08:00||;False|2025-11-30T23:57:33.5606716+08:00||;True|2025-11-30T23:54:29.6203368+08:00||;True|2025-11-30T23:54:27.5383120+08:00||;False|2025-11-30T23:54:17.0823982+08:00||;True|2025-11-30T22:41:11.4538820+08:00||;True|2025-11-30T22:38:19.7064566+08:00||;True|2025-11-30T22:37:35.2889186+08:00||;True|2025-11-30T21:42:31.1408314+08:00||;True|2025-11-30T21:42:19.5385333+08:00||;False|2025-11-30T21:42:13.3290237+08:00||;True|2025-11-30T21:33:28.0806806+08:00||;True|2025-11-30T21:16:56.7088027+08:00||;False|2025-11-30T21:16:46.1444944+08:00||;True|2025-11-30T20:21:24.4059664+08:00||;False|2025-11-30T20:21:17.6006098+08:00||;True|2025-11-30T20:20:08.2030141+08:00||;False|2025-11-30T20:16:12.3608968+08:00||;True|2025-11-30T20:15:35.6048313+08:00||;True|2025-11-30T19:45:18.7229552+08:00||;True|2025-11-30T19:45:08.6083368+08:00||;False|2025-11-30T19:44:54.7824905+08:00||;True|2025-11-30T19:44:17.0179491+08:00||;True|2025-11-30T19:44:06.7073484+08:00||;False|2025-11-30T19:43:58.2896556+08:00||;True|2025-11-30T19:42:08.2261927+08:00||;True|2025-11-30T19:28:15.7115077+08:00||;False|2025-11-30T19:28:10.2280725+08:00||;True|2025-11-30T19:23:31.7859158+08:00||;True|2025-11-30T19:23:20.7788277+08:00||;True|2025-11-30T19:17:11.8583296+08:00||;False|2025-11-30T19:10:41.8369574+08:00||;True|2025-11-30T19:02:08.8184758+08:00||;False|2025-11-30T19:01:59.4711045+08:00||;True|2025-11-30T18:16:01.8372242+08:00||;True|2025-11-30T14:50:31.9356543+08:00||;True|2025-11-30T14:48:27.1833064+08:00||;True|2025-11-30T02:06:06.6099669+08:00||;True|2025-11-30T01:49:46.4358206+08:00||;False|2025-11-30T01:49:34.4884036+08:00||;True|2025-11-30T01:43:41.1028753+08:00||;True|2025-11-30T01:38:18.2856609+08:00||;True|2025-11-30T01:23:02.4378259+08:00||;True|2025-11-30T01:08:29.4041159+08:00||;True|2025-11-30T00:56:33.4172007+08:00||;False|2025-11-30T00:56:21.2777389+08:00||;True|2025-11-27T13:37:08.6884390+08:00||;False|2025-11-27T13:36:54.2595622+08:00||;True|2025-11-27T11:03:33.8401644+08:00||;False|2025-11-27T11:02:48.8942827+08:00||;True|2025-11-26T23:48:02.3957186+08:00||;True|2025-11-26T23:43:06.8154188+08:00||;False|2025-11-26T23:42:05.9191485+08:00||;True|2025-11-26T23:30:11.1295861+08:00||;True|2025-11-26T00:00:42.1507258+08:00||;True|2025-11-26T00:00:17.0107229+08:00||;True|2025-11-25T23:42:07.4349629+08:00||;False|2025-11-25T23:41:56.9328658+08:00||;True|2025-11-25T23:19:32.5262917+08:00||;True|2025-11-25T14:08:53.3850967+08:00||;True|2025-11-24T23:53:54.4283003+08:00||;True|2025-11-24T23:41:15.8248332+08:00||;True|2025-11-24T23:33:57.1844427+08:00||;True|2025-11-24T23:31:54.9228836+08:00||;True|2025-11-24T23:24:15.8681502+08:00||;True|2025-11-24T23:22:57.9046229+08:00||;True|2025-11-24T23:18:04.1131647+08:00||;True|2025-11-24T22:47:54.1336448+08:00||;True|2025-11-24T22:47:18.3613833+08:00||;True|2025-11-24T08:17:50.3994607+08:00||;True|2025-11-24T08:07:00.9951205+08:00||;True|2025-11-23T23:34:50.0030826+08:00||;True|2025-11-23T23:32:36.7452616+08:00||;True|2025-11-22T23:18:56.3202345+08:00||;True|2025-11-22T22:52:51.7203302+08:00||;True|2025-11-22T22:52:42.9620946+08:00||;True|2025-11-22T22:52:09.8257640+08:00||;True|2025-11-22T22:39:31.5894141+08:00||;True|2025-11-22T22:31:11.0704815+08:00||;True|2025-11-22T22:20:36.4579131+08:00||;True|2025-11-22T22:19:10.2281364+08:00||;True|2025-11-22T19:34:45.9336901+08:00||;True|2025-11-12T23:06:38.7834109+08:00||;False|2025-11-12T23:01:02.2269478+08:00||;True|2025-10-22T22:08:11.6423148+08:00||;True|2025-10-22T21:54:24.7180547+08:00||;True|2025-10-22T21:40:03.5194315+08:00||;True|2025-10-22T21:28:28.8962766+08:00||;True|2025-10-22T21:22:47.9631689+08:00||;True|2025-10-22T21:18:24.5274318+08:00||;True|2025-10-22T21:14:51.6386326+08:00||;False|2025-10-22T21:14:07.6282769+08:00||;True|2025-10-22T21:03:48.9892860+08:00||;True|2025-10-22T21:00:56.3617243+08:00||;False|2025-10-22T21:00:30.5472941+08:00||;True|2025-10-22T20:51:29.6155916+08:00||;False|2025-10-22T20:50:47.1882956+08:00||; diff --git a/README.md b/README.md index dc7c6f2..d6607d7 100644 --- a/README.md +++ b/README.md @@ -91,10 +91,10 @@ Cookie 及 `sec_user_id` 是同步功能的核心,需严格按步骤获取, | 镜像标签 | 架构 | 功能描述 | | ----------------- | -------------- | --------------------------------------------------------------------- | -| `mini_1.5.9` | x86_64 (amd64) | **精简版**- 不能下载图文视频 | -| `beta_1.5.9` | x86_64 (amd64) | **完整版**- 支持图文视频下载与合成 | -| `armmin_1.5.9` | ARM64 | **ARM 精简版**- 不能下载图文视频 | -| `arm_1.5.9` | ARM64 | **ARM 完整版**- 支持图文视频下载与合成 | +| `mini_1.6.0` | x86_64 (amd64) | **精简版**- 不能下载图文视频 | +| `beta_1.6.0` | x86_64 (amd64) | **完整版**- 支持图文视频下载与合成 | +| `armmin_1.6.0` | ARM64 | **ARM 精简版**- 不能下载图文视频 | +| `arm_1.6.0` | ARM64 | **ARM 完整版**- 支持图文视频下载与合成 | ### 最新镜像查看 [镜像列表](http://nas.synology2023.online:10108/api/docker/dysync/1) @@ -112,7 +112,7 @@ docker run -d --restart=always \ -v /opt/dysync/uper:/app/uper \ -p 10103:10101 \ --name dysync2025 \ - ccr.ccs.tencentyun.com/jianzhichu/dysync:beta_1.5.9 + ccr.ccs.tencentyun.com/jianzhichu/dysync:beta_1.6.0 # 注意:-p 后面的容器端口,可以用环境变量类似:ASPNETCORE_URLS = http://+:10108 指定 ``` @@ -126,7 +126,7 @@ version: '3.8' services: dysync: - image: ccr.ccs.tencentyun.com/jianzhichu/dysync:beta_1.5.9 + image: ccr.ccs.tencentyun.com/jianzhichu/dysync:beta_1.6.0 container_name: dysync2025 # 容器名称 restart: unless-stopped # 始终重启容器,除非容器被手动停止或Docker服务停止 ports: @@ -197,6 +197,6 @@ services: 11. ✅ 选中记录,批量重新同步。以及分享(比较简陋) -12. ⭕️ 关注列表支持新增,非关注的博主 +12. ✅ 关注列表支持新增,非关注的博主 diff --git a/app/src/pages/followd/index.vue b/app/src/pages/followd/index.vue index bbf6fbc..4ba215a 100644 --- a/app/src/pages/followd/index.vue +++ b/app/src/pages/followd/index.vue @@ -18,8 +18,12 @@ + + + 新增 + - + 立即同步 @@ -98,35 +102,92 @@ + + + + + + + + + + + + + + + + + + + + +
+
+ 是否同步 + +
+
+ 是否全量同步 + +
+
+
+
+
\ No newline at end of file diff --git a/app/src/store/coreapi.ts b/app/src/store/coreapi.ts index 45ab263..698603a 100644 --- a/app/src/store/coreapi.ts +++ b/app/src/store/coreapi.ts @@ -212,15 +212,6 @@ export const useApiStore = defineStore('coreapi', () => { } - //当前版本 - async function MyTag() { - return http.request>('/api/config/mytag', 'get').then(r => { - return r.data; - }).finally(() => { - - }); - } - //检查版本 async function CheckTag() { return http.request>('/api/config/checktag', 'get').then(r => { @@ -229,9 +220,19 @@ export const useApiStore = defineStore('coreapi', () => { }); } + + //添加非关注的博主 + async function AddFollow(param: object) { + return http.request>('/api/follow/add', 'post_json', param).then(r => { + return r.data; + }).finally(() => { + + }); + } + return { + AddFollow, CheckTag, - MyTag, deleteCookie, UpdateConfig, apiCheckInitStatus, diff --git a/appsettings.json b/appsettings.json index 3502401..b396919 100644 --- a/appsettings.json +++ b/appsettings.json @@ -2,5 +2,5 @@ "dbconn": "", "dbtype": "Sqlite", "DOWN_IMGVIDEO": "1", - "tagName": "beta_1.5.9" + "tagName": "beta_1.6.0" } \ No newline at end of file diff --git a/service/DouyinFollowService.cs b/service/DouyinFollowService.cs index 39f09ef..c11a398 100644 --- a/service/DouyinFollowService.cs +++ b/service/DouyinFollowService.cs @@ -1,4 +1,5 @@ -using dy.net.dto; +using ClockSnowFlake; +using dy.net.dto; using dy.net.model; using dy.net.repository; using SqlSugar; @@ -16,6 +17,18 @@ namespace dy.net.service _followRepository = followRepository; } + /// + /// + /// + /// + /// + public async Task AddAsync(DouyinFollowed followed) + { + followed.Id = IdGener.GetLong().ToString(); + followed.LastSyncTime = DateTime.UtcNow; + return await _followRepository.InsertAsync(followed); + } + /// /// /// diff --git a/utils/VideoTitleGenerator.cs b/utils/VideoTitleGenerator.cs index fec0249..073c21a 100644 --- a/utils/VideoTitleGenerator.cs +++ b/utils/VideoTitleGenerator.cs @@ -57,9 +57,9 @@ namespace dy.net.utils var fullName= finalTitle.Replace("--","-"); - if (fullName.Length > 120) + if (fullName.Length > 60) { - return fullName.Substring(0, 120); + return fullName.Substring(0, 60); } else {