更新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_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_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_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_Year => "Year";
public static string Key_EpisodeNum => "EpisodeNum";
public static string Key_TMDBID => "TMDBID";
public static ItemType Type(this Item item)

View File

@ -19,9 +19,18 @@ public class RawParser(Configs configs) : ItemParser
var result = parts.ToList();
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)

View File

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