From 898e4c115b25371cdf8007c4df6aa1946a8963f9 Mon Sep 17 00:00:00 2001 From: jianzhichu Date: Tue, 25 Nov 2025 14:17:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Program.cs | 20 ++++++--- .../PublishProfiles/FolderProfile.pubxml.user | 2 +- app/public/logo.png | Bin 3968 -> 3667 bytes app/src/assets/avatar.png | Bin 3152 -> 8848 bytes app/src/assets/avatar_github.png | Bin 0 -> 3152 bytes app/src/assets/logo.png | Bin 3968 -> 3667 bytes app/src/assets/logo_111.png | Bin 0 -> 3968 bytes app/src/pages/workplace/RecordTable.vue | 19 +++++++- appsettings.json | 2 +- job/DouyinBaseSyncJob.cs | 42 +++++++++--------- 10 files changed, 56 insertions(+), 29 deletions(-) create mode 100644 app/src/assets/avatar_github.png create mode 100644 app/src/assets/logo_111.png diff --git a/Program.cs b/Program.cs index fd20f5d..d334844 100644 --- a/Program.cs +++ b/Program.cs @@ -28,6 +28,8 @@ namespace dy.net private static bool downImageVideo = false; public static void Main(string[] args) { + Console.ForegroundColor = ConsoleColor.Yellow; + // 初始化编码提供器 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); // 构建Web应用 @@ -60,8 +62,18 @@ namespace dy.net // 初始化应用服务 InitApplicationServices(app); - // 启动应用 - Log.Debug("dysync.net service started successfully"); + Serilog.Log.Debug("dy.sync service is starting..."); + + Log.Debug("默认设置-博主作品-同步全部-配置为关闭,(可到授权界面开启,不建议全量同步)"); + Log.Debug("dy.sync service is started successfully"); + Console.WriteLine("------------------------------------------------------------------------"); + Console.WriteLine(@" __ \\ \ / ___|\ \ / \ | ___| + | |\ / \___ \ \ / \ | | + | | | | | |\ | | +____/ _|_)_____/ _| _| \_|\____| + +"); + Console.ResetColor(); app.Run(); } @@ -96,7 +108,7 @@ namespace dy.net services.AddSingleton(new Appsettings (config)); // 雪花ID生成器 - services.AddSnowFlakeId(options => options.WorkId = new Random().Next(1, 127)); + services.AddSnowFlakeId(options => options.WorkId = new Random().Next(1, 100)); // MVC控制器 services.AddControllers(); @@ -203,8 +215,6 @@ namespace dy.net var quartzJobService = services.GetRequiredService(); quartzJobService.StartJob(config?.Cron ?? "30"); - Serilog.Log.Debug("系统初始化,默认将-博主作品-同步全部-配置为关闭,可到授权页面中调整(不建议开启全量同步)"); - Serilog.Log.Debug($"默认每次读取行数为:{config.BatchCount},可前往系统配置修改"); } catch (Exception ex) { diff --git a/Properties/PublishProfiles/FolderProfile.pubxml.user b/Properties/PublishProfiles/FolderProfile.pubxml.user index 9e52cb7..8e8dc53 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-24T15:53:54.4283003Z||;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||;False|2025-10-19T10:05:22.9484805+08:00||;True|2025-10-10T16:54:27.1472888+08:00||;False|2025-10-10T16:53:44.1700030+08:00||;False|2025-10-10T16:52:48.1740453+08:00||;False|2025-10-10T16:51:21.5067253+08:00||;False|2025-10-10T16:50:19.2140597+08:00||;False|2025-10-10T16:49:21.2213290+08:00||;False|2025-10-10T16:48:47.7229948+08:00||;False|2025-10-10T16:48:15.1258700+08:00||;True|2025-09-30T13:29:42.2354235+08:00||;True|2025-09-25T11:44:52.6858389+08:00||;True|2025-09-25T11:08:27.8810109+08:00||;True|2025-09-25T09:28:50.2563374+08:00||;True|2025-09-24T16:14:02.3072184+08:00||;True|2025-09-23T22:38:52.4414757+08:00||;True|2025-09-23T22:19:07.1006356+08:00||;True|2025-09-23T22:18:01.5945225+08:00||;True|2025-09-23T22:06:15.6293613+08:00||;True|2025-09-23T21:53:14.2977444+08:00||;True|2025-09-23T21:46:55.2322411+08:00||;False|2025-09-23T21:45:23.7858854+08:00||;False|2025-09-23T21:03:51.8325689+08:00||;True|2025-09-23T10:03:32.2251920+08:00||;False|2025-09-23T09:38:08.2372201+08:00||;False|2025-09-23T09:37:49.9390545+08:00||;True|2024-03-11T21:31:45.8102398+08:00||;True|2024-03-11T07:26:24.7660541+08:00||;True|2024-03-08T22:08:40.0154831+08:00||;True|2024-03-03T10:14:36.8109114+08:00||;True|2024-03-02T18:44:57.3288537+08:00||;True|2024-01-24T17:51:37.9164415+08:00||;True|2024-01-24T16:36:50.5612157+08:00||;True|2024-01-24T15:51:35.7556653+08:00||;True|2024-01-17T23:40:40.7526618+08:00||;True|2024-01-17T23:36:10.3692844+08:00||;True|2024-01-17T23:22:03.2378834+08:00||;True|2024-01-03T11:35:44.7118292+08:00||;True|2024-01-03T11:11:23.4270453+08:00||;True|2024-01-03T11:04:35.2081526+08:00||;True|2024-01-03T10:57:03.7053107+08:00||;True|2024-01-03T10:51:50.7463989+08:00||;False|2024-01-03T10:50:24.9775312+08:00||;True|2024-01-03T10:47:30.1128183+08:00||;True|2024-01-03T10:42:55.8640657+08:00||;True|2024-01-03T09:24:24.3436056+08:00||;True|2024-01-02T23:40:38.2001198+08:00||;True|2024-01-02T23:08:36.7230444+08:00||;True|2024-01-02T22:53:43.9658255+08:00||;True|2024-01-02T22:25:38.5545279+08:00||;False|2024-01-02T22:24:42.6577609+08:00||;True|2024-01-02T22:04:33.4708889+08:00||;True|2024-01-02T21:49:57.9249898+08:00||;True|2023-12-28T22:42:58.5976180+08:00||;True|2023-12-28T22:24:09.2051205+08:00||;True|2023-12-28T22:05:48.4865497+08:00||; + True|2025-11-25T06:08:53.3850967Z||;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||;False|2025-10-19T10:05:22.9484805+08:00||;True|2025-10-10T16:54:27.1472888+08:00||;False|2025-10-10T16:53:44.1700030+08:00||;False|2025-10-10T16:52:48.1740453+08:00||;False|2025-10-10T16:51:21.5067253+08:00||;False|2025-10-10T16:50:19.2140597+08:00||;False|2025-10-10T16:49:21.2213290+08:00||;False|2025-10-10T16:48:47.7229948+08:00||;False|2025-10-10T16:48:15.1258700+08:00||;True|2025-09-30T13:29:42.2354235+08:00||;True|2025-09-25T11:44:52.6858389+08:00||;True|2025-09-25T11:08:27.8810109+08:00||;True|2025-09-25T09:28:50.2563374+08:00||;True|2025-09-24T16:14:02.3072184+08:00||;True|2025-09-23T22:38:52.4414757+08:00||;True|2025-09-23T22:19:07.1006356+08:00||;True|2025-09-23T22:18:01.5945225+08:00||;True|2025-09-23T22:06:15.6293613+08:00||;True|2025-09-23T21:53:14.2977444+08:00||;True|2025-09-23T21:46:55.2322411+08:00||;False|2025-09-23T21:45:23.7858854+08:00||;False|2025-09-23T21:03:51.8325689+08:00||;True|2025-09-23T10:03:32.2251920+08:00||;False|2025-09-23T09:38:08.2372201+08:00||;False|2025-09-23T09:37:49.9390545+08:00||;True|2024-03-11T21:31:45.8102398+08:00||;True|2024-03-11T07:26:24.7660541+08:00||;True|2024-03-08T22:08:40.0154831+08:00||;True|2024-03-03T10:14:36.8109114+08:00||;True|2024-03-02T18:44:57.3288537+08:00||;True|2024-01-24T17:51:37.9164415+08:00||;True|2024-01-24T16:36:50.5612157+08:00||;True|2024-01-24T15:51:35.7556653+08:00||;True|2024-01-17T23:40:40.7526618+08:00||;True|2024-01-17T23:36:10.3692844+08:00||;True|2024-01-17T23:22:03.2378834+08:00||;True|2024-01-03T11:35:44.7118292+08:00||;True|2024-01-03T11:11:23.4270453+08:00||;True|2024-01-03T11:04:35.2081526+08:00||;True|2024-01-03T10:57:03.7053107+08:00||;True|2024-01-03T10:51:50.7463989+08:00||;False|2024-01-03T10:50:24.9775312+08:00||;True|2024-01-03T10:47:30.1128183+08:00||;True|2024-01-03T10:42:55.8640657+08:00||;True|2024-01-03T09:24:24.3436056+08:00||;True|2024-01-02T23:40:38.2001198+08:00||;True|2024-01-02T23:08:36.7230444+08:00||;True|2024-01-02T22:53:43.9658255+08:00||;True|2024-01-02T22:25:38.5545279+08:00||;False|2024-01-02T22:24:42.6577609+08:00||;True|2024-01-02T22:04:33.4708889+08:00||;True|2024-01-02T21:49:57.9249898+08:00||;True|2023-12-28T22:42:58.5976180+08:00||;True|2023-12-28T22:24:09.2051205+08:00||; \ No newline at end of file diff --git a/app/public/logo.png b/app/public/logo.png index c3435d4385df2a0be90d5e4defe9ffcfe283607e..af2ad7bf89fe00d23eb0c637d684c0cc23309516 100644 GIT binary patch literal 3667 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 literal 3968 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 diff --git a/app/src/assets/avatar.png b/app/src/assets/avatar.png index d6f5a0ae7d5ed9678e0341f6a0dbad76988174e4..0a5c4866b8dd15eaf9ccd0c5ec003cf84f634a7a 100644 GIT binary patch literal 8848 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 literal 3968 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 diff --git a/app/src/assets/logo_111.png b/app/src/assets/logo_111.png new file mode 100644 index 0000000000000000000000000000000000000000..c3435d4385df2a0be90d5e4defe9ffcfe283607e GIT binary patch literal 3968 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 literal 0 HcmV?d00001 diff --git a/app/src/pages/workplace/RecordTable.vue b/app/src/pages/workplace/RecordTable.vue index c7c6e3e..2083e4d 100644 --- a/app/src/pages/workplace/RecordTable.vue +++ b/app/src/pages/workplace/RecordTable.vue @@ -13,7 +13,7 @@ 鍠滄鐨 鏀惰棌鐨 鍏虫敞鐨 - 鍥炬枃瑙嗛 + 鍥炬枃瑙嗛 @@ -85,7 +85,7 @@ const columns = ref([ const loading = ref(false); interface DataItem {} const datas: UnwrapRef = reactive([]); - +const showImageViedo = ref(false); interface QuaryParam { dates?: string[]; pageIndex: number; @@ -135,6 +135,21 @@ const pagination = ref({ showTotal: () => `鍏 ${0} 鏉, }); +const getConfig = () => { + useApiStore() + .apiGetConfig() + .then((res) => { + if (res.code === 0) { + // 鐩戝惉鐜鍙橀噺閰嶇疆锛屾帶鍒舵槸鍚︽樉绀哄浘鐗囪棰戜笅杞介夐」 + showImageViedo.value = res.data.downImageVideoFromEnv; + } else { + } + }) + .catch((error) => { + console.error('鑾峰彇閰嶇疆澶辫触:', error); + }); +}; + const handleTableChange = (e) => { console.log(e); pagination.value.current = e.current; diff --git a/appsettings.json b/appsettings.json index 3c88295..fad79da 100644 --- a/appsettings.json +++ b/appsettings.json @@ -1,5 +1,5 @@ { "dbconn": "", "dbtype": "Sqlite", - "DOWN_IMGVIDEO": "2" + "DOWN_IMGVIDEO": "" } \ No newline at end of file diff --git a/job/DouyinBaseSyncJob.cs b/job/DouyinBaseSyncJob.cs index beb5b14..9f9fce5 100644 --- a/job/DouyinBaseSyncJob.cs +++ b/job/DouyinBaseSyncJob.cs @@ -130,13 +130,12 @@ namespace dy.net.job var config = _commonService.GetConfig(); if (config == null) { - Log.Debug($"{JobType}-璇峰厛鍦ㄨ缃腑鍒濆鍖栭厤缃紝鍐嶆墽琛屽悓姝ヤ换鍔"); + Log.Debug($"{JobType}-鏈幏鍙栧埌绯荤粺閰嶇疆锛屼换鍔$粓姝!!!"); return; } //灏嗛厤缃」鎵撳嵃鏃ュ織 - Console.WriteLine("褰撳墠閰嶇疆濡備笅锛"); - config.PrintAsTable(); + //config.PrintAsTable(); // 2. 浠庨厤缃腑鑾峰彇姣忛〉璇锋眰鏁伴噺 if (config.BatchCount > 0) @@ -152,11 +151,11 @@ namespace dy.net.job var cookies = await GetValidCookies(); if (cookies == null || !cookies.Any()) { - Log.Debug($"{JobType}-鏃犲彲鐢–ookie锛屼换鍔$粓姝"); + Log.Debug($"{JobType}-鏃犳湁鏁圕ookie锛屼换鍔$粓姝!!!"); return; } - Log.Debug($"{JobType}-褰撳墠鏈墈cookies.Count}涓猚ookie寮鍚簡鍚屾锛屽嵆灏嗗紑濮嬪悓姝"); + Log.Debug($"{JobType}-鍏卞彂鐜皗cookies.Count}涓狢ookie锛屽悓姝ヤ换鍔″嵆灏嗗紑濮..."); // 6. 閬嶅巻姣忎釜鏈夋晥鐨凜ookie锛屾墽琛屽悓姝ユ搷浣 foreach (var cookie in cookies) @@ -292,11 +291,11 @@ namespace dy.net.job // 妫鏌ookie鏄惁鏈夋晥 if (!IsCookieValid(cookie)) { - Log.Debug($"{JobType}-Cookie[{cookie.UserName}]鏃犳晥锛岃烦杩"); + Log.Debug($"{JobType}-Cookie[{cookie.UserName}]鏃犳晥锛屼换鍔$粓姝!!!"); return; } - Log.Debug($"{JobType}-寮濮嬪悓姝 Cookie-[{cookie.UserName}]"); + Log.Debug($"{JobType}- Cookie-[{cookie.UserName}]寮濮嬪悓姝..."); int syncCount = 0; // 鏈鍚屾鎴愬姛鐨勮棰戞暟閲 string cursor = "0"; // 鍒濆娓告爣 @@ -309,7 +308,7 @@ namespace dy.net.job var data = await FetchVideoData(cookie, cursor); if (data == null) { - Log.Debug($"{JobType}-Cookie[{cookie.UserName}]鑾峰彇鏁版嵁澶辫触"); + Log.Debug($"{JobType}-Cookie[{cookie.UserName}]璇诲彇鏁版嵁澶辫触!!!"); break; } @@ -336,7 +335,7 @@ namespace dy.net.job } catch (Exception ex) { - Log.Error(ex, $"{JobType}-澶勭悊Cookie[{cookie.Id}]鏃跺嚭閿"); + Log.Error(ex, $"{JobType}-Cookie[{cookie.Id}]鍚屾鍑洪敊!!!"); } } @@ -361,7 +360,7 @@ namespace dy.net.job // 濡傛灉閰嶇疆浜嗕笅杞藉浘鐗囪棰戯紝鍒欏鐞嗗浘鐗囬泦骞跺悎鎴愯棰 if (_downImageVideo) { - if(config.DownImage||config.DownMp3||config.DownImage) + if(config.DownImageVideo||config.DownMp3||config.DownImage) { var mergevideo = await ProcessImageSetAndMergeToVideo(cookie, item, data, config); if (mergevideo != null) @@ -406,18 +405,18 @@ namespace dy.net.job // 濡傛灉鏂囦欢宸插瓨鍦紝璺宠繃 if (File.Exists(savePath)) return null; - Log.Debug($"{JobType}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]寮濮嬩笅杞"); + Log.Debug($"{JobType}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]寮濮嬩笅杞..."); // 闅忔満寤惰繜锛屾ā鎷熶汉绫绘搷浣 await Task.Delay(_random.Next(1, 4) * 1000); // 涓嬭浇瑙嗛 if (!await _douyinService.DownloadAsync(videoUrl, savePath, cookie.Cookies)) { - Log.Error($"{JobType}-{item?.Author?.Nickname??""}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]涓嬭浇澶辫触"); + Log.Error($"{JobType}-{item?.Author?.Nickname??""}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]涓嬭浇澶辫触!!!"); return null; } else { - Log.Debug($"{JobType}-{item?.Author?.Nickname ?? ""}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]涓嬭浇瀹屾垚"); + Log.Debug($"{JobType}-{item?.Author?.Nickname ?? ""}-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]涓嬭浇瀹屾垚."); } // 涓嬭浇瑙嗛灏侀潰 @@ -459,7 +458,7 @@ namespace dy.net.job // 妫鏌ュ浘鐗囦繚瀛樿矾寰勬槸鍚﹂厤缃 if (string.IsNullOrWhiteSpace(cookie.ImgSavePath)) { - Log.Error($"{JobType}-鍥剧墖瑙嗛鍚屾-娌℃湁閰嶇疆鍥剧墖瀛樺偍璺緞"); + Log.Error($"{JobType}-鍥炬枃瑙嗛鍚屾-娌℃湁閰嶇疆鍥剧墖瀛樺偍璺緞锛屼换鍔$粓姝!!!"); return null; } @@ -467,7 +466,7 @@ namespace dy.net.job var imageService = _serviceProvider.GetService(); if (imageService == null) { - Log.Error($"{JobType} -鍥剧墖瑙嗛鍚屾-鏃犳硶瀹炰緥鍖 ImageMergeToVideoService銆"); + Log.Error($"{JobType} -鍥炬枃瑙嗛鍚屾寮傚父锛岃鑱旂郴浣滆!!!"); return null; } @@ -499,7 +498,7 @@ namespace dy.net.job var mergeResult = await imageService.MergeToVideo(AppContext.BaseDirectory, reqParams, savePath, fileNamefolder,config.DownImageVideo,config.DownImage,config.DownMp3); if (!mergeResult) { - Log.Error($"{JobType}-鍥剧墖瑙嗛鍚屾-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]鍚堟垚澶辫触"); + Log.Error($"{JobType}-鍥炬枃瑙嗛-[{TikTokFileNameHelper.SanitizePath(item.Desc)}]鍚堟垚澶辫触!!!"); return null; } @@ -508,13 +507,13 @@ namespace dy.net.job // 妫鏌ュ悎鎴愬悗鐨勮棰戞枃浠舵槸鍚︽湁鏁 if (!File.Exists(savePath) || new FileInfo(savePath).Length <= 0) { - Log.Error($"{JobType}-鍥剧墖瑙嗛鍚屾-瑙嗛[{TikTokFileNameHelper.SanitizePath(item.Desc)}]鍚堟垚澶辫触"); + Log.Error($"{JobType}-鍥炬枃瑙嗛-[{TikTokFileNameHelper.SanitizePath(item.Desc)}]鍚堟垚澶辫触!!!"); // 娓呯悊鏃犳晥鐨勬枃浠跺拰鏂囦欢澶 if (Directory.Exists(fileNamefolder)) { File.Delete(savePath); Directory.Delete(fileNamefolder, true); - Log.Error($"{JobType}-鍥剧墖瑙嗛鍚屾-宸插垹闄ゅ悎鎴愬け璐ョ殑瑙嗛鏂囦欢鍜岀洰褰"); + Log.Error($"{JobType}-鍥炬枃瑙嗛-鍒犻櫎鍚堟垚澶辫触鐨勮棰戞枃浠跺拰鐩綍..."); } return null; } @@ -720,6 +719,8 @@ namespace dy.net.job /// 涓涓〃绀哄紓姝ユ搷浣滅殑浠诲姟 private async Task CleanupFailedVideos(List videos) { + Log.Debug($"{JobType}-鏁版嵁搴撲繚瀛樺け璐ワ紝寮濮嬫竻鐞嗘湰娆′笅杞界殑瑙嗛鐩綍..."); + foreach (var video in videos) { // 寮傛鍒犻櫎鏂囦欢鍜屾枃浠跺す锛岄伩鍏嶉樆濉炰富绾跨▼ @@ -736,14 +737,15 @@ namespace dy.net.job { Directory.Delete(directory); } + Log.Debug($"{JobType}-娓呯悊澶辫触瑙嗛鏂囦欢鎴愬姛: {video.VideoSavePath}!!!"); + } catch (Exception ex) { - Log.Warning(ex, $"{JobType}-娓呯悊澶辫触瑙嗛鏂囦欢鏃跺嚭閿: {video.VideoSavePath}"); + Log.Warning(ex, $"{JobType}-娓呯悊澶辫触瑙嗛鏂囦欢鍑洪敊: {video.VideoSavePath}!!!"); } }); } - Log.Debug($"{JobType}-鍥犳暟鎹簱淇濆瓨澶辫触锛屽凡娓呯悊鏈涓嬭浇鐨勮棰戠洰褰"); } ///