func addGamesFromProfile(user User, games map[string]*Game) (err error) {
	profile, err := GetProfile(user)
	if err != nil {
		return
	}
	pattern := regexp.MustCompile(profileGamePattern)
	for _, groups := range pattern.FindAllStringSubmatch(profile, -1) {
		gameID := groups[1]
		gameName := groups[2]
		tags := []string{""}
		games[gameID] = &Game{gameID, gameName, tags, "", nil, nil, "", false, 0}
	}
	return
}
Fetches the list of games from the public user profile. This is better than
looking locally because the profiles give the full game name, which can be
used for image searches later on.
package main
import (
	"bytes"
	"encoding/binary"
	"fmt"
	"hash/crc32"
	"io/ioutil"
	"os"
	"path/filepath"
	"regexp"
	"strings"
)
type Game struct {
	ID string
	Name string
	Tags []string
	ImageExt string
	CleanImageBytes []byte
	OverlayImageBytes []byte
	ImageSource string
	Custom bool
	LegacyID uint64
}
const profileGamePattern = `\{"appid":\s*(\d+),\s*"name":\s*"(.+?)"`