feat: add AniList browsing with on-demand ZokoAnime playback
This commit is contained in:
@@ -67,3 +67,31 @@ fn catalog_and_actual_episode_numbers_remain_distinct() {
|
||||
""
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn anilist_catalog_numbers_are_not_planned_totals_or_stream_claims() {
|
||||
let metadata = serde_json::json!({"id":"1","catalog_provider":"anilist","title":{"romaji":"Cowboy Bebop"},"status":"FINISHED","episode_count":26,"catalog_count":26});
|
||||
let series = anilist_series(metadata).unwrap();
|
||||
assert_eq!(series.episodes.len(), 26);
|
||||
assert_eq!(
|
||||
series.episodes.last().unwrap().identity.key(),
|
||||
"anilist:1:26"
|
||||
);
|
||||
let snapshot = series.episodes[0].snapshot(&series.media);
|
||||
assert_eq!(snapshot.channel.as_deref(), Some("AniList"));
|
||||
assert_eq!(
|
||||
crate::youtube::video_url(&snapshot.id).unwrap(),
|
||||
"https://zokoanime.video/stream/ani/1/1/sub"
|
||||
);
|
||||
let ongoing = anilist_series(serde_json::json!({"id":"2","catalog_provider":"anilist","title":{"romaji":"Ongoing"},"status":"RELEASING","episode_count":24,"nextAiringEpisode":{"episode":4},"catalog_count":3})).unwrap();
|
||||
assert_eq!(ongoing.episodes.len(), 3);
|
||||
let unknown = anilist_series(serde_json::json!({"id":"3","catalog_provider":"anilist","title":{"romaji":"Unknown"},"status":"RELEASING","episode_count":null,"catalog_count":null})).unwrap();
|
||||
assert!(unknown.episodes.is_empty());
|
||||
assert!(unknown.media.metadata["catalog_count"].is_null());
|
||||
assert_eq!(
|
||||
anilist_episode(&unknown.media, 42).unwrap().identity.key(),
|
||||
"anilist:3:42"
|
||||
);
|
||||
assert!(anilist_episode(&unknown.media, 0).is_err());
|
||||
assert!(anilist_episode(&unknown.media, i32::MAX as u32 + 1).is_err());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user