2 Commits

Author SHA1 Message Date
arnaucube
ff6e43c247 Add version, and rm tmpdir 2022-10-02 10:22:13 +02:00
arnaucube
19cd78ec15 add cli flag for custom title, add title & author in the content init 2020-01-15 22:15:43 +01:00
2 changed files with 36 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
# link2epub [![Go Report Card](https://goreportcard.com/badge/github.com/arnaucube/link2epub)](https://goreportcard.com/report/github.com/arnaucube/link2epub)
Very simple tool to download articles and convert it to `.epub`/`.mobi` files.
It gets the text content, simplifies its html, downloads the images, and builds the `.epub`/`.mobi` file.
## Download
- Binary can be:
- downloaded from [releases section](https://github.com/arnaucube/link2epub/releases)
@@ -9,12 +11,18 @@ Very simple tool to download articles and convert it to `.epub`/`.mobi` files.
## Usage
Needs [calibre](https://calibre-ebook.com/) in order to convert to `.epub` and `.mobi`.
Putting the binary in the `~/bin` directory will be more comfortable.
```bash
./link2epub -l https://link.com/to-the-article
link2epub -l https://link.com/to-the-article
// optionally add extension (by default .mobi)
./link2epub -l https://link.com/to-the-article -type mobi
./link2epub -l https://link.com/to-the-article -type epub
link2epub -l https://link.com/to-the-article -type mobi
link2epub -l https://link.com/to-the-article -type epub
// see help for all the available flags
link2epub --help
```
Thanks to [@dhole](https://github.com/dhole) for the advisment.

28
main.go
View File

@@ -15,21 +15,32 @@ import (
readability "github.com/go-shiori/go-readability"
)
const tmpDir = "tmp"
const version = "v0_20221002"
const tmpDir = "link2epubtmpdir"
func main() {
// var typeFlag string
versionFlag := flag.Bool("v", false, "version")
linkFlag := flag.String("l", "", "Link to download")
typeFlag := flag.String("type", "mobi", "Type of epub. Available: mobi (default), epub")
titleFlag := flag.String("title", "", "Title is automatically getted from article, if want to change it, use this flag")
flag.Parse()
fmt.Println("link2epub version:", version)
if *versionFlag {
os.Exit(0)
}
if *typeFlag != "mobi" && *typeFlag != "epub" {
log.Fatal("not valid type")
}
err := os.Mkdir(tmpDir, os.ModePerm)
if err != nil {
log.Fatalf("error creating tmp dir %s: %v\n", tmpDir, err)
log.Printf("error creating tmp dir %s: %v\nRemoving it and continuing.", tmpDir, err)
err = os.RemoveAll(tmpDir)
if err != nil {
log.Fatalf("err removing %s: %v\n", tmpDir, err)
}
}
// get link
@@ -70,6 +81,17 @@ func main() {
article.Content = strings.Replace(article.Content, string(img[4]), filename, -1)
}
if *titleFlag != "" {
article.Title = *titleFlag
}
// add title to content
article.Content = `
<h1>` + article.Title + `</h1>
<h2 style="text-align:right;">` + article.Byline + `</h2>
<br>
` + article.Content
// store html file
filename := article.Title + " - " + article.Byline
out, err := os.Create(tmpDir + "/" + filename + ".html")