missav bugfixes
This commit is contained in:
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user