was a fork of github.com/irlndts/go-discogs because it didn't properly handle the API, but does as of the v0.3.6 release!
This repository has been archived on 2023-04-13. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Artem Piskun b61a3c137a
DSCGS-36 Go mod updated, test updated (#38)
2020-02-28 14:50:43 +03:00
examples DSCGS-35 More and fixed data from database, tests (#36) 2019-11-05 20:56:02 +03:00
vendor DSCGS-36 Go mod updated, test updated (#38) 2020-02-28 14:50:43 +03:00
.travis.yml Travis version updated 2019-06-06 15:20:17 +03:00
README.md Update search example for current code behavior (#29) 2019-08-28 12:53:11 +03:00
database.go Release series object (#37) 2020-02-28 14:32:23 +03:00
database_test.go DSCGS-35 More and fixed data from database, tests (#36) 2019-11-05 20:56:02 +03:00
discogs.go Vendor removed, some cleanups 2019-06-06 15:18:10 +03:00
discogs_test.go Golangci-lint fix 2019-06-18 15:08:55 +03:00
errors.go Vendor removed, some cleanups 2019-06-06 15:18:10 +03:00
go.mod DSCGS-36 Go mod updated, test updated (#38) 2020-02-28 14:50:43 +03:00
go.sum DSCGS-36 Go mod updated, test updated (#38) 2020-02-28 14:50:43 +03:00
models.go DSCGS-36 Go mod updated, test updated (#38) 2020-02-28 14:50:43 +03:00
search.go DSCGS-33 Added MasterID to Search.Result (#34) 2019-11-05 13:40:34 +03:00
testing_data.go DSCGS-36 Go mod updated, test updated (#38) 2020-02-28 14:50:43 +03:00

README.md

REST API 2.0 Discogs.com client

Build StatusGo Report Card

go-discogs is a Go client library for the Discogs API. Check the usage section to see how to access the Discogs API.

Feauteres

  • Database
  • Releases
  • Release Rating
  • Master Releases
  • Master Versions
  • Artists
  • Artist Releases
  • Label
  • All Label Releases
  • Search

Install

go get -u github.com/irlndts/go-discogs

Usage

The discogs package provides a client for accessing the Discogs API. First of all import library and init client variable. According to discogs api documentation you must provide your user-agent.

import "github.com/irlndts/go-discogs"

Some requests require authentification (as any user). According to Discogs, to send requests with Discogs Auth, you have two options: sending your credentials in the query string with key and secret parameters or a token parameter. This is token way example:

client, err := discogs.NewClient(&discogs.Options{
        UserAgent: "Some Name",
        Currency:  "EUR", // optional, "USD" (default), "GBP", "EUR", "CAD", "AUD", "JPY", "CHF", "MXN", "BRL", "NZD", "SEK", "ZAR" are allowed
        Token:     "Some Token", // optional
    })

Releases

  release, _ := client.Database.Release(9893847)
  fmt.Println(release.Artists[0].Name, " - ", release.Title) 
  // St. Petersburg Ska-Jazz Review  -  Elephant Riddim

Issue a search query to discogs database. This endpoint accepts pagination parameters. Authentication (as any user) is required.

Use SearchRequest struct to create a request.

type SearchRequest struct {
    Q             string // search query (optional)
    Type          string // one of release, master, artist, label (optional)
    Title         string // search by combined “Artist Name - Release Title” title field (optional)
    ReleaseTitle string // search release titles (optional)
    Credit        string // search release credits (optional)
    Artist        string // search artist names (optional)
    Anv           string // search artist ANV (optional)
    Label         string // search label names (optional)
    Genre         string // search genres (optional)
    Style         string // search styles (optional)
    Country       string // search release country (optional)
    Year          string // search release year (optional)
    Format        string // search formats (optional)
    Catno         string // search catalog number (optional)
    Barcode       string // search barcodes (optional)
    Track         string // search track titles (optional)
    Submitter     string // search submitter username (optional)
    Contributer   string // search contributor usernames (optional)

    Page     int // optional
    PerPage int // optional
}

Example

  request := discogs.SearchRequest{Artist: "reggaenauts", ReleaseTitle: "river rock", Page: 0, PerPage: 1}
  search, _ := client.Search.Search(request)

  for _, r := range search.Results {
    fmt.Println(r.Title)
  }

etc.