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