Refactor ChineseNfoRegistry to use asynchronous file reading and improve logging for episode files
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user