Check for existing issues, before downloading unnecessarily.
This commit is contained in:
parent
61f929a99c
commit
bc0137aee6
33
Grabazine.go
33
Grabazine.go
|
|
@ -31,16 +31,15 @@ func main() {
|
||||||
|
|
||||||
usernamePtr := flag.String("u", "", "Zinio Username")
|
usernamePtr := flag.String("u", "", "Zinio Username")
|
||||||
passwordPtr := flag.String("p", "", "Zinio Password")
|
passwordPtr := flag.String("p", "", "Zinio Password")
|
||||||
|
chromePtr := flag.String("c", "google-chrome", "Chrome executable")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
fmt.Println("Username:" + *usernamePtr + " Password: " + *passwordPtr)
|
|
||||||
|
|
||||||
fmt.Println("Starting the application...")
|
fmt.Println("Starting the application...")
|
||||||
initialToken := GetInitialToken()
|
initialToken := GetInitialToken()
|
||||||
loginToken := GetLoginToken(initialToken, *usernamePtr, *passwordPtr)
|
loginToken := GetLoginToken(initialToken, *usernamePtr, *passwordPtr)
|
||||||
issues := GetLibrary(loginToken)
|
issues := GetLibrary(loginToken)
|
||||||
fmt.Println("Found " + string(len(issues.Data)) + " issues.")
|
fmt.Println("Found " + strconv.Itoa(len(issues.Data))+ " issues in library.")
|
||||||
|
|
||||||
fmt.Println("Loading HTML template")
|
fmt.Println("Loading HTML template")
|
||||||
template, _ := ioutil.ReadFile("template.html")
|
template, _ := ioutil.ReadFile("template.html")
|
||||||
|
|
@ -49,9 +48,16 @@ func main() {
|
||||||
for _, issue := range issues.Data {
|
for _, issue := range issues.Data {
|
||||||
issuePath := "./issue/" + strconv.Itoa(issue.Id)
|
issuePath := "./issue/" + strconv.Itoa(issue.Id)
|
||||||
|
|
||||||
|
completeName := "./issue/" + issue.Publication.Name + " - " + issue.Name + ".pdf"
|
||||||
|
if fileExists(completeName) {
|
||||||
|
fmt.Println("Issue already found: "+ issue.Publication.Name + " - " + issue.Name)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pages := GetPages(loginToken, issue)
|
pages := GetPages(loginToken, issue)
|
||||||
|
|
||||||
filenames := []string{}
|
var filenames []string
|
||||||
|
|
||||||
for i := 0; i < len(pages.Data); i++ {
|
for i := 0; i < len(pages.Data); i++ {
|
||||||
fmt.Println("Source ", pages.Data[i].Source)
|
fmt.Println("Source ", pages.Data[i].Source)
|
||||||
|
|
@ -65,26 +71,27 @@ func main() {
|
||||||
|
|
||||||
//convert to pdf
|
//convert to pdf
|
||||||
|
|
||||||
cmd := exec.Command("google-chrome", "--headless", "--disable-gpu", "--print-to-pdf="+pathString+".pdf", pathString+".html")
|
cmd := exec.Command(*chromePtr, "--headless", "--disable-gpu", "--print-to-pdf="+pathString+".pdf", pathString+".html")
|
||||||
|
|
||||||
fmt.Println(cmd.Args)
|
fmt.Println(cmd.Args)
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("cmd.Run() failed with %s\n. You should retry this page.", err)
|
fmt.Printf("cmd.Run() failed with %s\n. You should retry this page.", err)
|
||||||
}
|
}
|
||||||
os.Remove(pathString + ".html")
|
|
||||||
os.Remove(pathString + ".svg")
|
_ = os.Remove(pathString + ".html")
|
||||||
|
_ = os.Remove(pathString + ".svg")
|
||||||
|
|
||||||
//remove last page
|
//remove last page
|
||||||
_ = api.RemovePagesFile(pathString+".pdf", "", []string{"2"}, nil)
|
_ = api.RemovePagesFile(pathString+".pdf", "", []string{"2"}, nil)
|
||||||
filenames = append(filenames, pathString+".pdf")
|
filenames = append(filenames, pathString+".pdf")
|
||||||
}
|
}
|
||||||
|
|
||||||
api.MergeCreateFile(filenames, "./issue/" +issue.Publication.Name + " - " + issue.Name + ".pdf", nil)
|
_ = api.MergeCreateFile(filenames, completeName, nil)
|
||||||
|
|
||||||
|
|
||||||
for _, fileName := range filenames{
|
for _, fileName := range filenames{
|
||||||
os.Remove(fileName)
|
_ = os.Remove(fileName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -163,4 +170,12 @@ func GetLibrary(userToken LoginDto.Response) LibraryDto.Response{
|
||||||
_ = json.Unmarshal(data, &responseType)
|
_ = json.Unmarshal(data, &responseType)
|
||||||
|
|
||||||
return responseType
|
return responseType
|
||||||
|
}
|
||||||
|
|
||||||
|
func fileExists(filename string) bool {
|
||||||
|
info, err := os.Stat(filename)
|
||||||
|
if os.IsNotExist(err) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return !info.IsDir()
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue