diff --git a/src/api.rs b/src/api.rs index 9b747d4..71d2840 100644 --- a/src/api.rs +++ b/src/api.rs @@ -16,7 +16,7 @@ use crate::providers::redtube::RedtubeProvider; use crate::providers::rule34video::Rule34videoProvider; use crate::providers::spankbang::SpankbangProvider; use crate::util::cache::VideoCache; -use crate::{DbPool, providers::*, status::*, videos::*}; +use crate::{db, providers::*, status::*, videos::*, DbPool}; use cute::c; #[derive(Debug)] @@ -690,6 +690,13 @@ async fn videos_post( cache: web::types::State, pool: web::types::State, ) -> Result { + + let mut conn = pool.get().expect("couldn't get db connection from pool"); + // Ensure "videos" table exists with two string columns + if !(db::has_table(&mut conn, "videos").unwrap()){ + db::create_table(&mut conn, "CREATE TABLE videos (id TEXT NOT NULL, url TEXT NOT NULL);"); + } + let mut videos = Videos { pageInfo: PageInfo { hasNextPage: true, @@ -803,6 +810,7 @@ pub fn get_provider(channel: &str) -> Option { "okxxx" => Some(AnyProvider::Okxxx(crate::providers::okxxx::OkxxxProvider::new())), "homoxxx" => Some(AnyProvider::Homoxxx(crate::providers::homoxxx::HomoxxxProvider::new())), "hentaimoon" => Some(AnyProvider::Hentaimoon(crate::providers::hentaimoon::HentaimoonProvider::new())), + "missav" => Some(AnyProvider::Missav(crate::providers::missav::MissavProvider::new())), _ => Some(AnyProvider::Perverzija(PerverzijaProvider::new())), } } diff --git a/src/db.rs b/src/db.rs index b558b89..8023d21 100644 --- a/src/db.rs +++ b/src/db.rs @@ -14,6 +14,7 @@ pub fn get_video(conn: &mut SqliteConnection, video_id: String) -> Result