feat: 实现除刷新凭据外的功能,在 main 中给出使用示例

This commit is contained in:
amtoaer
2024-03-18 00:14:52 +08:00
parent b8d035550d
commit 210a72c9cf
12 changed files with 739 additions and 150 deletions

View File

@@ -1,3 +1,45 @@
fn main() {
println!("Hello, world!");
use std::rc::Rc;
use bili_sync::bilibili::{
AudioQuality, BiliClient, FavoriteList, Video, VideoCodecs, VideoQuality,
};
use futures_util::{pin_mut, StreamExt};
#[tokio::main]
async fn main() {
let bili_client = Rc::new(BiliClient::anonymous());
let favorite_list = FavoriteList::new(bili_client.clone(), "52642258".to_string());
dbg!(favorite_list.get_info().await.unwrap());
let video_stream = favorite_list.into_video_stream();
// from doc: https://docs.rs/async-stream/latest/async_stream/
pin_mut!(video_stream);
let mut count = 3;
let mut third_video = None;
while let Some(mut video) = video_stream.next().await {
count -= 1;
video = dbg!(video);
if count <= 0 {
third_video = Some(video);
break;
}
}
let third_video = Video::new(bili_client.clone(), third_video.unwrap().bvid);
dbg!(third_video.get_tags().await.unwrap());
let pages = dbg!(third_video.get_pages().await.unwrap());
dbg!(third_video
.get_page_analyzer(&pages[0])
.await
.unwrap()
.best_stream(
VideoQuality::QualityDolby,
VideoQuality::Quality360p,
AudioQuality::QualityDolby,
AudioQuality::Quality64k,
vec![VideoCodecs::HEV, VideoCodecs::AVC],
false,
false,
false,
false,
))
.unwrap();
}