Skip to content

Commit

Permalink
change to mime2ext until abonander/mime_guess#59 is fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
gillett-hernandez committed Aug 9, 2023
1 parent 7b4a6df commit e41223c
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 38 deletions.
21 changes: 4 additions & 17 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ clap = { version = "3.2.23", features = [ "derive" ] }
hex = "0.4.3"
lazy_static = "1.4.0"
log = "0.4.17"
mime_guess = "2.0.4"
mime2ext = "0.1.52" # use mime2ext until https://github.com/abonander/mime_guess/issues/59 is fixed
pbr = "1.1.1"
regex = "1.7.1"
reqwest = { version = "0.11.14", features = [ "json" ] }
Expand All @@ -22,4 +22,4 @@ sha2 = "0.10.6"
simplelog = "0.12.0"
thiserror = "1.0.38"
tokio = { version = "1.25.0", features = [ "macros", "rt-multi-thread" ] }
toml = "0.7.2"
toml = "0.7.2"
15 changes: 9 additions & 6 deletions src/chapter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ impl ChapterMetadataSeries {

// Filter for TL group
chapters.iter()
.map(|(_, ms)| match ms.len() {
.map(|(_, ms)| match ms.len() {
1 => ms[0],
_ => ms.iter() // Guaranteed != 0
.filter(|m| match preferred_tl {
Expand Down Expand Up @@ -228,11 +228,14 @@ impl Chapter {
.ok_or(ImageDownloadError::NoContentType)?
.to_str()?;

let extension = mime_guess::get_mime_extensions_str(content_type)
.ok_or(ImageDownloadError::Mime)?
.iter().map(|s| *s)
.next()
.ok_or(ImageDownloadError::Mime)?;
// let extension = mime_guess::get_mime_extensions_str(content_type)
// .ok_or(ImageDownloadError::Mime)?
// .iter().map(|s| *s)
// .next()
// .ok_or(ImageDownloadError::Mime)?;
let Some(extension) = mime2ext::mime2ext(content_type) else {
return Err(ImageDownloadError::Mime);
};

// Get the body
let body = res.bytes().await?;
Expand Down
33 changes: 20 additions & 13 deletions src/coverart.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,26 @@ use crate::requester::RateLimitedRequester;
use crate::types::CoverArtData;
use crate::utils;

use std::path::Path;
use std::fs::{ self, File };
use std::fs::{self, File};
use std::io::Write;
use std::path::Path;

#[derive(Debug, Clone)]
pub struct CoverArt {
pub volume: String,
pub url: String,
}
impl CoverArt {
pub fn from_data(id:&str, data:CoverArtData) -> Option<Self> {
pub fn from_data(id: &str, data: CoverArtData) -> Option<Self> {
Some(Self {
volume: data.attributes.volume?,
url: format!("{}/{}", id, data.attributes.file_name),
})
}

pub fn from_response(id:&str, mut raw:Vec<CoverArtData>) -> Vec<Self> {
raw.drain(..).map(|r| Self::from_data(id, r))
pub fn from_response(id: &str, mut raw: Vec<CoverArtData>) -> Vec<Self> {
raw.drain(..)
.map(|r| Self::from_data(id, r))
.filter(|ca| ca.is_some())
.map(|ca| ca.unwrap())
.collect::<Vec<Self>>()
Expand All @@ -34,20 +35,26 @@ impl CoverArt {
}
}

pub async fn download(&self, requester:&mut RateLimitedRequester, master_directory:&Path) -> Result<(), ImageDownloadError> {
pub async fn download(
&self,
requester: &mut RateLimitedRequester,
master_directory: &Path,
) -> Result<(), ImageDownloadError> {
let master_path = master_directory.join(Path::new(&utils::escape_path(&self.get_volume())));
fs::create_dir_all(&master_path)?;

let res = requester.request("content", &format!("/covers/{}", &self.url)).await?;
let content_type = res.headers().get("Content-Type")
let res = requester
.request("content", &format!("/covers/{}", &self.url))
.await?;
let content_type = res
.headers()
.get("Content-Type")
.ok_or(ImageDownloadError::NoContentType)?
.to_str()?;

let extension = mime_guess::get_mime_extensions_str(content_type)
.ok_or(ImageDownloadError::Mime)?
.iter().map(|s| *s)
.next()
.ok_or(ImageDownloadError::Mime)?;
let Some(extension) = mime2ext::mime2ext(content_type) else {
return Err(ImageDownloadError::Mime);
};

let body = res.bytes().await?;

Expand Down

0 comments on commit e41223c

Please sign in to comment.