MOCK API for tests

This commit is contained in:
Simon
2025-06-01 18:09:20 +00:00
parent 918ed1a125
commit ae8fd8e922
3 changed files with 94 additions and 43 deletions

View File

@@ -27,6 +27,7 @@ impl PerverzijaProvider {
}
}
async fn get(&self, page: &u8, featured: String) -> Result<Vec<Video_Item>> {
println!("get");
let mut prefix_uri = "".to_string();
if featured == "featured" {
prefix_uri = "featured-scenes/".to_string();
@@ -41,10 +42,10 @@ impl PerverzijaProvider {
let req = FlareSolverrRequest {
cmd: "request.get".to_string(),
url: url.clone(),
session: "hottub".to_string(),
maxTimeout: 60000,
};
let response = flare.solve(req).await;
// println!("Response: {:?}", response);
match response {
Ok(html) => {
let video_items = self.get_video_items_from_html(html.clone());
@@ -57,6 +58,7 @@ impl PerverzijaProvider {
}
}
async fn query(&self, page: &u8, query: &str) -> Result<Vec<Video_Item>> {
println!("query: {}", query);
let search_string = query.replace(" ", "+");
let mut url = format!(
"{}advanced-search/?_sf_s={}&sf_paged={}",
@@ -72,7 +74,6 @@ impl PerverzijaProvider {
let req = FlareSolverrRequest {
cmd: "request.get".to_string(),
url: url.clone(),
session: "hottub".to_string(),
maxTimeout: 60000,
};
let response = flare.solve(req).await;
@@ -89,17 +90,19 @@ impl PerverzijaProvider {
}
fn get_video_items_from_html(&self, html: String) -> Vec<Video_Item> {
// println!("HTML: {}", html);
let mut items: Vec<Video_Item> = Vec::new();
let video_listing_content = html.split("video-listing-content").collect::<Vec<&str>>()[1];
let raw_videos = video_listing_content
.split("video-item post")
.collect::<Vec<&str>>()[1..]
.to_vec();
// println!("Raw Videos: {:?}", raw_videos);
println!("Raw Videos: {:?}", raw_videos);
for video_segment in &raw_videos {
let vid = video_segment.split("\n").collect::<Vec<&str>>();
let mut index = 0;
// let mut index = 0;
if vid.len() > 20 {
println!("Skipping video segment with unexpected length: {}", vid.len());
continue;
}
// for line in vid.clone() {
@@ -111,6 +114,7 @@ impl PerverzijaProvider {
.split("<")
.collect::<Vec<&str>>()[0]
.to_string();
println!("Title: {}", title);
// html decode
title = decode(title.as_bytes()).to_string().unwrap_or(title);
let url = vid[1].split("iframe src=&quot;").collect::<Vec<&str>>()[1]