View Source LastfmArchive.Behaviour.Archive behaviour (lastfm_archive v0.9.2)

Behaviour of a Lastfm archive.

The module also provides a struct that keeps metadata about the archive. An archive contains scrobbles data retrieved from Lastfm API. It can be based upon various storage implementation such as file systems and databases.

Link to this section Summary

Types

t()

Metadata descriping a Lastfm archive based on Dublin Core Metadata Initiative.

Callbacks

Returns metadata of an existing archive.

Creates a new archive and writes metadata to file.

Write scrobbles data to an existing archive.

Functions

Data struct containing new and some default metadata of an archive.

Link to this section Types

@type options() :: keyword()
@type scrobbles() :: map()
@type t() :: %LastfmArchive.Behaviour.Archive{
  created: DateTime.t(),
  creator: binary(),
  date: Date.t(),
  description: binary(),
  extent: integer(),
  format: binary(),
  identifier: binary(),
  modified: DateTime.t(),
  source: binary(),
  temporal: {integer(), integer()},
  title: binary(),
  type: atom()
}

Metadata descriping a Lastfm archive based on Dublin Core Metadata Initiative.

@type user() :: binary()

Link to this section Callbacks

@callback describe(user(), options()) :: {:ok, t()} | {:error, term()}

Returns metadata of an existing archive.

Link to this callback

update_metadata(t, options)

View Source
@callback update_metadata(t(), options()) :: {:ok, t()} | {:error, term()}

Creates a new archive and writes metadata to file.

Link to this callback

write(t, scrobbles, options)

View Source
@callback write(t(), scrobbles(), options()) :: :ok | {:error, term()}

Write scrobbles data to an existing archive.

Link to this section Functions

@spec new(user()) :: t()

Data struct containing new and some default metadata of an archive.

Other metadata fields such as temporal, modified can be populated based on the outcomes of archiving, i.e. the implementation of the callbacks of this behaviour.