package padArchiver import ( "errors" "fmt" "io/ioutil" "net/http" "os" ) //GetPad gets the pad from the link, and stores it into local directory func (repo *Repo) GetPad(link string, extension string, directory string, title string) (string, error) { if extension != "md" && extension != "txt" && extension != "html" && extension != "pdf" && extension != "odt" { return "", errors.New("No valid extension") } format := extension if extension == "md" { format = "markdown" extension = "md" } //create the pads directory _ = os.Mkdir(repo.Dir+"/"+directory, os.ModePerm) completeLink := link + "/export/" + format //get the content from the url r, err := http.Get(completeLink) if err != nil { fmt.Println(err) return "", err } defer r.Body.Close() content, err := ioutil.ReadAll(r.Body) if err != nil { fmt.Printf("%s", err) return "", err } //save the content into a file err = ioutil.WriteFile(repo.Dir+"/"+directory+"/"+title+"."+extension, content, 0644) if err != nil { fmt.Println(err) return "", err } return repo.Dir + "/" + directory + "/" + title + "." + extension, nil }