diff options
| -rw-r--r-- | cmd/bookpipeline/main.go | 29 | 
1 files changed, 17 insertions, 12 deletions
diff --git a/cmd/bookpipeline/main.go b/cmd/bookpipeline/main.go index a49338a..7283967 100644 --- a/cmd/bookpipeline/main.go +++ b/cmd/bookpipeline/main.go @@ -264,11 +264,10 @@ func analyse(conn Pipeliner) func(chan string, chan string, chan error, *log.Log  	sort.Strings(pgs)  	logger.Println("Downloading binarised and original images to create PDFs") -	tmpdir := filepath.Join(os.TempDir(), savedir) -	err = os.MkdirAll(tmpdir, 0755) +	bookname, err := filepath.Rel(os.TempDir(), savedir)  	if err != nil {  		close(up) -		errc <- errors.New(fmt.Sprintf("Failed to create directory %s: %s", tmpdir, err)) +		errc <- errors.New(fmt.Sprintf("Failed to do filepath.Rel of %s to %s: %s", os.TempDir(), savedir, err))  		return  	}  	colourpdf := new(bookpipeline.Fpdf) @@ -296,29 +295,35 @@ func analyse(conn Pipeliner) func(chan string, chan string, chan error, *log.Log  		} else {  			imgfns = append(imgfns, nosuffix + ".jpg")  		} -		for _, i := range imgfns { +		for n, i := range imgfns {  			logger.Println("Downloading", i) -			err := conn.Download(conn.WIPStorageId(), filepath.Join(savedir, i), filepath.Join(tmpdir, i)) +			err := conn.Download(conn.WIPStorageId(), filepath.Join(bookname, i), filepath.Join(savedir, i))  			if err != nil { -				close(up) -				errc <- errors.New(fmt.Sprintf("Failed to download book page %s: %s", i, err)) -				return +				imgfns[n] = strings.Replace(i, ".jpg", ".png", 1) +				i = imgfns[n] +				logger.Println("Download failed; trying", i) +				err := conn.Download(conn.WIPStorageId(), filepath.Join(bookname, i), filepath.Join(savedir, i)) +				if err != nil { +					close(up) +					errc <- errors.New(fmt.Sprintf("Failed to download book page %s: %s", filepath.Join(bookname, i), err)) +					return +				}  			}  		} -		err = colourpdf.AddPage(imgfns[1], pg, true) +		err = colourpdf.AddPage(filepath.Join(savedir, imgfns[1]), pg, true)  		if err != nil {  			close(up)  			errc <- errors.New(fmt.Sprintf("Failed to add page %s to PDF: %s", imgfns[1], err))  			return  		} -		err = binarisedpdf.AddPage(imgfns[0], pg, true) +		err = binarisedpdf.AddPage(filepath.Join(savedir, imgfns[0]), pg, true)  		if err != nil {  			close(up)  			errc <- errors.New(fmt.Sprintf("Failed to add page %s to PDF: %s", imgfns[0], err))  			return  		}  	} -	fn = filepath.Join(tmpdir, savedir + ".colour.pdf") +	fn = filepath.Join(savedir, bookname + ".colour.pdf")  	err = colourpdf.Save(fn)  	if err != nil {  		close(up) @@ -326,7 +331,7 @@ func analyse(conn Pipeliner) func(chan string, chan string, chan error, *log.Log  		return  	}  	up <- fn -	fn = filepath.Join(tmpdir, savedir + ".binarised.pdf") +	fn = filepath.Join(savedir, bookname + ".binarised.pdf")  	err = binarisedpdf.Save(fn)  	if err != nil {  		close(up)  | 
