feat: implement cbz writing and pdf reading
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build and test / Clippy (pull_request) Successful in 44s
				
			
		
			
				
	
				Build and test / Tests (pull_request) Successful in 48s
				
			
		
			
				
	
				Checking yaml / Run yamllint (pull_request) Successful in 5s
				
			
		
			
				
	
				Checking Renovate configuration / validate (pull_request) Successful in 1m4s
				
			
		
			
				
	
				Build and test / Build AMD64 (pull_request) Successful in 49s
				
			
		
			
				
	
				Build and test / Generate Documentation (pull_request) Successful in 59s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build and test / Clippy (pull_request) Successful in 44s
				
			Build and test / Tests (pull_request) Successful in 48s
				
			Checking yaml / Run yamllint (pull_request) Successful in 5s
				
			Checking Renovate configuration / validate (pull_request) Successful in 1m4s
				
			Build and test / Build AMD64 (pull_request) Successful in 49s
				
			Build and test / Generate Documentation (pull_request) Successful in 59s
				
			This commit is contained in:
		
							parent
							
								
									3aa68fbe12
								
							
						
					
					
						commit
						b35ccbe271
					
				
					 10 changed files with 643 additions and 57 deletions
				
			
		
							
								
								
									
										24
									
								
								src/job.rs
									
										
									
									
									
								
							
							
						
						
									
										24
									
								
								src/job.rs
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -5,9 +5,7 @@ use anyhow::Result;
 | 
			
		|||
use indicatif::{ProgressBar, ProgressStyle};
 | 
			
		||||
use rayon::prelude::*;
 | 
			
		||||
 | 
			
		||||
use crate::formats::cbz::CbzReader;
 | 
			
		||||
use crate::formats::pdf::PdfWriter;
 | 
			
		||||
use crate::formats::{FormatId, FormatReader, FormatWriter};
 | 
			
		||||
use crate::formats::{get_reader, get_writer, FormatId};
 | 
			
		||||
 | 
			
		||||
#[derive(Debug, Clone)]
 | 
			
		||||
pub struct Job {
 | 
			
		||||
| 
						 | 
				
			
			@ -34,22 +32,6 @@ impl Job {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn get_reader(format: FormatId) -> Box<dyn FormatReader> {
 | 
			
		||||
    match format {
 | 
			
		||||
        FormatId::Cbz => Box::new(CbzReader),
 | 
			
		||||
        // Placeholder for future formats
 | 
			
		||||
        FormatId::Pdf => unimplemented!("Reading PDF not implemented"),
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn get_writer(format: FormatId) -> Box<dyn FormatWriter> {
 | 
			
		||||
    match format {
 | 
			
		||||
        FormatId::Pdf => Box::new(PdfWriter),
 | 
			
		||||
        // Placeholder for future formats
 | 
			
		||||
        FormatId::Cbz => unimplemented!("Writing CBZ not implemented"),
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn process_jobs(jobs: Vec<Job>) -> Result<()> {
 | 
			
		||||
    let pb = ProgressBar::new(jobs.len() as u64);
 | 
			
		||||
    pb.enable_steady_tick(Duration::from_millis(300));
 | 
			
		||||
| 
						 | 
				
			
			@ -59,8 +41,8 @@ pub fn process_jobs(jobs: Vec<Job>) -> Result<()> {
 | 
			
		|||
 | 
			
		||||
    jobs.par_iter().for_each(|job| {
 | 
			
		||||
        // Build the pipeline for each job
 | 
			
		||||
        let reader = get_reader(job.from);
 | 
			
		||||
        let writer = get_writer(job.to);
 | 
			
		||||
        let reader = get_reader(job.from).expect("No reader registered for selected input format");
 | 
			
		||||
        let writer = get_writer(job.to).expect("No writer registered for selected output format");
 | 
			
		||||
 | 
			
		||||
        let doc = reader.read(&job.input_path).expect("Failed to read input");
 | 
			
		||||
        writer
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue