From ec1d7b8eef73abcbc6c54cfcca265dc7e7ab5421 Mon Sep 17 00:00:00 2001 From: Simon Date: Fri, 6 Jun 2025 08:51:24 +0000 Subject: [PATCH] cleanup and fixed faulty perverzija urls --- Cargo.toml | 6 +----- migrations/create_videos/up.sql | 2 +- src/main.rs | 4 ++-- src/providers/perverzija.rs | 25 +++++++++++++++++-------- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f701937..d48af4f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,9 @@ [package] name = "hottub" version = "0.1.0" -edition = "2021" +edition = "2024" [dependencies] -async-trait = "0.1.88" -awc = "3.7.0" diesel = { version = "2.2.10", features = ["sqlite", "r2d2"] } dotenvy = "0.15.7" env_logger = "0.11.8" @@ -14,9 +12,7 @@ futures = "0.3.31" htmlentity = "1.3.2" ntex = { version = "2.0", features = ["tokio"] } ntex-files = "2.0.0" -once_cell = "1.21.3" reqwest = { version = "0.12.18", features = ["blocking", "json", "rustls-tls"] } serde = "1.0.219" serde_json = "1.0.140" -tokio = { version = "1.45.1", features = ["full"] } diff --git a/migrations/create_videos/up.sql b/migrations/create_videos/up.sql index 67059f5..781ca1b 100644 --- a/migrations/create_videos/up.sql +++ b/migrations/create_videos/up.sql @@ -1,7 +1,7 @@ -- Your SQL goes here CREATE TABLE videos ( id TEXT NOT NULL PRIMARY KEY, -- like url parts to uniquely identify a video - url TEXT NOT NULL UNIQUE--, + url TEXT NOT NULL--, --views INTEGER, --rating INTEGER, --uploader TEXT diff --git a/src/main.rs b/src/main.rs index 403686d..f7f4c49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,5 @@ +#![warn(unused_extern_crates)] #![allow(non_snake_case)] -extern crate diesel; use diesel::{r2d2::{self, ConnectionManager}, SqliteConnection}; use dotenvy::dotenv; @@ -19,7 +19,7 @@ type DbPool = r2d2::Pool>; #[ntex::main] async fn main() -> std::io::Result<()> { - std::env::set_var("RUST_BACKTRACE", "1"); + // std::env::set_var("RUST_BACKTRACE", "1"); env_logger::init(); // You need this to actually see logs dotenv().ok(); diff --git a/src/providers/perverzija.rs b/src/providers/perverzija.rs index d827f83..545e8c2 100644 --- a/src/providers/perverzija.rs +++ b/src/providers/perverzija.rs @@ -307,6 +307,7 @@ impl PerverzijaProvider { .into_iter() .filter_map(Result::ok) .collect(); + return items; } @@ -316,10 +317,6 @@ impl PerverzijaProvider { return Err("Unexpected video snippet length".into()); } - // for (index,line) in vid.iter().enumerate() { - // println!("Line {}: {}", index, line.to_string().trim()); - // } - let mut title = vid[5].split(" title=\"").collect::>()[1] .split("\"") .collect::>()[0] @@ -350,6 +347,9 @@ impl PerverzijaProvider { let db_result = db::get_video(&mut conn,lookup_url.clone()); match db_result { Ok(Some(url)) => { + if url.starts_with("!"){ + return Err("Video was removed".into()); + } let mut id = url.split("data=").collect::>()[1] .to_string(); if id.contains("&"){ @@ -373,13 +373,16 @@ impl PerverzijaProvider { } return Ok(video_item); } - Ok(None) => (), + Ok(None) => { + println!("Couldnt find {}", lookup_url); + }, Err(e) => { println!("Error fetching video from database: {}", e); // return Err(format!("Error fetching video from database: {}", e).into()); } } drop(conn); + let client = match env::var("BURP_URL").as_deref() { Ok(burp_url) => @@ -398,21 +401,27 @@ impl PerverzijaProvider { let text = match response.status().is_success(){ true => response.text().await?, false => { + println!("Failed to fetch video details"); return Err("Failed to fetch video details".into()); } }; - let url = text.split("