missav fix in place

This commit is contained in:
Simon
2026-05-18 19:55:04 +00:00
committed by ForgeCode
parent 21270aa266
commit cca234664e
2 changed files with 13 additions and 10 deletions

3
.gitignore vendored
View File

@@ -18,4 +18,5 @@ Cargo.lock
*.db *.db
migrations/.keep migrations/.keep
.mcp.json .mcp.json
*.mp4* *.mp4*
prompts/new-channel.md

View File

@@ -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(