add more image urls

This commit is contained in:
Seraphim Strub 2024-05-30 22:01:13 +00:00
parent 0b97f282e2
commit 3a076998f9
5 changed files with 74 additions and 75 deletions

View file

@ -6,7 +6,6 @@ import (
"log/slog"
"net/http"
"regexp"
"strings"
)
type GogStruct struct {
@ -67,7 +66,7 @@ func (e GogStruct) Load() error {
return
case tt == html.StartTagToken:
t := bodyStore.Token()
if t.Data != "a" {
if t.Data != "a" { // only <a> tag
continue
}
for _, a := range t.Attr {
@ -105,44 +104,60 @@ func (e GogStruct) Load() error {
}
bodyGame := html.NewTokenizer(resGame.Body)
func() {
for {
tt := bodyGame.Next()
switch {
case tt == html.ErrorToken:
// file end or error
return
case tt == html.StartTagToken:
t := bodyGame.Token()
if t.Data != "h1" {
continue
}
for _, a := range t.Attr {
if !(a.Key == "class" && a.Val == "productcard-basics__title") {
continue
}
if tt = bodyGame.Next(); tt != html.TextToken {
continue
}
id := fmt.Sprintf("%v%v", e.idPrefix, appID)
title := strings.TrimSpace(bodyGame.Token().Data)
url := fmt.Sprintf("%v%v", e.baseUrl, appID)
e.deals[id] = Deal{
Id: id,
Title: title,
Url: url,
}
}
}
}
}()
title, image := gogParseMeta(bodyGame)
url := fmt.Sprintf("%v%v", e.baseUrl, appID)
id := fmt.Sprintf("%v%v", e.idPrefix, appID)
e.deals[id] = Deal{
Id: id,
Title: title,
Url: url,
Image: image,
}
}
return nil
}
func gogParseMeta(htmlBody *html.Tokenizer) (string, string) {
var title, image string
func() {
for {
tt := htmlBody.Next()
switch {
case tt == html.ErrorToken:
// file end or error
return
case tt == html.StartTagToken:
t := htmlBody.Token()
if t.Data != "meta" {
continue
}
for _, a := range t.Attr {
if a.Key == "property" && a.Val == "og:title" {
for _, c := range t.Attr {
if c.Key == "content" {
title = c.Val
}
}
}
if a.Key == "property" && a.Val == "og:image" {
for _, c := range t.Attr {
if c.Key == "content" {
image = c.Val
}
}
}
}
if title != "" && image != "" {
return
}
}
}
}()
return title, image
}
func (e GogStruct) Get() []Deal {
var deals []Deal
for _, deal := range e.deals {