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();
|
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();
|
var episodeXml = new XmlDocument();
|
||||||
episodeXml.LoadXml(episodeContent);
|
episodeXml.LoadXml(episodeContent);
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (completedNode != null && ignoreCompleted == false)
|
if (completedNode != null && ignoreCompleted == false)
|
||||||
{
|
{
|
||||||
skippedCount++;
|
skippedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 已完成");
|
Console.WriteLine($"{episodeFile} & 已完成");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (lockedNode != null && lockedNode.InnerText == "true" && ignoreLocked == false)
|
if (lockedNode != null && lockedNode.InnerText == "true" && ignoreLocked == false)
|
||||||
{
|
{
|
||||||
skippedCount++;
|
skippedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 已锁定");
|
Console.WriteLine($"{episodeFile} & 已锁定");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (seasonNode == null)
|
if (seasonNode == null)
|
||||||
{
|
{
|
||||||
failedCount++;
|
failedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 未找到 season");
|
Console.WriteLine($"{episodeFile} & 未找到 season");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,21 +138,21 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (episodeNode == null)
|
if (episodeNode == null)
|
||||||
{
|
{
|
||||||
failedCount++;
|
failedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 未找到 episode");
|
Console.WriteLine($"{episodeFile} & 未找到 episode");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!int.TryParse(seasonNode.InnerText, out var season))
|
if (!int.TryParse(seasonNode.InnerText, out var season))
|
||||||
{
|
{
|
||||||
failedCount++;
|
failedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & season 不是数字");
|
Console.WriteLine($"{episodeFile} & season 不是数字");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!int.TryParse(episodeNode.InnerText, out var episode))
|
if (!int.TryParse(episodeNode.InnerText, out var episode))
|
||||||
{
|
{
|
||||||
failedCount++;
|
failedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & episode 不是数字");
|
Console.WriteLine($"{episodeFile} & episode 不是数字");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (titleNode == null)
|
if (titleNode == null)
|
||||||
{
|
{
|
||||||
failedCount++;
|
failedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 未找到 title");
|
Console.WriteLine($"{episodeFile} & 未找到 title");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
if (!isUpdate)
|
if (!isUpdate)
|
||||||
{
|
{
|
||||||
skippedCount++;
|
skippedCount++;
|
||||||
Console.WriteLine($"{seasonFile} & 无更新");
|
Console.WriteLine($"{episodeFile} & 无更新");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -231,9 +231,14 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
// 尝试放开Linux文件的读写权限
|
// 尝试放开Linux文件的读写权限
|
||||||
File.SetAttributes(seasonFile, FileAttributes.Normal);
|
var fileInfo = new FileInfo(episodeFile)
|
||||||
Console.WriteLine("Write to " + seasonFile);
|
{
|
||||||
episodeXml.Save(seasonFile);
|
Attributes = FileAttributes.Normal,
|
||||||
|
IsReadOnly = false
|
||||||
|
};
|
||||||
|
fileInfo.Refresh();
|
||||||
|
|
||||||
|
episodeXml.Save(episodeFile);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@@ -241,7 +246,7 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Console.WriteLine($"{seasonFile} & {title} & {overview}");
|
Console.WriteLine($"{episodeFile} & {title} & {overview}");
|
||||||
|
|
||||||
await Task.Delay(10000);
|
await Task.Delay(10000);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user