| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- package main
- import (
- "container/list"
- "errors"
- "fmt"
- "io"
- "net/http"
- "os"
- "os/exec"
- "strings"
- "./crawler"
- )
- // ListPagesComics ...
- func ListPagesComics(url string) *list.List {
- var list = list.New()
- var crawl = crawler.New(url)
- listUrls := crawl.ListLink()
- for elem := listUrls.Front(); elem != nil; elem = elem.Next() {
- image := elem.Value.(string)
- if strings.Contains(image, ".jpg") {
- file := fmt.Sprintf("%s%s", url, image)
- list.PushBack(file)
- }
- }
- return list
- }
- // DownloadFile ...
- func DownloadFile(url string, filepath string) error {
- out, err := os.Create(filepath)
- if err != nil {
- return err
- }
- defer out.Close()
- // Get the data
- resp, err := http.Get(url)
- if err != nil {
- return err
- }
- if resp.StatusCode == 404 || resp.ContentLength == -1 {
- return errors.New("File not found.")
- }
- defer resp.Body.Close()
- // Write the body to file
- _, err = io.Copy(out, resp.Body)
- if err != nil {
- return err
- }
- return nil
- }
- func Exists(name string) bool {
- if _, err := os.Stat(name); err != nil {
- if os.IsNotExist(err) {
- return false
- }
- }
- return true
- }
- func main() {
- path := "./dr-stone"
- pathFile7z := fmt.Sprintf("%s%s", path, "/dr-stone-t")
- for i := 132; i <= 160; i++ {
- folder := fmt.Sprintf("%s/T%d", path, i)
- var page = 0
- notErr := true
- for notErr {
- url := fmt.Sprintf("http://lelscano.com//mangas/dr-stone/%d/", i)
- if page < 10 {
- url = fmt.Sprintf(url+"0%d.jpg", page)
- } else {
- url = fmt.Sprintf(url+"%d.jpg", page)
- }
- fmt.Println(url)
- if Exists(folder) == false {
- os.MkdirAll(folder, os.ModePerm)
- }
- file := fmt.Sprintf("%s/ep%d.jpg", folder, page)
- if Exists(file) == false {
- err := DownloadFile(url, file)
- if err != nil {
- fmt.Println(err)
- os.Remove(file)
- notErr = false
- } else {
- fmt.Println("", folder, " => ", page)
- page++
- }
- }
- }
- fileCompress := fmt.Sprintf("%s%d.cbz", pathFile7z, i)
- cmd := exec.Command("7z", "a", fileCompress, folder)
- err := cmd.Run()
- if err != nil {
- fmt.Println(err)
- }
- }
- }
|