mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
gofmt -s -w .
This commit is contained in:
parent
614dcc8975
commit
2df2f41516
@ -2,10 +2,10 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"io"
|
||||
"strings"
|
||||
|
||||
"github.com/nkanaev/yarr/src/content/readability"
|
||||
|
@ -23,10 +23,9 @@ func TestQuery(t *testing.T) {
|
||||
</html>
|
||||
`))
|
||||
nodes := Query(node, "p")
|
||||
match := (
|
||||
len(nodes) == 1 &&
|
||||
match := (len(nodes) == 1 &&
|
||||
nodes[0].Type == html.ElementNode &&
|
||||
nodes[0].Data == "p")
|
||||
nodes[0].Data == "p")
|
||||
if !match {
|
||||
t.Fatalf("incorrect match: %#v", nodes)
|
||||
}
|
||||
@ -50,11 +49,10 @@ func TestQueryMulti(t *testing.T) {
|
||||
</html>
|
||||
`))
|
||||
nodes := Query(node, "p , span")
|
||||
match := (
|
||||
len(nodes) == 3 &&
|
||||
match := (len(nodes) == 3 &&
|
||||
nodes[0].Type == html.ElementNode && nodes[0].Data == "p" &&
|
||||
nodes[1].Type == html.ElementNode && nodes[1].Data == "p" &&
|
||||
nodes[2].Type == html.ElementNode && nodes[2].Data == "span")
|
||||
nodes[2].Type == html.ElementNode && nodes[2].Data == "span")
|
||||
if !match {
|
||||
for i, n := range nodes {
|
||||
t.Logf("%d: %s", i, HTML(n))
|
||||
|
@ -3,7 +3,7 @@ package htmlutil
|
||||
import "testing"
|
||||
|
||||
func TestExtractText(t *testing.T) {
|
||||
testcases := [][2]string {
|
||||
testcases := [][2]string{
|
||||
{"hello", "<div>hello</div>"},
|
||||
{"hello world", "<div>hello</div> world"},
|
||||
{"helloworld", "<div>hello</div>world"},
|
||||
|
@ -129,10 +129,9 @@ func removeUnlikelyCandidates(root *html.Node) {
|
||||
continue
|
||||
}
|
||||
|
||||
blacklisted := (
|
||||
blacklistCandidatesRegexp.MatchString(str) ||
|
||||
blacklisted := (blacklistCandidatesRegexp.MatchString(str) ||
|
||||
(unlikelyCandidatesRegexp.MatchString(str) &&
|
||||
!okMaybeItsACandidateRegexp.MatchString(str)))
|
||||
!okMaybeItsACandidateRegexp.MatchString(str)))
|
||||
if blacklisted && node.Parent != nil {
|
||||
node.Parent.RemoveChild(node)
|
||||
}
|
||||
@ -198,7 +197,7 @@ func getCandidates(root *html.Node) nodeScores {
|
||||
// Scale the final candidates score based on link density. Good content
|
||||
// should have a relatively small link density (5% or less) and be mostly
|
||||
// unaffected by this operation
|
||||
for node, _ := range scores {
|
||||
for node := range scores {
|
||||
scores[node] *= (1 - getLinkDensity(node))
|
||||
}
|
||||
|
||||
|
@ -138,19 +138,19 @@ var allowedTags = sset([]string{
|
||||
"wbr",
|
||||
})
|
||||
|
||||
var allowedAttrs = map[string]set {
|
||||
"img": sset([]string{"alt", "title", "src", "srcset", "sizes"}),
|
||||
"audio": sset([]string{"src"}),
|
||||
"video": sset([]string{"poster", "height", "width", "src"}),
|
||||
"source": sset([]string{"src", "type", "srcset", "sizes", "media"}),
|
||||
"td": sset([]string{"rowspan", "colspan"}),
|
||||
"th": sset([]string{"rowspan", "colspan"}),
|
||||
"q": sset([]string{"cite"}),
|
||||
"a": sset([]string{"href", "title"}),
|
||||
"time": sset([]string{"datetime"}),
|
||||
"abbr": sset([]string{"title"}),
|
||||
var allowedAttrs = map[string]set{
|
||||
"img": sset([]string{"alt", "title", "src", "srcset", "sizes"}),
|
||||
"audio": sset([]string{"src"}),
|
||||
"video": sset([]string{"poster", "height", "width", "src"}),
|
||||
"source": sset([]string{"src", "type", "srcset", "sizes", "media"}),
|
||||
"td": sset([]string{"rowspan", "colspan"}),
|
||||
"th": sset([]string{"rowspan", "colspan"}),
|
||||
"q": sset([]string{"cite"}),
|
||||
"a": sset([]string{"href", "title"}),
|
||||
"time": sset([]string{"datetime"}),
|
||||
"abbr": sset([]string{"title"}),
|
||||
"acronym": sset([]string{"title"}),
|
||||
"iframe": sset([]string{"width", "height", "frameborder", "src", "allowfullscreen"}),
|
||||
"iframe": sset([]string{"width", "height", "frameborder", "src", "allowfullscreen"}),
|
||||
}
|
||||
|
||||
var allowedURISchemes = sset([]string{
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
|
||||
var (
|
||||
youtubeFrame = `<iframe src="https://www.youtube.com/embed/%s" width="560" height="315" frameborder="0" allowfullscreen></iframe>`
|
||||
vimeoFrame = `<iframe src="https://player.vimeo.com/video/%s" width="640" height="360" frameborder="0" allowfullscreen></iframe>`
|
||||
vimeoRegex = regexp.MustCompile(`\/(\d+)$`)
|
||||
vimeoFrame = `<iframe src="https://player.vimeo.com/video/%s" width="640" height="360" frameborder="0" allowfullscreen></iframe>`
|
||||
vimeoRegex = regexp.MustCompile(`\/(\d+)$`)
|
||||
)
|
||||
|
||||
func VideoIFrame(link string) string {
|
||||
@ -31,7 +31,7 @@ func VideoIFrame(link string) string {
|
||||
|
||||
if l.Host == "vimeo.com" {
|
||||
if matches := vimeoRegex.FindStringSubmatch(l.Path); len(matches) > 0 {
|
||||
return fmt.Sprintf(vimeoFrame, matches[1])
|
||||
return fmt.Sprintf(vimeoFrame, matches[1])
|
||||
}
|
||||
}
|
||||
return ""
|
||||
|
@ -9,7 +9,7 @@ func TestYoutubeIframe(t *testing.T) {
|
||||
"https://youtu.be/dQw4w9WgXcQ",
|
||||
}
|
||||
for _, link := range links {
|
||||
have := VideoIFrame(link)
|
||||
have := VideoIFrame(link)
|
||||
want := `<iframe src="https://www.youtube.com/embed/dQw4w9WgXcQ" width="560" height="315" frameborder="0" allowfullscreen></iframe>`
|
||||
if have != want {
|
||||
t.Logf("want: %s", want)
|
||||
@ -25,7 +25,7 @@ func TestVimeoIframe(t *testing.T) {
|
||||
"https://vimeo.com/526381128",
|
||||
}
|
||||
for _, link := range links {
|
||||
have := VideoIFrame(link)
|
||||
have := VideoIFrame(link)
|
||||
want := `<iframe src="https://player.vimeo.com/video/526381128" width="640" height="360" frameborder="0" allowfullscreen></iframe>`
|
||||
if have != want {
|
||||
t.Logf("want: %s", want)
|
||||
|
@ -58,8 +58,8 @@ func (s *Server) handler() http.Handler {
|
||||
}
|
||||
|
||||
func (s *Server) handleIndex(c *router.Context) {
|
||||
c.HTML(http.StatusOK, assets.Template("index.html"), map[string]interface{} {
|
||||
"settings": s.db.GetSettings(),
|
||||
c.HTML(http.StatusOK, assets.Template("index.html"), map[string]interface{}{
|
||||
"settings": s.db.GetSettings(),
|
||||
"authenticated": s.Username != "" && s.Password != "",
|
||||
})
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ func TestStatic(t *testing.T) {
|
||||
func TestStaticWithBase(t *testing.T) {
|
||||
server := NewServer(nil, "127.0.0.1:8000")
|
||||
server.BasePath = "/sub"
|
||||
|
||||
|
||||
handler := server.handler()
|
||||
url := "/sub/static/javascripts/app.js"
|
||||
|
||||
|
@ -241,5 +241,4 @@ func m04_item_podcasturl(tx *sql.Tx) error {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
// TODO: description -> content
|
||||
|
@ -106,7 +106,7 @@ func (w *Worker) refresher() {
|
||||
|
||||
srcqueue := make(chan storage.Feed, len(feeds))
|
||||
dstqueue := make(chan []storage.Item)
|
||||
|
||||
|
||||
// hardcoded to 4 workers ;)
|
||||
go w.worker(srcqueue, dstqueue)
|
||||
go w.worker(srcqueue, dstqueue)
|
||||
|
Loading…
x
Reference in New Issue
Block a user