* Sanity refactor to clean up common warnings
! ALso using the new common module
This commit is contained in:
parent
ba7cd26f3a
commit
e049512c03
@ -1,7 +1,8 @@
|
||||
use serde::Serialize;
|
||||
use std::fs::DirEntry;
|
||||
use std::{io, env};
|
||||
use std::io;
|
||||
use rocket::serde::json::Json;
|
||||
use crate::common::get_clips_dir;
|
||||
|
||||
#[derive(Serialize)]
|
||||
pub struct Category {
|
||||
@ -15,7 +16,7 @@ pub struct Category {
|
||||
struct List {
|
||||
categories: Vec<Category>
|
||||
}
|
||||
fn get_category_dirs(path: &str) -> std::io::Result<Vec<DirEntry>> {
|
||||
pub fn get_category_dirs(path: &str) -> std::io::Result<Vec<DirEntry>> {
|
||||
let path = std::path::Path::new(path);
|
||||
if !path.is_dir() {
|
||||
let e = io::Error::new(io::ErrorKind::NotFound, "Unable to open");
|
||||
@ -35,10 +36,7 @@ fn get_category_dirs(path: &str) -> std::io::Result<Vec<DirEntry>> {
|
||||
pub fn list() -> Json<Vec<Category>> {
|
||||
// WARN: misconfigured servers are just going to get shafted and serve up
|
||||
// a tonne of 500's
|
||||
let dir = match env::var("CLIPS_DIR") {
|
||||
Ok(val) => val,
|
||||
Err(_) => "/media/clips/".to_string()
|
||||
};
|
||||
let dir = get_clips_dir();
|
||||
|
||||
let mut cats: Vec<Category> = Vec::new();
|
||||
if let Ok(dirs) = get_category_dirs(&dir) {
|
||||
|
15
api/src/common.rs
Normal file
15
api/src/common.rs
Normal file
@ -0,0 +1,15 @@
|
||||
use std::env;
|
||||
|
||||
pub fn get_clips_dir() -> String {
|
||||
return match env::var("CLIPS_DIR") {
|
||||
Ok(val) => val,
|
||||
Err(_) => String::from("/media/clips/".to_string())
|
||||
}
|
||||
}
|
||||
|
||||
pub fn thumbs_dir() -> String {
|
||||
return match env::var("THUMBS_DIR") {
|
||||
Ok(val) => val,
|
||||
Err(_) => String::from("/media/thumbnails/".to_string())
|
||||
}
|
||||
}
|
@ -7,6 +7,7 @@ mod page;
|
||||
mod category;
|
||||
mod video;
|
||||
mod thumbnail;
|
||||
mod common;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
|
@ -1,13 +1,11 @@
|
||||
// THis module basically takes care of the thumnail
|
||||
use rocket::fs::NamedFile;
|
||||
use std::path::{Path, PathBuf};
|
||||
use crate::common::thumbs_dir;
|
||||
|
||||
#[get("/<file..>")]
|
||||
pub async fn get(file: PathBuf) -> Option<NamedFile> {
|
||||
let clips_dir = match std::env::var("THUMBS_DIR") {
|
||||
Ok(val) => val,
|
||||
Err(_) => "/media/thumbnails/".to_string()
|
||||
};
|
||||
let clips_dir = thumbs_dir();
|
||||
|
||||
// Only serve jpg's and png's through this route
|
||||
return match file.extension() {
|
||||
Some(ext) => {
|
||||
|
Loading…
Reference in New Issue
Block a user