39 lines
737 B
Go
39 lines
737 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/rivo/tview"
|
|
)
|
|
|
|
var hackerNewsURL = "https://news.ycombinator.com/"
|
|
|
|
func main() {
|
|
app := tview.NewApplication()
|
|
// TODO: rewrite this for other options
|
|
if len(os.Args) > 1 && os.Args[1] == "best" {
|
|
hackerNewsURL = "https://news.ycombinator.com/best"
|
|
}
|
|
|
|
htmlContent, err := fetchWebpage(hackerNewsURL)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
articles, err := parseArticles(htmlContent)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
list := createArticleList(articles)
|
|
pages := tview.NewPages()
|
|
pages.AddPage("homepage", list, true, false)
|
|
|
|
app.SetInputCapture(createInputHandler(app, list, articles, pages))
|
|
|
|
if err := app.SetRoot(list, true).Run(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|