added tapology updater for all events
This commit is contained in:
+45
-5
@@ -103,6 +103,46 @@ func (q *Queries) GetUpcomingEvent(ctx context.Context, date int64) (Event, erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
const listEvents = `-- name: ListEvents :many
|
const listEvents = `-- name: ListEvents :many
|
||||||
|
SELECT
|
||||||
|
url, slug, name, location, organization, image, date, fights, history
|
||||||
|
FROM
|
||||||
|
event
|
||||||
|
`
|
||||||
|
|
||||||
|
func (q *Queries) ListEvents(ctx context.Context) ([]Event, error) {
|
||||||
|
rows, err := q.db.QueryContext(ctx, listEvents)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
var items []Event
|
||||||
|
for rows.Next() {
|
||||||
|
var i Event
|
||||||
|
if err := rows.Scan(
|
||||||
|
&i.Url,
|
||||||
|
&i.Slug,
|
||||||
|
&i.Name,
|
||||||
|
&i.Location,
|
||||||
|
&i.Organization,
|
||||||
|
&i.Image,
|
||||||
|
&i.Date,
|
||||||
|
&i.Fights,
|
||||||
|
&i.History,
|
||||||
|
); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
items = append(items, i)
|
||||||
|
}
|
||||||
|
if err := rows.Close(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return items, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const listUpcomingEvents = `-- name: ListUpcomingEvents :many
|
||||||
SELECT
|
SELECT
|
||||||
name,
|
name,
|
||||||
slug,
|
slug,
|
||||||
@@ -115,21 +155,21 @@ ORDER BY
|
|||||||
date ASC
|
date ASC
|
||||||
`
|
`
|
||||||
|
|
||||||
type ListEventsRow struct {
|
type ListUpcomingEventsRow struct {
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Slug string `json:"slug"`
|
Slug string `json:"slug"`
|
||||||
Date int64 `json:"date"`
|
Date int64 `json:"date"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (q *Queries) ListEvents(ctx context.Context, date int64) ([]ListEventsRow, error) {
|
func (q *Queries) ListUpcomingEvents(ctx context.Context, date int64) ([]ListUpcomingEventsRow, error) {
|
||||||
rows, err := q.db.QueryContext(ctx, listEvents, date)
|
rows, err := q.db.QueryContext(ctx, listUpcomingEvents, date)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
var items []ListEventsRow
|
var items []ListUpcomingEventsRow
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var i ListEventsRow
|
var i ListUpcomingEventsRow
|
||||||
if err := rows.Scan(&i.Name, &i.Slug, &i.Date); err != nil {
|
if err := rows.Scan(&i.Name, &i.Slug, &i.Date); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,10 +18,13 @@ var migrations embed.FS
|
|||||||
func main() {
|
func main() {
|
||||||
q, err := InitDb("db.sqlite")
|
q, err := InitDb("db.sqlite")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error initializing database: ", err)
|
fmt.Println("Error initializing database:", err)
|
||||||
} else {
|
} else {
|
||||||
client := NewScraperClient()
|
client := NewScraperClient()
|
||||||
ScrapeEvents(q, client)
|
err := UpdateAllTapology(q, client)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error updating all tapology:", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+40
-14
@@ -19,18 +19,50 @@ func ScrapeEvents(q *event.Queries, client ClientScraper) {
|
|||||||
for _, scraper := range scrapers {
|
for _, scraper := range scrapers {
|
||||||
e, err := scraper(client)
|
e, err := scraper(client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error scraping events: ", err)
|
fmt.Println("Error scraping events:", err)
|
||||||
} else {
|
} else {
|
||||||
events = append(events, *e...)
|
events = append(events, *e...)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err := SetTapologyCSRF(client)
|
UpdateTapology(q, client, &events)
|
||||||
|
|
||||||
|
if len(events) > 0 {
|
||||||
|
err := q.UpsertEvents(context.Background(), events)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error settings tapology CSRF: ", err)
|
fmt.Println("Error updating events in database:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateAllTapology(q *event.Queries, client ClientScraper) error {
|
||||||
|
events_, err := q.ListEvents(context.Background())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, e := range events {
|
events := []*event.Event{}
|
||||||
|
for _, e := range events_ {
|
||||||
|
events = append(events, &e)
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateTapology(q, client, &events)
|
||||||
|
|
||||||
|
err = q.UpsertEvents(context.Background(), events)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func UpdateTapology(q *event.Queries, client ClientScraper, events *[]*event.Event) {
|
||||||
|
err := SetTapologyCSRF(client)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Error settings tapology CSRF:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, e := range *events {
|
||||||
fights := e.UnmarshalFights()
|
fights := e.UnmarshalFights()
|
||||||
for _, f := range fights {
|
for _, f := range fights {
|
||||||
fighters := []*event.Fighter{
|
fighters := []*event.Fighter{
|
||||||
@@ -38,16 +70,17 @@ func ScrapeEvents(q *event.Queries, client ClientScraper) {
|
|||||||
f.FighterB,
|
f.FighterB,
|
||||||
}
|
}
|
||||||
for _, ff := range fighters {
|
for _, ff := range fighters {
|
||||||
|
fmt.Println("Getting tapology link for", ff.Name)
|
||||||
tapology, err := q.GetTapology(context.Background(), ff.Name)
|
tapology, err := q.GetTapology(context.Background(), ff.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error getting tapology from database: ", err)
|
fmt.Println("Error getting tapology from database:", err)
|
||||||
link, err := GetTapologyLink(client, ff.Name)
|
link, err := GetTapologyLink(client, ff.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error getting tapology from site: ", err)
|
fmt.Println("Error getting tapology from site:", err)
|
||||||
} else if len(link) > 0 {
|
} else if len(link) > 0 {
|
||||||
err := q.CreateTapology(context.Background(), event.CreateTapologyParams{Name: ff.Name, Url: link})
|
err := q.CreateTapology(context.Background(), event.CreateTapologyParams{Name: ff.Name, Url: link})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error creating tapology in database: ", err)
|
fmt.Println("Error creating tapology in database:", err)
|
||||||
}
|
}
|
||||||
ff.Link = link
|
ff.Link = link
|
||||||
}
|
}
|
||||||
@@ -59,11 +92,4 @@ func ScrapeEvents(q *event.Queries, client ClientScraper) {
|
|||||||
}
|
}
|
||||||
e.MarshalFights(fights)
|
e.MarshalFights(fights)
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(events) > 0 {
|
|
||||||
err := q.UpsertEvents(context.Background(), events)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println("Error updating events in database: ", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-1
@@ -8,6 +8,12 @@ WHERE
|
|||||||
LIMIT
|
LIMIT
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
-- name: ListEvents :many
|
||||||
|
SELECT
|
||||||
|
*
|
||||||
|
FROM
|
||||||
|
event;
|
||||||
|
|
||||||
-- name: GetUpcomingEvent :one
|
-- name: GetUpcomingEvent :one
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
@@ -20,7 +26,7 @@ ORDER BY
|
|||||||
LIMIT
|
LIMIT
|
||||||
1;
|
1;
|
||||||
|
|
||||||
-- name: ListEvents :many
|
-- name: ListUpcomingEvents :many
|
||||||
SELECT
|
SELECT
|
||||||
name,
|
name,
|
||||||
slug,
|
slug,
|
||||||
|
|||||||
Reference in New Issue
Block a user