feedtest: support local files

This commit is contained in:
Nazar Kanaev 2021-03-25 16:55:47 +00:00
parent 6685bce51c
commit 1be79d922b

View File

@ -3,24 +3,37 @@ package main
import ( import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io"
"log" "log"
"net/http" "net/http"
"os" "os"
"strings"
"github.com/nkanaev/yarr/src/parser" "github.com/nkanaev/yarr/src/parser"
) )
func main() { func main() {
if len(os.Args) != 2 { if len(os.Args) != 2 {
fmt.Println("usage: <script> url") fmt.Println("usage: <script> [url|filepath]")
return return
} }
url := os.Args[1] url := os.Args[1]
var r io.Reader
if strings.HasPrefix(url, "http") {
res, err := http.Get(url) res, err := http.Get(url)
if err != nil { if err != nil {
log.Fatalf("failed to get url %s: %s", url, err) log.Fatalf("failed to get url %s: %s", url, err)
} }
feed, err := parser.Parse(res.Body) r = res.Body
} else {
var err error
r, err = os.Open(url)
if err != nil {
log.Fatalf("failed to open file: %s", err)
}
}
feed, err := parser.Parse(r)
if err != nil { if err != nil {
log.Fatalf("failed to parse feed: %s", err) log.Fatalf("failed to parse feed: %s", err)
} }