forked from Henry-Sarabia/igdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
57 lines (46 loc) · 1.15 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
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: characterphotos -k YOUR_API_KEY")
return
}
c := igdb.NewClient(key, nil)
// Retrieve human character photos
ch, err := c.Characters.Index(
igdb.SetLimit(20),
igdb.SetFields("name", "mug_shot"),
igdb.SetFilter("species", igdb.OpEquals, "1"), // only humans
igdb.SetFilter("mug_shot", igdb.OpNotEquals, "null"), // only characters with images
igdb.SetOrder("created_at", igdb.OrderDescending), // most recently created
)
if err != nil {
log.Fatal(err)
}
fmt.Print("The 20 Newest Character Photos:\n\n")
for _, v := range ch {
mugshot, err := c.CharacterMugshots.Get(v.MugShot, igdb.SetFields("image_id")) // retrieve mugshot ID
if err != nil {
log.Fatal(err)
}
if mugshot.ImageID == "" {
continue
}
img, err := mugshot.SizedURL(igdb.Size1080p, 1) // resize to largest image available
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s - %s\n", v.Name, img)
}
return
}