soundcloud

package
v0.0.0-...-a182dd4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 13, 2016 License: MIT Imports: 7 Imported by: 7

Documentation

Overview

Package soundcloud provides a minimialist soundcloud API wrapper.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Values

func Values(keyValues ...string) url.Values

Types

type Activity

type Activity struct {
	Type      string
	CreatedAt string `json:"created_at"`
	Tags      string
	// This is a specific type that should be re-interpreted as a given type (see activities page)
	Origin interface{}
}

Activity by a user (http://developers.soundcloud.com/docs/api/reference#activities)

type Api

type Api struct {
	ClientId     string
	ClientSecret string
	AccessToken  string
	RefreshToken string
}

func (*Api) App

func (api *Api) App(id uint64) *AppApi

func (*Api) Apps

func (api *Api) Apps(params url.Values) ([]*App, error)

func (*Api) Authenticated

func (api *Api) Authenticated() bool

func (*Api) Comment

func (api *Api) Comment(id uint64) *CommentApi

func (*Api) Group

func (api *Api) Group(id uint64) *GroupApi

func (*Api) Groups

func (api *Api) Groups(params url.Values) ([]*Group, error)

func (*Api) Me

func (api *Api) Me() *MeApi

func (*Api) Playlist

func (api *Api) Playlist(id uint64) *PlaylistApi

func (*Api) Playlists

func (api *Api) Playlists(params url.Values) ([]*Playlist, error)

func (*Api) Refresh

func (api *Api) Refresh() error

func (*Api) Resolve

func (api *Api) Resolve(scurl string) (uri *url.URL, err error)

func (*Api) Track

func (api *Api) Track(id uint64) *TrackApi

func (*Api) Tracks

func (api *Api) Tracks(params url.Values) ([]*Track, error)

func (*Api) User

func (api *Api) User(id uint64) *UserApi

func (*Api) Users

func (api *Api) Users(params url.Values) ([]*User, error)

func (*Api) Values

func (api *Api) Values(keyValues ...string) url.Values

type ApiError

type ApiError struct {
	Repr    string
	URL     string
	Code    int
	Message string
}

func (*ApiError) Error

func (ae *ApiError) Error() string

type App

type App struct {
	Id   uint64
	Name string

	*SubUri
	*SubPermalink

	ExternalUrl string `json:"external_url"`
	Creator     *User
}

type AppApi

type AppApi struct {
	// contains filtered or unexported fields
}

func (*AppApi) Get

func (t *AppApi) Get(params url.Values) (*App, error)

func (*AppApi) Tracks

func (a *AppApi) Tracks(params url.Values) ([]*Track, error)

type AuthResponse

type AuthResponse struct {
	AccessToken  string `json:"access_token"`
	RefreshToken string `json:"refresh_token"`
	ExpiresIn    uint64 `json:"expires_in"`
	Scope        string
}

type Comment

type Comment struct {
	Id uint64

	*SubUri
	*SubUser

	CreatedAt string `json:"created_at"`
	Body      string
	// Time in milliseconds
	Timestamp uint64
	TrackId   uint64
}

Comment on a track (http://developers.soundcloud.com/docs/api/reference#comments)

type CommentApi

type CommentApi struct {
	// contains filtered or unexported fields
}

func (*CommentApi) Get

func (t *CommentApi) Get(params url.Values) (*Comment, error)

type Connection

type Connection struct {
	Id uint64

	*SubUri

	CreatedAt    string `json:"created_at"`
	DisplayName  string `json:"display_name"`
	PostFavorite bool   `json:"post_favorite"`
	PostPublish  bool   `json:"post_publish"`
	Service      string
	Type         string
}

A connection to an external service such as twitter, tumblr, facebook, etc (http://developers.soundcloud.com/docs/api/reference#connections)

type Group

type Group struct {
	Id uint64

	*SubPermalink

	*SubUri
	CreatedAt        string `json:"created_at"`
	ArtworkUrl       string `json:"artwork_url"`
	Name             string
	Description      string
	ShortDescription string `json:"short_description"`

	// A mini representation of user
	Creator *User
}

Groups of members with tracks (http://developers.soundcloud.com/docs/api/reference#groups)

type GroupApi

type GroupApi struct {
	// contains filtered or unexported fields
}

func (*GroupApi) Contribution

func (g *GroupApi) Contribution(id uint64) *trackEndpoint

func (*GroupApi) Contributions

func (g *GroupApi) Contributions(params url.Values) ([]*Track, error)

func (*GroupApi) Contributors

func (g *GroupApi) Contributors(params url.Values) ([]*User, error)

func (*GroupApi) Get

func (t *GroupApi) Get(params url.Values) (*Group, error)

func (*GroupApi) Members

func (g *GroupApi) Members(params url.Values) ([]*User, error)

func (*GroupApi) Moderators

func (g *GroupApi) Moderators(params url.Values) ([]*User, error)

func (*GroupApi) PendingTrack

func (g *GroupApi) PendingTrack(id uint64) *trackEndpoint

func (*GroupApi) PendingTracks

func (g *GroupApi) PendingTracks(params url.Values) ([]*Track, error)

func (*GroupApi) Tracks

func (g *GroupApi) Tracks(params url.Values) ([]*Track, error)

func (*GroupApi) Users

func (g *GroupApi) Users(params url.Values) ([]*User, error)

type MeApi

type MeApi struct {
	UserApi
}

func (*MeApi) Activities

func (me *MeApi) Activities(params url.Values) (*PaginatedActivities, error)

func (*MeApi) Connection

func (me *MeApi) Connection(id uint64) *userEndpoint

func (*MeApi) Connections

func (me *MeApi) Connections(params url.Values) ([]*User, error)

type PaginatedActivities

type PaginatedActivities struct {
	*Pagination
	Collection []Activity
}

type Pagination

type Pagination struct {
	NextHref string `json:"next_href"`
}

type Playlist

type Playlist struct {
	Id uint64

	*SubUri
	*SubLabel
	*SubUser
	*SubPermalink

	CreatedAt     string `json:"created_at"`
	Title         string
	Sharing       string
	EmbeddableBy  string `json:"embeddable_by"`
	PurchaseUrl   string `json:"purchase_url"`
	ArtworkUrl    string `json:"artwork_url"`
	Description   string
	Duration      uint64
	Genre         string
	SharedToCount uint64 `json:"shared_to_count"`
	TagList       string `json:"tag_list"`
	// Release       uint64 //See release above
	ReleaseDay   uint `json:"release_day"`
	ReleaseMonth uint `json:"release_month"`
	ReleaseYear  uint `json:"release_year"`
	Streamable   bool
	Downloadable bool
	EAN          string `json:"ean"`
	PlaylistType string `json:"playlist_type"`
	Tracks       []*Track
}

A Soundcloud Set (http://developers.soundcloud.com/docs/api/reference#playlists)

type PlaylistApi

type PlaylistApi struct {
	// contains filtered or unexported fields
}

func (*PlaylistApi) Get

func (t *PlaylistApi) Get(params url.Values) (*Playlist, error)

type Resolution

type Resolution struct {
	Status   string
	Location string
}

type SubLabel

type SubLabel struct {
	Label     *User
	LabelId   uint64 `json:"label_id"`
	LabelName string `json:"label_name"`
}
type SubPermalink struct {
	// The name of the permalink. Sometimes not included (on App specifically)
	Permalink string
	// Always included
	PermalinkUrl string `json:"permalink_url"`
}

type SubUri

type SubUri struct {
	Uri string
}

type SubUser

type SubUser struct {
	UserId uint64 `json:"user_id"`
	// A minimal representation of user
	User *User
}

type Track

type Track struct {
	Id uint64

	*SubUri
	*SubLabel
	*SubUser
	*SubPermalink

	CreatedAt     string `json:"created_at"`
	Title         string
	Sharing       string
	EmbeddableBy  string `json:"embeddable_by"`
	PurchaseUrl   string `json:"purchase_url"`
	ArtworkUrl    string `json:"artwork_url"`
	Description   string
	Duration      uint64
	Genre         string
	SharedToCount uint64 `json:"shared_to_count"`
	TagList       string `json:"tag_list"`
	// Release             uint64 // Release is sometimes "" and sometimes null and sometimes a number?
	ReleaseDay          uint `json:"release_day"`
	ReleaseMonth        uint `json:"release_month"`
	ReleaseYear         uint `json:"release_year"`
	Streamable          bool
	Downloadable        bool
	State               string
	License             string
	TrackType           string `json:"track_type"`
	WaveformUrl         string `json:"waveform_url"`
	DownloadUrl         string `json:"download_url"`
	StreamUrl           string `json:"stream_url"`
	VideoUrl            string `json:"video_url"`
	Bpm                 float64
	Commentable         bool
	ISRC                string `json:"isrc"`
	KeySignature        string `json:"key_signature"`
	CommentCount        uint64 `json:"comment_count"`
	DownloadCount       uint64 `json:"download_count"`
	PlaybackCount       uint64 `json:"playback_count"`
	FavoritingsCount    uint64 `json:"favoritings_count"`
	OriginalFormat      string `json:"original_format"`
	OriginalContentSize uint64 `json:"original_content_size"`
	CreatedWith         *App
	AssetData           []byte `json:"asset_data"`
	ArtworkData         []byte `json:"artwork_data"`
	UserFavorite        bool   `json:"user_favorite"`
}

Sound Track (http://developers.soundcloud.com/docs/api/reference#tracks)

type TrackApi

type TrackApi struct {
	// contains filtered or unexported fields
}

func (*TrackApi) Comment

func (t *TrackApi) Comment(id uint64) *commentEndpoint

func (*TrackApi) Comments

func (t *TrackApi) Comments(params url.Values) ([]*Comment, error)

func (*TrackApi) Favorite

func (t *TrackApi) Favorite(id uint64) *userEndpoint

func (*TrackApi) Favorites

func (t *TrackApi) Favorites(params url.Values) ([]*User, error)

func (*TrackApi) Get

func (t *TrackApi) Get(params url.Values) (*Track, error)

type User

type User struct {
	//---- Included in mini-representation
	Id uint64

	*SubUri
	*SubPermalink

	Username  string
	AvatarUrl string `json:"avatar_url"`

	//---- Not included in mini-representation
	Country              string
	FullName             string `json:"full_name"`
	City                 string
	Description          string
	DiscogsName          string `json:"discogs-name"`
	MyspaceName          string `json:"myspace-name"`
	Website              string
	WebsiteTitle         string `json:"website_title"`
	Online               bool
	TrackCount           uint64 `json:"track_count"`
	PlaylistCount        uint64 `json:"playlist_count"`
	FollowersCount       uint64 `json:"followers_count"`
	FollowingsCount      uint64 `json:"followings_count"`
	PublicFavoritesCount uint64 `json:"public_favorites_count"`
	AvatarData           []byte `json:"avatar_data"`
}

User Object (http://developers.soundcloud.com/docs/api/reference#token)

type UserApi

type UserApi struct {
	// contains filtered or unexported fields
}

func (*UserApi) Comments

func (u *UserApi) Comments(params url.Values) ([]*Comment, error)

func (*UserApi) Favorite

func (u *UserApi) Favorite(id string) *trackEndpoint

func (*UserApi) Favorites

func (u *UserApi) Favorites(params url.Values) ([]*Track, error)

func (*UserApi) Follower

func (u *UserApi) Follower(id string) *userEndpoint

func (*UserApi) Followers

func (u *UserApi) Followers(params url.Values) ([]*User, error)

func (*UserApi) Following

func (u *UserApi) Following(id uint64) *userEndpoint

func (*UserApi) Followings

func (u *UserApi) Followings(params url.Values) ([]*User, error)

func (*UserApi) Get

func (u *UserApi) Get(params url.Values) (*User, error)

func (*UserApi) Groups

func (u *UserApi) Groups(params url.Values) ([]*Group, error)

func (*UserApi) Playlists

func (u *UserApi) Playlists(params url.Values) ([]*Playlist, error)

func (*UserApi) Tracks

func (u *UserApi) Tracks(params url.Values) ([]*Track, error)

func (*UserApi) WebProfiles

func (u *UserApi) WebProfiles(params url.Values) ([]*Connection, error)

Directories

Path Synopsis
Package oembed provides structure definitions for the [OEmbed](http://oembed.com) open standard
Package oembed provides structure definitions for the [OEmbed](http://oembed.com) open standard

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL