All Projects → michiwend → Gomusicbrainz

michiwend / Gomusicbrainz

Licence: mit
a Go (Golang) MusicBrainz WS2 client library - work in progress

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gomusicbrainz

M2x Python
AT&T M2X Python Library
Stars: ✭ 25 (-40.48%)
Mutual labels:  client-library, client
Google Api Nodejs Client
Google's officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.
Stars: ✭ 9,722 (+23047.62%)
Mutual labels:  client-library, client
Ionic3 Angular43 Httpclient
Example of Ionic 3 and the new Angular 4.3 HTTPClient
Stars: ✭ 20 (-52.38%)
Mutual labels:  client
Gochimp3
🐒 Golang client for MailChimp API 3.0.
Stars: ✭ 39 (-7.14%)
Mutual labels:  client
Surfraw
Mirror of the upstream git repository
Stars: ✭ 33 (-21.43%)
Mutual labels:  client
Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (-28.57%)
Mutual labels:  client
Terminals
Terminals is a secure, multi tab terminal services/remote desktop client. It uses Terminal Services ActiveX Client (mstscax.dll). The project started from the need of controlling multiple connections simultaneously. It is a complete replacement for the mstsc.exe (Terminal Services) client. This is official source moved from Codeplex.
Stars: ✭ 971 (+2211.9%)
Mutual labels:  client
Gentleman
Full-featured, plugin-driven, extensible HTTP client toolkit for Go
Stars: ✭ 886 (+2009.52%)
Mutual labels:  client
Botcraft
Botcraft is a cross-platform C++ library to create bots that connect and interact with Minecraft servers with (optional) integrated OpenGL renderer
Stars: ✭ 41 (-2.38%)
Mutual labels:  client
Easyappointments Mobile Client
Mobile client for Easy!Appointments Web Scheduler
Stars: ✭ 33 (-21.43%)
Mutual labels:  client
Odrive
Google Drive GUI for Windows / Mac / Linux
Stars: ✭ 978 (+2228.57%)
Mutual labels:  client
Vainglory
(*DEPRECATED*: The API no longer exists, so this will no longer work) A Javascript API Client wrapper for Vainglory
Stars: ✭ 32 (-23.81%)
Mutual labels:  client
Openapi Core Ruby Sdk
Alibaba Cloud Core SDK for Ruby
Stars: ✭ 29 (-30.95%)
Mutual labels:  client
Opc Da
基于utgard的OPC DA客户端
Stars: ✭ 35 (-16.67%)
Mutual labels:  client
Njrat 0.7d Stub Csharp
njRAT C# Stub - Fixed For PowerShell
Stars: ✭ 28 (-33.33%)
Mutual labels:  client
Go Raknet
An idiomatic Go library implementing a basic version of the RakNet protocol.
Stars: ✭ 40 (-4.76%)
Mutual labels:  client
Node Openid Client
OpenID Certified™ Relying Party (OpenID Connect/OAuth 2.0 Client) implementation for Node.js.
Stars: ✭ 887 (+2011.9%)
Mutual labels:  client
Ably Go
Go client library SDK for Ably realtime messaging service
Stars: ✭ 29 (-30.95%)
Mutual labels:  client-library
Standardfile
Yet Another Standardfile (standardnotes server) Implementation written in Golang
Stars: ✭ 34 (-19.05%)
Mutual labels:  client-library
Localstack Dotnet Client
A lightweight .NET client for LocalStack
Stars: ✭ 40 (-4.76%)
Mutual labels:  client-library

gomusicbrainz License MIT GoDoc GoWalker Build Status

a Go (Golang) MusicBrainz WS2 client library - a work in progress.

gopherbrainz Oo

Current state

Currently GoMusicBrainz provides methods to perform search and lookup requests. Browse requests are not supported yet.

Installation

$ go get github.com/michiwend/gomusicbrainz

Search Requests

GoMusicBrainz provides a search method for every WS2 search request in the form:

func (*WS2Client) Search<ENTITY>(searchTerm, limit, offset) (<ENTITY>SearchResponse, error)

searchTerm follows the Apache Lucene syntax and can either contain multiple fields with logical operators or just a simple search string. Please refer to lucene.apache.org for more details on the lucene syntax. In addition the [MusicBrainz website] (https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2/Search) provides information about all possible query-fields.

Example

This example demonstrates a simple search requests to find the artist Parov Stelar. You can find it as a runnable go program in the samples folder.

// create a new WS2Client.
client := gomusicbrainz.NewWS2Client(
    "https://musicbrainz.org/ws/2",
    "A GoMusicBrainz example",
    "0.0.1-beta",
    "http://github.com/michiwend/gomusicbrainz")

// Search for some artist(s)
resp, _ := client.SearchArtist(`artist:"Parov Stelar"`, -1, -1)

// Pretty print Name and score of each returned artist.
for _, artist := range resp.Artists {
    fmt.Printf("Name: %-25sScore: %d\n", artist.Name, resp.Scores[artist])
}

the above code will produce the following output:

Name: Parov Stelar             Score: 100
Name: Parov Stelar Trio        Score: 80
Name: Parov Stelar & the Band  Score: 70

Lookup Requests

GoMusicBrainz provides two ways to perform lookup requests: Either the specific lookup method that is implemented for each entity that has a lookup endpoint in the form

func(*WS2Client) Lookup<ETITY>(id MBID, inc ...string) (*<ENTITY>, error)

or the common lookup method if you already have an entity (with MBID) that implements the MBLookupEntity interface:

func(*WS2Client) Lookup(entity MBLookupEntity, inc ...string) error

Example

The following example demonstrates the (specific) LookupArtist method. You can find it as a runnable go program in the samples folder.

// create a new WS2Client.
client, _ := gomusicbrainz.NewWS2Client(
    "https://musicbrainz.org/ws/2",
    "A GoMusicBrainz example",
    "0.0.1-beta",
    "http://github.com/michiwend/gomusicbrainz")

// Lookup artist by id.
artist, err := client.LookupArtist("9a709693-b4f8-4da9-8cc1-038c911a61be")

if err != nil {
    fmt.Println(err)
    return
}

fmt.Printf("%+v", artist)

Package Documentation

Full documentation for this package can be found at GoDoc and GoWalker

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].