Improve error handling and logging in ChineseNfoRegistry job methods; adjust delay duration for TMDB API calls
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user