missav fix in place
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -18,4 +18,5 @@ Cargo.lock
|
|||||||
*.db
|
*.db
|
||||||
migrations/.keep
|
migrations/.keep
|
||||||
.mcp.json
|
.mcp.json
|
||||||
*.mp4*
|
*.mp4*
|
||||||
|
prompts/new-channel.md
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ use crate::videos::VideoItem;
|
|||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
use diesel::r2d2;
|
use diesel::r2d2;
|
||||||
use error_chain::error_chain;
|
use error_chain::error_chain;
|
||||||
use futures::future::join_all;
|
use futures::stream::{self, StreamExt};
|
||||||
use htmlentity::entity::{ICodedDataTrait, decode};
|
use htmlentity::entity::{ICodedDataTrait, decode};
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
@@ -357,14 +357,16 @@ impl MissavProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let futures = urls
|
stream::iter(urls.into_iter().map(|url| {
|
||||||
.into_iter()
|
let pool = pool.clone();
|
||||||
.map(|url| self.get_video_item(url, pool.clone(), requester.clone()));
|
let requester = requester.clone();
|
||||||
join_all(futures)
|
let provider = self.clone();
|
||||||
.await
|
async move { provider.get_video_item(url, pool, requester).await }
|
||||||
.into_iter()
|
}))
|
||||||
.filter_map(Result::ok)
|
.buffer_unordered(4)
|
||||||
.collect()
|
.filter_map(|result| async move { result.ok() })
|
||||||
|
.collect::<Vec<_>>()
|
||||||
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_video_item(
|
async fn get_video_item(
|
||||||
|
|||||||
Reference in New Issue
Block a user