missav bugfixes

This commit is contained in:
Simon
2025-12-04 11:54:31 +00:00
parent e22a3f2d6d
commit 75e28608bd

View File

@@ -3,6 +3,7 @@ use async_trait::async_trait;
use error_chain::error_chain; use error_chain::error_chain;
use htmlentity::entity::{decode, ICodedDataTrait}; use htmlentity::entity::{decode, ICodedDataTrait};
use futures::future::join_all; use futures::future::join_all;
use wreq::Version;
use crate::db; use crate::db;
use crate::providers::Provider; use crate::providers::Provider;
use crate::util::cache::VideoCache; use crate::util::cache::VideoCache;
@@ -30,14 +31,16 @@ impl MissavProvider {
url: "https://missav.ws".to_string() url: "https://missav.ws".to_string()
} }
} }
async fn get(&self, cache:VideoCache, pool:DbPool, page: u8, sort: String, options: ServerOptions) -> Result<Vec<VideoItem>> { async fn get(&self, cache:VideoCache, pool:DbPool, page: u8, mut sort: String, options: ServerOptions) -> Result<Vec<VideoItem>> {
// Extract needed fields from options at the start // Extract needed fields from options at the start
let language = options.language.clone().unwrap(); let language = options.language.clone().unwrap();
let filter = options.filter.clone().unwrap(); let filter = options.filter.clone().unwrap();
let mut requester = options.requester.clone().unwrap(); let mut requester = options.requester.clone().unwrap();
if !sort.is_empty(){
let url_str = format!("{}/{}/{}?page={}&sort={}", self.url, language, filter, page, sort); sort = format!("&sort={}", sort);
}
let url_str = format!("{}/{}/{}?page={}{}", self.url, language, filter, page, sort);
let old_items = match cache.get(&url_str) { let old_items = match cache.get(&url_str) {
Some((time, items)) => { Some((time, items)) => {
@@ -53,7 +56,7 @@ impl MissavProvider {
} }
}; };
let text = requester.get(&url_str, None).await.unwrap(); let text = requester.get(&url_str, Some(Version::HTTP_2)).await.unwrap();
// Pass a reference to options if needed, or reconstruct as needed // Pass a reference to options if needed, or reconstruct as needed
let video_items: Vec<VideoItem> = self.get_video_items_from_html(text.clone(), pool, requester).await; let video_items: Vec<VideoItem> = self.get_video_items_from_html(text.clone(), pool, requester).await;
if !video_items.is_empty() { if !video_items.is_empty() {
@@ -148,7 +151,7 @@ impl MissavProvider {
} }
} }
drop(conn); drop(conn);
let vid = requester.get(&url_str, None).await.unwrap(); let vid = requester.get(&url_str, Some(Version::HTTP_2)).await.unwrap();
let mut title = vid.split("<meta property=\"og:title\" content=\"").collect::<Vec<&str>>()[1] let mut title = vid.split("<meta property=\"og:title\" content=\"").collect::<Vec<&str>>()[1]
.split("\"") .split("\"")
.collect::<Vec<&str>>()[0].trim() .collect::<Vec<&str>>()[0].trim()