Class: ListenBrainz::Recording

Inherits:
Base
  • Object
show all
Defined in:
lib/listenbrainz/models/recording.rb

Overview

Model class for recordings.

Defined Under Namespace

Classes: Payload

Instance Attribute Summary collapse

Class Method Summary collapse

Methods inherited from Base

#as_json

Instance Attribute Details

#artist_mbidsArray<String> (readonly)

Returns:

  • (Array<String>)


73
# File 'lib/listenbrainz/models/recording.rb', line 73

attribute :artist_mbids, Types::Array.of(Types::String)

#artist_nameString (readonly)

Returns:

  • (String)


77
# File 'lib/listenbrainz/models/recording.rb', line 77

attribute :artist_name, Types::String

#listen_countInteger (readonly)

Returns:

  • (Integer)


81
# File 'lib/listenbrainz/models/recording.rb', line 81

attribute :listen_count, Types::Integer

#recording_mbidString? (readonly) Also known as: mbid

Returns:

  • (String, nil)


85
# File 'lib/listenbrainz/models/recording.rb', line 85

attribute? :recording_mbid, Types::String.optional

#release_mbidString (readonly)

Returns:

  • (String)


90
# File 'lib/listenbrainz/models/recording.rb', line 90

attribute? :release_mbid, Types::String.optional

#release_nameString (readonly)

Returns:

  • (String)


94
# File 'lib/listenbrainz/models/recording.rb', line 94

attribute :release_name, Types::String

#track_nameString (readonly) Also known as: name

Returns:

  • (String)


98
# File 'lib/listenbrainz/models/recording.rb', line 98

attribute :track_name, Types::String

Class Method Details

.get(username = ListenBrainz.client.username, count: nil, offset: nil, range: nil) ⇒ Payload

Retrieves the top recordings for the given user.

Parameters:

  • username (String, nil) (defaults to: ListenBrainz.client.username)
  • count (Integer, nil) (defaults to: nil)
  • offset (Integer, nil) (defaults to: nil)
  • range (Symbol, nil) (defaults to: nil)

Returns:

See Also:



18
19
20
21
22
23
24
25
26
# File 'lib/listenbrainz/models/recording.rb', line 18

def self.get(
  username = ListenBrainz.client.username, count: nil, offset: nil,
  range: nil
)
  params = { count:, offset:, range: }.compact
  ListenBrainz.client.query(
    :get, "1/stats/user/#{username}/recordings", params:
  ).fetch(:payload).then { Payload.new(_1) }
end

.sitewide(count: nil, offset: nil, range: nil) ⇒ Payload

Retrieves the site-wide top recordings.

Parameters:

  • count (Integer, nil) (defaults to: nil)
  • offset (Integer, nil) (defaults to: nil)
  • range (Symbol, nil) (defaults to: nil)

Returns:

See Also:



38
39
40
41
42
# File 'lib/listenbrainz/models/recording.rb', line 38

def self.sitewide(count: nil, offset: nil, range: nil)
  params = { count:, offset:, range: }.compact
  ListenBrainz.client.query(:get, '1/stats/sitewide/recordings', params:)
    .fetch(:payload).then { Payload.new(_1) }
end