Files
2026-07-14 11:11:36 +08:00

29 lines
820 B
Dart

import '../../core/contracts/library.dart';
import '../../providers/di_providers.dart';
String tmdbIdFromItem(EmbyRawItem item) {
final rawProviderIds = item.extra['ProviderIds'];
if (rawProviderIds is! Map) return '';
for (final entry in rawProviderIds.entries) {
final key = entry.key?.toString().trim().toLowerCase() ?? '';
final value = entry.value?.toString().trim() ?? '';
if (key == 'tmdb' && value.isNotEmpty) return value;
}
return '';
}
TmdbMediaKey? tmdbMediaKeyFrom(EmbyRawItem item) {
final mediaType = switch (item.Type) {
'Movie' => 'movie',
'Series' || 'Episode' || 'Season' => 'tv',
_ => null,
};
if (mediaType == null) return null;
final tmdbId = tmdbIdFromItem(item);
if (tmdbId.isEmpty) return null;
return (tmdbId: tmdbId, mediaType: mediaType);
}