Refactor ChineseNfoRegistry to use asynchronous file reading and improve logging for episode files
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 14s
Docker Build & Deploy / Deploy to Production (push) Successful in 4s

This commit is contained in:
孙诚
2025-03-19 14:42:49 +08:00
parent cde3ada5a9
commit ac51d09bc0

View File

@@ -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);
}