- Update
wrapped-vec
dependency to v0.3.0
- Replace
reqwest
HTTP client withureq
(@agersant, #47, #48) - Update
mockito
dev-dependency to v0.28
- Update dependencies (fixes issue building with rust 1.40, updated md5 and mockito crate versions)
- Fix issue parsing
ScrobbleBatchResponses
whenScrobbleBatch
had a single scrobble (#45) - Remove deprecated
Error::description
andcause
onScrobblerError
(@AnderEnder, #44) - Cleaned up some messy/unnecessary imports
- Full API documented comprehensively (#19)
- Simpler API interface
- Lots of improvements, particularly &str/String improvements (@andy128k, #30)
- Add From tuple trait implementations for Scrobble, ScrobbleBatch
- Modernized and cleaned up internal code:
- Use Rust Edition 2018 (@AnderEnder, #28)
- Use rustfmt to format code (@AnderEnder, #29)
- Improved error handling using From trait (@AnderEnder, #33)
- Clippy improvements (@GChicha, #41)
- Add unit test suite (@gbmor, #13, #40)
- Remove deprecated
Scrobbler::authenticate
(@skneko, #31 #32) - Simplified and improved example code (#22)
- Update and improve README & repo documentation
- Updated dependencies:
- Replace outdated
rust-crypto
withmd5
crate (@AnderEnder, #34)
- Replace outdated
- Update
reqwest
to v0.9.15 - Add Artist, Track & Album getters to
Scrobbler
- Re-designed authentication API:
- Add support for authenticating with session key (#16)
- Implement current password authentication in
Scrobbler::authenticate_with_passsword
- Deprecate old
authenticate
method
- Expose current session key via
Scrobbler::session_key
(#17) - Separate API response structs and common values contained in the structs (new
responses::values
package)- Use wrapped-vec derived
ScrobbleList
instead ofVec<ScrobbleResponse>
in various response structs
- Use wrapped-vec derived
- Batch scrobbling support (#9):
- Add
Scrobbler::scrobble_batch
- Add
ScrobbleBatch
type, auto-generated usingwrapped-vec
crate - Add
responses::ScrobbleBatchResponse
response type
- Add
- Scrobble timestamping support (#2)
- Export
Scrobble
type in crate root; imports for most common use-case more ergonomic (#12) - Improve
example.rs
readability - Various small code improvements
- Scrobble implements recommended derivable traits: Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug. (#11)
- New Scrobble struct representing a single track-play (issue #8)
- Update Scrobbler methods to take Scrobble struct instead of artist & track names as bare Strings.
- Add support for submitting album data along with track name & artist (#7)
- Add timestamp field to ScrobblerResponse (Fixes issue #4)
- Update to stable Serde v1.0.2
- Update custom deserializer for CorrectableString
- Refactor dto.rs into models.rs with sub-packages
- Upgrade reqwest dependency to version 0.7.3, fixes reqwest bug with connection pools timing out which broke long-existing Scrobbler instances
- Return API responses encoded as structs (Issue #3) All Scrobbler methods now return the Last.fm API response deserialized into a Rust struct for the type (see API documentation)
- Add ScrobbleError (with std::err:Error), instead of just returning error messages as strings.
- Refactor Scrobbler/client code:
- Move request-making code out of Scrobbler and into client; Scrobbler should be an extremely minimal high(est) level layer.
- Improve internal representation of API methods/operations, using an enum instead of passing magic strings around.
- Improve API request code:
- Switch to reqwest instead of hyper for HTTP client
- Share a HTTP client instance between API requests
- API request code refactor / cleanup
- Update serde library dependency to version 0.9
- Add API documentation for rustfm-scrobble crate
- Update data in Cargo.toml
- Initial release