Files

37 lines
1007 B
Dart
Raw Permalink Normal View History

2026-07-14 11:11:36 +08:00
import '../../core/contracts/library.dart';
import '../../core/contracts/tmdb.dart';
import '../mappers/tmdb_image_url.dart';
int? seasonNumberFrom(EmbyRawSeason season) {
final indexNumber = season.IndexNumber;
if (indexNumber != null) return indexNumber;
final name = season.Name.trim().toLowerCase();
if (name == 'specials' || name == '特别篇' || name == 'sp') return 0;
final match = RegExp(r'\d+').firstMatch(season.Name);
if (match == null) return null;
return int.tryParse(match.group(0)!);
}
Map<int, String> tmdbStillUrlsByEpisode(
TmdbSeasonDetail? season,
String? imageBaseUrl,
) {
if (season == null || imageBaseUrl == null || imageBaseUrl.isEmpty) {
return const {};
}
final urls = <int, String>{};
for (final episode in season.episodes) {
final url = TmdbImageUrl.still(
imageBaseUrl,
episode.stillPath,
size: 'w500',
);
if (url != null && url.isNotEmpty) {
urls[episode.episodeNumber] = url;
}
}
return urls;
}