osu! API library for Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE
README.md
approved_status.go
client.go
client_test.go
enums_test.go
genre.go
get_beatmaps.go
get_match.go
get_replay.go
get_scores.go
get_user.go
get_user_best.go
get_user_recent.go
language.go
mode.go
mods.go
mods_test.go
mysql_date.go
osubool.go
rate_limit.go

README.md

go-osuapi docs Build Status Go Report Card

go-osuapi is a Go package to retrieve data from the osu! API.

Getting started

Everything is (more or less) well-documented at godoc - the methods that interest you most are probably those under Client. Also, client_test.go contains loads of examples on how you can use the package. If you still want to have an example to simply copypaste and then get straight to coding, well, there you go!

package main

import (
	"fmt"
	osuapi "github.com/thehowl/go-osuapi"
)

func main() {
	c := osuapi.NewClient("Your API key https://osu.ppy.sh/p/api")
	beatmaps, err := c.GetBeatmaps(osuapi.GetBeatmapsOpts{
		BeatmapSetID: 332532,
	})
	if err != nil {
		fmt.Printf("An error occurred: %v\n", err)
		return
	}
	for _, beatmap := range beatmaps {
		fmt.Printf("%s - %s [%s] https://osu.ppy.sh/b/%d\n", beatmap.Artist, beatmap.Title, beatmap.DiffName, beatmap.BeatmapID)
	}
}

Please note that if you actually want to use this, you should consider vendoring this using the dep tool, so that your code keeps working regardless of any change we might do in this repository.

I want more than that to explore how it works!

I've made whosu for that purpose. Check it out.

Contributing

Contributions are welcome! Here's what you need to know:

  • Always go fmt your code.
  • If you're writing a big and useful feature, make sure to appropriately write tests!