Improve error handling and logging in ChineseNfoRegistry job methods; adjust delay duration for TMDB API calls
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 12s
Docker Build & Deploy / Deploy to Production (push) Successful in 4s

This commit is contained in:
孙诚
2025-04-16 18:54:25 +08:00
parent bf4faca1a7
commit ec3434da82

View File

@@ -94,14 +94,26 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
foreach (var tv in tvNfos)
{
await HandleTv(tv);
try
{
await HandleTv(tv);
}
catch (Exception e)
{
_logger.LogError(e, "ChineseNfoRegistry.Job() HandleTv() error");
}
var seasonNfos = Directory.GetFiles(Path.GetDirectoryName(tv) ?? string.Empty, "season.nfo", SearchOption.AllDirectories);
foreach (var season in seasonNfos)
{
await HandleSeason(tv, season);
try
{
await HandleSeason(tv, season);
}
catch (Exception e)
{
_logger.LogError(e, "ChineseNfoRegistry.Job() HandleSeason() error");
}
var episodeNfos = Directory
.GetFiles(Path.GetDirectoryName(season) ?? string.Empty, "*.nfo", SearchOption.AllDirectories)
.Where(x => !x.EndsWith("season.nfo"))
@@ -109,7 +121,14 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
foreach (var episode in episodeNfos)
{
await HandleEpisode(tv, season, episode);
try
{
await HandleEpisode(tv, season, episode);
}
catch (Exception e)
{
_logger.LogError(e, "ChineseNfoRegistry.Job() episodeNfo is null or empty");
}
}
}
}
@@ -173,6 +192,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
sorttitleNode.InnerXml = $"<![CDATA[{tvInfo["name"]}]]>";
}
_logger.LogInformation("ChineseNfoRegistry.Job() tvInfo: {tvInfo}", tvInfo["name"]);
}
if (tvInfo["overview"] != null)
@@ -188,6 +209,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
outlineNode.InnerXml = $"<![CDATA[{tvInfo["overview"]}]]>";
}
_logger.LogInformation("ChineseNfoRegistry.Job() tvInfo: {tvInfo}", tvInfo["overview"]);
}
if (tvInfo["poster_path"] != null)
@@ -220,7 +243,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("locked");
isLockedNode = tvXml.SelectSingleNode("//locked");
isLockedNode!.InnerText = "true";
if (isLockedNode != null)
{
isLockedNode.InnerText = "true";
}
}
if (isCompletedNode != null)
@@ -231,7 +257,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("completed");
isCompletedNode = tvXml.SelectSingleNode("//completed");
isCompletedNode!.InnerText = "true";
if (isCompletedNode != null)
{
isCompletedNode.InnerText = "true";
}
}
// 保存
@@ -305,18 +334,21 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
var titleNode = seasonXml.SelectSingleNode("//sorttitle");
if (titleNode != null && seasonInfo["name"] != null)
{
_logger.LogInformation("ChineseNfoRegistry.Job() seasonInfo: {seasonInfo}", seasonInfo["name"]);
titleNode.InnerXml = $"<![CDATA[{seasonInfo["name"]}]]>";
}
var plotNode = seasonXml.SelectSingleNode("//plot");
if (plotNode != null && seasonInfo["overview"] != null)
{
_logger.LogInformation("ChineseNfoRegistry.Job() seasonInfo: {seasonInfo}", seasonInfo["overview"]);
plotNode.InnerXml = $"<![CDATA[{seasonInfo["overview"]}]]>";
}
var outlineNode = seasonXml.SelectSingleNode("//outline");
if (outlineNode != null && seasonInfo["overview"] != null)
{
_logger.LogInformation("ChineseNfoRegistry.Job() seasonInfo: {seasonInfo}", seasonInfo["overview"]);
outlineNode.InnerXml = $"<![CDATA[{seasonInfo["overview"]}]]>";
}
@@ -326,7 +358,6 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
var image = await GetTmdbImage(seasonNfo, poster_path);
if (image != null)
{
// season01-poster.jpg
var imagePath = Path.Combine(Path.GetDirectoryName(tvNfo) ?? string.Empty, "season" + seasonNumber.ToString("D2") + "-poster" + Path.GetExtension(poster_path));
await File.WriteAllBytesAsync(imagePath, image);
}
@@ -340,7 +371,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("locked");
isLockedNode = tvXml.SelectSingleNode("//locked");
isLockedNode!.InnerText = "true";
if (isLockedNode != null)
{
isLockedNode.InnerText = "true";
}
}
if (isCompletedNode != null)
@@ -351,7 +385,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("completed");
isCompletedNode = tvXml.SelectSingleNode("//completed");
isCompletedNode!.InnerText = "true";
if (isCompletedNode != null)
{
isCompletedNode.InnerText = "true";
}
}
seasonXml.Save(seasonNfo);
@@ -444,19 +481,21 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
var titleNode = episodeXml.SelectSingleNode("//title");
if (titleNode != null && episodeInfo["name"] != null)
{
// 特殊符号保留
_logger.LogInformation("ChineseNfoRegistry.Job() episodeInfo: {episodeInfo}", episodeInfo["name"]);
titleNode.InnerXml = $"<![CDATA[{episodeInfo["name"]}]]>";
}
var plotNode = episodeXml.SelectSingleNode("//plot");
if (plotNode != null && episodeInfo["overview"] != null)
{
_logger.LogInformation("ChineseNfoRegistry.Job() episodeInfo: {episodeInfo}", episodeInfo["overview"]);
plotNode.InnerXml = $"<![CDATA[{episodeInfo["overview"]}]]>";
}
var outlineNode = episodeXml.SelectSingleNode("//outline");
if (outlineNode != null && episodeInfo["overview"] != null)
{
_logger.LogInformation("ChineseNfoRegistry.Job() episodeInfo: {episodeInfo}", episodeInfo["overview"]);
outlineNode.InnerXml = $"<![CDATA[{episodeInfo["overview"]}]]>";
}
@@ -479,7 +518,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("locked");
isLockedNode = tvXml.SelectSingleNode("//locked");
isLockedNode!.InnerText = "true";
if (isLockedNode != null)
{
isLockedNode.InnerText = "true";
}
}
if (isCompletedNode != null)
@@ -490,7 +532,10 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
{
tvXml.CreateElement("completed");
isCompletedNode = tvXml.SelectSingleNode("//completed");
isCompletedNode!.InnerText = "true";
if (isCompletedNode != null)
{
isCompletedNode.InnerText = "true";
}
}
// 保存
@@ -551,6 +596,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
nameNode = actor.SelectSingleNode("name");
nameNode!.InnerXml = $"<![CDATA[{name}]]>";
}
_logger.LogInformation("ChineseNfoRegistry.Job() actor: {actor}", name);
}
}
}
@@ -594,8 +641,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
record.Json = str;
await _freeSql.Insert(record).ExecuteIdentityAsync();
_logger.LogInformation("ChineseNfoRegistry.GetTmdbTv() 接口调用, 休眠 5S");
await Task.Delay(5000);
_logger.LogInformation("ChineseNfoRegistry.GetTmdbTv() 接口调用, 休眠 1S");
await Task.Delay(1000);
return json;
}
@@ -646,8 +693,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
record.Json = str;
await _freeSql.Insert(record).ExecuteIdentityAsync();
_logger.LogInformation("ChineseNfoRegistry.GetTmdbPerson() 接口调用, 休眠 5S");
await Task.Delay(5000);
_logger.LogInformation("ChineseNfoRegistry.GetTmdbPerson() 接口调用, 休眠 1S");
await Task.Delay(1000);
return json;
}
@@ -703,8 +750,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
record.Json = result.ToString();
await _freeSql.Insert(record).ExecuteIdentityAsync();
_logger.LogInformation("ChineseNfoRegistry.GetTmdbPersonSearch() 接口调用, 休眠 5S");
await Task.Delay(5000);
_logger.LogInformation("ChineseNfoRegistry.GetTmdbPersonSearch() 接口调用, 休眠 1S");
await Task.Delay(1000);
return result;
}
@@ -784,8 +831,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
record.Json = str;
await _freeSql.Insert(record).ExecuteIdentityAsync();
_logger.LogInformation("ChineseNfoRegistry.GetTmdbSeason() 接口调用, 休眠 5S");
await Task.Delay(5000);
_logger.LogInformation("ChineseNfoRegistry.GetTmdbSeason() 接口调用, 休眠 1S");
await Task.Delay(1000);
return JObject.Parse(str);
}
@@ -837,8 +884,8 @@ public class ChineseNfoRegistry : Registry, IChineseNfoRegistry
record.Json = str;
await _freeSql.Insert(record).ExecuteIdentityAsync();
_logger.LogInformation("ChineseNfoRegistry.GetTmdbEpisode() 接口调用, 休眠 5S");
await Task.Delay(5000);
_logger.LogInformation("ChineseNfoRegistry.GetTmdbEpisode() 接口调用, 休眠 1S");
await Task.Delay(1000);
return JObject.Parse(str);
}