更新TMDB

This commit is contained in:
limil 2026-01-04 21:42:22 +08:00
parent 447aaf12e7
commit 546544b911
4 changed files with 49 additions and 34 deletions

View File

@ -2,5 +2,6 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APath_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F94e5a9ba04d74002870fbeeec71ff78cca738_003F85_003Fce11ac0c_003FPath_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003APath_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F94e5a9ba04d74002870fbeeec71ff78cca738_003F85_003Fce11ac0c_003FPath_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARawInfoPanel_005FScriptMethods_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9fdf5fe7bab299c9c5ee4ca6784782ae9851b9b_003FRawInfoPanel_005FScriptMethods_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARawInfoPanel_005FScriptMethods_002Egenerated_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003F9fdf5fe7bab299c9c5ee4ca6784782ae9851b9b_003FRawInfoPanel_005FScriptMethods_002Egenerated_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa03380083db34a2faee436e29e06a72ae8e910_003Fa8_003Fec982e59_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa03380083db34a2faee436e29e06a72ae8e910_003Fa8_003Fec982e59_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATMDbClient_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003FAppData_003FRoaming_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F0c3532d6bbaa48c3a27ccb9eb789e88055a00_003Fe0_003F63a8d0e4_003FTMDbClient_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATreeItem_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1c378f459c054fecaf4484a0fa6d44c055a800_003F1d_003Fbc7bd422_003FTreeItem_002Ecs/@EntryIndexedValue">ForceIncluded</s:String> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATreeItem_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1c378f459c054fecaf4484a0fa6d44c055a800_003F1d_003Fbc7bd422_003FTreeItem_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATree_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1c378f459c054fecaf4484a0fa6d44c055a800_003F9d_003Fbcfb64ab_003FTree_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary> <s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATree_002Ecs_002Fl_003AC_0021_003FUsers_003Flianzefeng_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F1c378f459c054fecaf4484a0fa6d44c055a800_003F9d_003Fbcfb64ab_003FTree_002Ecs/@EntryIndexedValue">ForceIncluded</s:String></wpf:ResourceDictionary>

View File

@ -45,7 +45,6 @@ public static class ItemFields
public static string Key_Episode => "Episode"; public static string Key_Episode => "Episode";
public static string Key_Year => "Year"; public static string Key_Year => "Year";
public static string Key_EpisodeNum => "EpisodeNum";
public static string Key_TMDBID => "TMDBID"; public static string Key_TMDBID => "TMDBID";
public static ItemType Type(this Item item) public static ItemType Type(this Item item)

View File

@ -19,9 +19,18 @@ public class RawParser(Configs configs) : ItemParser
var result = parts.ToList(); var result = parts.ToList();
foreach (var regex in config.TokenFilterRules.Regexes) foreach (var regex in config.TokenFilterRules.Regexes)
{ {
result.RemoveAll(part => string.IsNullOrEmpty(part.Trim()) || Regex.Match(part.Trim(), regex).Success); result = result.Select(part =>
{
var match = Regex.Match(part.Trim(), regex);
if (match.Success)
{
return part.Replace(match.Value, "").Trim();
} }
return result;
return part.Trim();
}).ToList();
}
return result.Where(part => !string.IsNullOrEmpty(part)).ToList();
} }
private List<string> GetParts(Item item) private List<string> GetParts(Item item)

View File

@ -20,7 +20,7 @@ public class TMDBParser(Configs configs) : ItemParser
private TMDbClient _client; private TMDbClient _client;
private async Task<SearchTv> QueryTMDB(string title) private async Task<SearchTv> QueryTMDB(string title, int year)
{ {
if (string.IsNullOrEmpty(title)) return null; if (string.IsNullOrEmpty(title)) return null;
@ -29,7 +29,7 @@ public class TMDBParser(Configs configs) : ItemParser
return result; return result;
} }
var results = (await GetTMDbClient().SearchTvShowAsync(title, language: "zh-CN")).Results; var results = (await GetTMDbClient().SearchTvShowAsync(title, language: "zh-CN", firstAirDateYear:year)).Results;
result = results.FirstOrDefault(); result = results.FirstOrDefault();
_cache[title] = result; _cache[title] = result;
return result; return result;
@ -58,34 +58,40 @@ public class TMDBParser(Configs configs) : ItemParser
public async Task Parse(TreeNode node) public async Task Parse(TreeNode node)
{ {
// if (!node.TryGetValue(ItemFields.Key_RawTitle, out var rawTitle, out _)) if (node.TryGetValue(ItemFields.Key_Title, out _, out _)) return;
// {
// if (!DoRawParse(node)) if (!node.TryGetValue(ItemFields.Key_RawTitle, out var rawTitle, out _))
// { {
// return false; return;
// } }
// node.TryGetValue(ItemFields.Key_RawTitle, out rawTitle, out _);
// } if (string.IsNullOrEmpty(rawTitle))
// {
// if (string.IsNullOrEmpty(rawTitle)) return ;
// { }
// return false;
// } int year = 0;
// if (node.TryGetValue(ItemFields.Key_Year, out var yearStr, out _))
// var result = await QueryTMDB(rawTitle); {
// if (result == null) if (int.TryParse(yearStr, out var yearValue))
// { {
// GD.PrintErr($"找不到对应的TV{rawTitle}"); year = yearValue;
// return false; }
// } }
//
// if (result.FirstAirDate != null) var result = await QueryTMDB(rawTitle, year);
// { if (result == null)
// node.Info.SetYear(result.FirstAirDate.Value.Year); {
// } GD.PrintErr($"找不到对应的TV{rawTitle}");
// return;
// node.Info.SetTitleIfNotExist(result.Name); }
//
// return true; if (result.FirstAirDate != null)
{
node.Info.Info[ItemFields.Key_Year] = result.FirstAirDate.Value.Year.ToString();
}
node.Info.Info[ItemFields.Key_Title] = result.Name;
node.Info.Info[ItemFields.Key_TMDBID] = result.Id.ToString();
} }
} }