Crate lastfm_edit

Crate lastfm_edit 

Source
Expand description

§lastfm-edit

Crates.io Documentation CI License: MIT

A Rust crate for programmatic access to Last.fm’s scrobble editing functionality via web scraping.

📚 View API Documentation →

§Features

  • Authentication: Login with username/password
  • Library browsing: Paginated access to tracks, albums, and recent scrobbles
  • Bulk editing: Edit track names, artist names, and album information
  • Async iterators: Stream large datasets efficiently
  • HTTP client abstraction: Works with any HTTP client implementation

§Quick Start

use lastfm_edit::{LastFmEditClient, LastFmEditClientImpl, AsyncPaginatedIterator, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let http_client = http_client::native::NativeClient::new();
    let client = LastFmEditClientImpl::login_with_credentials(
        Box::new(http_client),
        "username",
        "password"
    ).await?;

    let mut recent_tracks = client.recent_tracks();
    while let Some(track) = recent_tracks.next().await? {
        println!("{} - {}", track.artist, track.name);
    }

    Ok(())
}

§Core Types

§Installation

[dependencies]
lastfm-edit = "4.0.1"
http-client = { version = "^6.6.3", package = "http-client-2", features = ["curl_client"] }
tokio = { version = "1.0", features = ["full"] }

§License

MIT

Re-exports§

pub use client::LastFmEditClientImpl;
pub use discovery::AlbumTracksDiscovery;
pub use discovery::ArtistTracksDiscovery;
pub use discovery::AsyncDiscoveryIterator;
pub use discovery::ExactMatchDiscovery;
pub use discovery::TrackVariationsDiscovery;
pub use login::LoginManager;
pub use trait::LastFmEditClient;
pub use iterator::AsyncPaginatedIterator;
pub use types::Album;
pub use types::AlbumPage;
pub use types::Artist;
pub use types::ArtistPage;
pub use types::ClientConfig;
pub use types::ClientEvent;
pub use types::ClientEventReceiver;
pub use types::ClientEventWatcher;
pub use types::EditResponse;
pub use types::ExactScrobbleEdit;
pub use types::LastFmEditSession;
pub use types::LastFmError;
pub use types::OperationalDelayConfig;
pub use types::RateLimitConfig;
pub use types::RateLimitType;
pub use types::RequestInfo;
pub use types::RetryConfig;
pub use types::RetryResult;
pub use types::ScrobbleEdit;
pub use types::SharedEventBroadcaster;
pub use types::SingleEditResponse;
pub use types::Track;
pub use types::TrackPage;
pub use session_persistence::SessionManager;
pub use session_persistence::SessionPersistence;

Modules§

client
discovery
edit_analysis
headers
iterator
login
parsing
HTML parsing utilities for Last.fm pages.
retry
session_persistence
trait
types
Data types for Last.fm music metadata and operations.
vcr_form_data
vcr_matcher
vcr_test_utils

Structs§

Html
An HTML tree.

Type Aliases§

AlbumTracksIterator
ArtistAlbumsIterator
ArtistTracksDirectIterator
ArtistTracksIterator
ArtistsIterator
RecentTracksIterator
Result
A convenient type alias for Result with LastFmError as the error type.
SearchAlbumsIterator
SearchArtistsIterator
SearchTracksIterator