Skip to main content

RecentTracksRequestBuilder

Struct RecentTracksRequestBuilder 

Source
pub struct RecentTracksRequestBuilder { /* private fields */ }
Expand description

Builder for recent tracks requests.

Implementations§

Source§

impl RecentTracksRequestBuilder

Source

pub const fn since(self, timestamp: i64) -> Self

Fetch tracks from this timestamp onwards.

§Arguments
  • timestamp - Unix timestamp in seconds (not milliseconds) since January 1, 1970 UTC
§Example
// Fetch tracks since January 1, 2024 00:00:00 UTC
let tracks = client.recent_tracks()
    .builder("username")
    .since(1704067200)
    .fetch()
    .await?;
Source

pub const fn between(self, from: i64, to: i64) -> Self

Fetch tracks between two timestamps.

§Arguments
  • from - Start Unix timestamp in seconds (not milliseconds) since January 1, 1970 UTC
  • to - End Unix timestamp in seconds (not milliseconds) since January 1, 1970 UTC
§Example
// Fetch tracks between January 1, 2024 and February 1, 2024 (UTC)
let tracks = client.recent_tracks()
    .builder("username")
    .between(1704067200, 1706745600)
    .fetch()
    .await?;
Source

pub fn on_progress( self, callback: impl Fn(u32, u32) + Send + Sync + 'static, ) -> Self

Register a progress callback invoked with (fetched, total) after each batch.

Source

pub async fn fetch(self) -> Result<TrackList<RecentTrack>>

Fetch the tracks.

§Errors

Returns an error if:

  • The HTTP request fails or the response cannot be parsed
  • The date range is invalid (to <= from when both timestamps are set)
Source

pub async fn check_currently_playing(self) -> Result<Option<RecentTrack>>

Check if the user is currently playing a track.

§Errors

Returns an error if the HTTP request fails or the response cannot be parsed.

§Returns
  • Result<Option<RecentTrack>> - The currently playing track if any
Source§

impl RecentTracksRequestBuilder

Source

pub async fn fetch_extended(self) -> Result<TrackList<RecentTrackExtended>>

Fetch tracks with extended information.

§Errors

Returns an error if:

  • The HTTP request fails or the response cannot be parsed
  • The date range is invalid (to <= from when both timestamps are set)
Source

pub async fn fetch_extended_and_save( self, format: FileFormat, filename_prefix: &str, ) -> Result<String>

Fetch tracks with extended information and save them to a file.

§Arguments
  • format - The file format to save the tracks in
  • filename_prefix - Prefix for the generated filename
§Errors

Returns an error if the HTTP request fails, response cannot be parsed, or file cannot be saved.

§Returns
  • Result<String> - The filename of the saved file
Source

pub async fn fetch_extended_and_update(self, file_path: &str) -> Result<usize>

Fetch only extended tracks newer than the most recent entry in an existing file and prepend them to it. If the file does not exist, all tracks are fetched and the file is created.

§Arguments
  • file_path - Path to the file to update (or create)
§Errors

Returns an error if the HTTP request fails, the response cannot be parsed, or the file cannot be read or written.

§Returns
  • Result<usize> - Number of new tracks prepended

Trait Implementations§

Source§

impl Debug for RecentTracksRequestBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FetchAndSave for RecentTracksRequestBuilder

Source§

type Item = RecentTrack

The item type produced by this builder.
Source§

fn resource_label() -> &'static str

A human-readable label used in log messages (e.g. "top tracks").
Source§

fn latest_timestamp(items: &[Self::Item]) -> Option<u32>

Return the most recent timestamp from the given items, used to write a sidecar file after saving. Return None (the default) if the item type has no timestamp.
Source§

async fn fetch_and_save( self, format: FileFormat, filename_prefix: &str, ) -> Result<String>

Fetch items and save them to a file. Read more
Source§

impl FetchAndUpdate for RecentTracksRequestBuilder

Source§

async fn fetch_since(self, max_ts: Option<u32>) -> Result<Vec<Self::Item>>

Fetch recent tracks newer than max_ts using the API-side from filter.

Source§

type Item = RecentTrack

The item type produced by this builder.
Source§

async fn fetch_and_update(self, file_path: &str) -> Result<usize>

Fetch only items newer than the most recent entry in an existing file and prepend them to it. Creates the file if it does not exist. Read more
Source§

impl LimitBuilder for RecentTracksRequestBuilder

Source§

fn limit(self, n: u32) -> Self

Set the maximum number of items to fetch. Read more
Source§

fn unlimited(self) -> Self

Fetch all available items (no limit).

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Analyze for T

Source§

type Item = <T as FetchAndSave>::Item

The item type produced by this builder.
Source§

async fn do_fetch_for_analyze( self, ) -> Result<Vec<<T as Analyze>::Item>, LastFmError>

Source§

async fn analyze(self, threshold: usize) -> Result<TrackStats>

Fetch items and return play-count statistics. Read more
Source§

async fn analyze_and_print(self, threshold: usize) -> Result<()>

Fetch items, compute statistics, and print them to stdout. Read more
Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more