forked from Henry-Sarabia/igdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
80 lines (68 loc) · 1.76 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package main
import (
"flag"
"fmt"
"log"
"github.com/Henry-Sarabia/igdb"
)
var key string
func init() {
flag.StringVar(&key, "k", "", "API key")
flag.Parse()
}
func main() {
if key == "" {
fmt.Println("No key provided. Please run: topgames -k YOUR_API_KEY")
return
}
c := igdb.NewClient(key, nil)
// Composing options set to retrieve top 5 popular results
byPop := igdb.ComposeOptions(
igdb.SetLimit(5),
igdb.SetFields("name", "cover"),
igdb.SetOrder("popularity", igdb.OrderDescending),
igdb.SetFilter("category", igdb.OpEquals, "0"),
igdb.SetFilter("cover", igdb.OpNotEquals, "null"),
)
// Retrieve PS4 inter-console exclusives
PS4, err := c.Games.Index(
byPop, // top 5 popular results
igdb.SetFilter("platforms", igdb.OpEquals, "48"), // only PS4 games
)
if err != nil {
log.Fatal(err)
}
// Retrieve XB1 inter-console exclusives
XBOX, err := c.Games.Index(
byPop, // top 5 popular results
igdb.SetFilter("platforms", igdb.OpEquals, "49"), // only XB1 games
)
if err != nil {
log.Fatal(err)
}
fmt.Println("Top 5 PS4 Games:")
for _, game := range PS4 {
cover, err := c.Covers.Get(game.Cover, igdb.SetFields("image_id")) // retrieve cover IDs
if err != nil {
log.Fatal(err)
}
img, err := cover.SizedURL(igdb.Size1080p, 1) // resize to largest image available
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s - %s\n", game.Name, img)
}
fmt.Println("\nTop 5 XBOX Games:")
for _, game := range XBOX {
cover, err := c.Covers.Get(game.Cover, igdb.SetFields("id", "image_id")) // retrieve cover IDs
if err != nil {
log.Fatal(err)
}
img, err := cover.SizedURL(igdb.Size1080p, 1) // resize to largest image available
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s - %s\n", game.Name, img)
}
return
}