From ac51d09bc05e66fb2f5a762c419af92f36058217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E8=AF=9A?= Date: Wed, 19 Mar 2025 14:42:49 +0800 Subject: [PATCH] Refactor ChineseNfoRegistry to use asynchronous file reading and improve logging for episode files --- src/Service/Jobs/ChineseNfoRegistry.cs | 33 +++++++++++++++----------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/Service/Jobs/ChineseNfoRegistry.cs b/src/Service/Jobs/ChineseNfoRegistry.cs index cf64c89..4f2ae31 100644 --- a/src/Service/Jobs/ChineseNfoRegistry.cs +++ b/src/Service/Jobs/ChineseNfoRegistry.cs @@ -100,9 +100,9 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry seasonFiles = seasonFiles.Where(x => !x.EndsWith("tvshow.nfo")).ToArray(); - foreach (var seasonFile in seasonFiles) + foreach (var episodeFile in seasonFiles) { - var episodeContent = File.ReadAllText(seasonFile); + var episodeContent = await File.ReadAllTextAsync(episodeFile); var episodeXml = new XmlDocument(); episodeXml.LoadXml(episodeContent); @@ -111,7 +111,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (completedNode != null && ignoreCompleted == false) { skippedCount++; - Console.WriteLine($"{seasonFile} & 已完成"); + Console.WriteLine($"{episodeFile} & 已完成"); continue; } @@ -120,7 +120,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (lockedNode != null && lockedNode.InnerText == "true" && ignoreLocked == false) { skippedCount++; - Console.WriteLine($"{seasonFile} & 已锁定"); + Console.WriteLine($"{episodeFile} & 已锁定"); continue; } @@ -129,7 +129,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (seasonNode == null) { failedCount++; - Console.WriteLine($"{seasonFile} & 未找到 season"); + Console.WriteLine($"{episodeFile} & 未找到 season"); continue; } @@ -138,21 +138,21 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (episodeNode == null) { failedCount++; - Console.WriteLine($"{seasonFile} & 未找到 episode"); + Console.WriteLine($"{episodeFile} & 未找到 episode"); continue; } if (!int.TryParse(seasonNode.InnerText, out var season)) { failedCount++; - Console.WriteLine($"{seasonFile} & season 不是数字"); + Console.WriteLine($"{episodeFile} & season 不是数字"); continue; } if (!int.TryParse(episodeNode.InnerText, out var episode)) { failedCount++; - Console.WriteLine($"{seasonFile} & episode 不是数字"); + Console.WriteLine($"{episodeFile} & episode 不是数字"); continue; } @@ -161,7 +161,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (titleNode == null) { failedCount++; - Console.WriteLine($"{seasonFile} & 未找到 title"); + Console.WriteLine($"{episodeFile} & 未找到 title"); continue; } @@ -204,7 +204,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry if (!isUpdate) { skippedCount++; - Console.WriteLine($"{seasonFile} & 无更新"); + Console.WriteLine($"{episodeFile} & 无更新"); continue; } @@ -231,9 +231,14 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry try { // 尝试放开Linux文件的读写权限 - File.SetAttributes(seasonFile, FileAttributes.Normal); - Console.WriteLine("Write to " + seasonFile); - episodeXml.Save(seasonFile); + var fileInfo = new FileInfo(episodeFile) + { + Attributes = FileAttributes.Normal, + IsReadOnly = false + }; + fileInfo.Refresh(); + + episodeXml.Save(episodeFile); } catch (Exception e) { @@ -241,7 +246,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry continue; } - Console.WriteLine($"{seasonFile} & {title} & {overview}"); + Console.WriteLine($"{episodeFile} & {title} & {overview}"); await Task.Delay(10000); }