Upload files to 'go'

main
gc04 2 years ago
parent cf342f41bb
commit d9d2c37cd0
  1. 11
      go/go.mod
  2. 17
      go/go.sum
  3. 164
      go/main.go

@ -0,0 +1,11 @@
module sport
go 1.18
require (
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
github.com/jackc/pgx/v5 v5.3.1 // indirect
golang.org/x/crypto v0.6.0 // indirect
golang.org/x/text v0.7.0 // indirect
)

@ -0,0 +1,17 @@
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk=
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU=
github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc=
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

@ -0,0 +1,164 @@
package main
import (
"context"
"fmt"
"os"
//"strconv"
"github.com/jackc/pgx/v5"
)
var conn *pgx.Conn
func main() {
var err error
urlExample := "postgres://bot:3h0SXx6Ykx1D@toolbox.cfsystems.io:5432/iptvsportlist"
//conn, err = pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
conn, err = pgx.Connect(context.Background(), urlExample)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to connection to database: %v\n", err)
os.Exit(1)
}
if len(os.Args) == 1 {
printHelp()
os.Exit(0)
}
switch os.Args[1] {
case "tug":
printTug()
case "help":
printHelp()
case "guide":
userTerm := "" // Default value
if len(os.Args) >= 3 {
userTerm = os.Args[2]
}
err = guideTerm(userTerm)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to list events: %v\n", err)
os.Exit(1)
}
case "whatson":
userTerm := "" // Default value
if len(os.Args) >= 3 {
userTerm = os.Args[2]
}
err = whatsonTerm(userTerm)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to list events: %v\n", err)
os.Exit(1)
}
case "upcoming":
userTerm := "" // Default value
if len(os.Args) >= 3 {
userTerm = os.Args[2]
}
err = upcomingTerm(userTerm)
if err != nil {
fmt.Fprintf(os.Stderr, "Unable to list events: %v\n", err)
os.Exit(1)
}
default:
fmt.Fprintln(os.Stderr, "Invalid command")
printHelp()
os.Exit(1)
}
}
func printTug() {
fmt.Print(`chaturbate integration coming soon
`)
}
func guideTerm(userTerm string) error {
rows, err := conn.Query(context.Background(), "SELECT league, event, time_utc, string_agg(channel_name, ', ') AS channels FROM vw_gc04_epg_join_view vgejv WHERE (old_event = 'No') AND (sport = $1 OR event LIKE '%' || $1 || '%' OR league = $1) GROUP BY 1, 2, 3 ORDER BY league, time_utc ASC;", userTerm)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
var league string
var event string
var timeUtc string
var channels string
err := rows.Scan(&league, &event, &timeUtc, &channels)
if err != nil {
return err
}
fmt.Printf("%s | %s | %s UTC | %s |\n", league, event, timeUtc, channels)
}
return rows.Err()
}
func whatsonTerm(userTerm string) error {
rows, err := conn.Query(context.Background(), "SELECT league, event, time_utc, string_agg(channel_name, ', ') AS channels FROM vw_gc04_epg_join_view vgejv WHERE (old_event = 'No' AND on_air = 'Yes') AND (sport = $1 OR event LIKE '%' || $1 || '%' OR league = $1) GROUP BY 1, 2, 3 ORDER BY league, time_utc ASC;", userTerm)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
var league string
var event string
var timeUtc string
var channels string
err := rows.Scan(&league, &event, &timeUtc, &channels)
if err != nil {
return err
}
fmt.Printf("%s | %s | %s UTC | %s |\n", league, event, timeUtc, channels)
}
return rows.Err()
}
func upcomingTerm(userTerm string) error {
rows, err := conn.Query(context.Background(), "SELECT league, event, time_utc, string_agg(channel_name, ', ') AS channels FROM vw_gc04_epg_join_view vgejv WHERE (old_event = 'No' AND upcoming = 'Yes') AND (sport = $1 OR event LIKE '%' || $1 || '%' OR league = $1) GROUP BY 1, 2, 3 ORDER BY league, time_utc ASC;", userTerm)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
var league string
var event string
var timeUtc string
var channels string
err := rows.Scan(&league, &event, &timeUtc, &channels)
if err != nil {
return err
}
fmt.Printf("%s | %s | %s UTC | %s |\n", league, event, timeUtc, channels)
}
return rows.Err()
}
func printHelp() {
fmt.Print(`
Usage:
sport whatson
sport guide
sport upcoming
`)
}
Loading…
Cancel
Save