LastFM.swift 1.3.0

LastFM.swift 1.3.0

duhnnie 维护。



  • Daniel Canedo Ramos

LastFM.swift

这是一个用于消费 last.fm API 的库。此库涵盖了 last.fm API 页面 中列出的所有服务。

安装

Swift Package Manager

Swift Package Manager 是一个管理 Swift 代码分布的工具。

  1. 将以下内容添加到您的 Package.swift 文件中
dependencies: [
    .package(url: "https://github.com/duhnnie/LastFM.swift", from: "1.0.0")
]
  1. 构建您的项目
$ swift build

Carthage

Carthage 是一个用于 Cocoa 的简单、去中心化的依赖管理器。要使用 Carthage 安装 LastFM.swift

  1. 请确保已安装Carthage。[安装Carthage](https://github.com/Carthage/Carthage#installing-carthage)。

  2. 将Cartfile更新为以下内容

    github "duhnnie/LastFM.swift" ~> 1.0.0
  3. 运行carthage update并[添加适当的框架](https://github.com/Carthage/Carthage#adding-frameworks-to-an-application)。

CocoaPods

CocoaPods是Cocoa项目的依赖管理工具。要使用CocoaPods安装LastFM.swift

  1. 请确保CocoaPods已安装

    # Using the default Ruby install will require you to use sudo when
    # installing and updating gems.
    [sudo] gem install cocoapods
  2. 将您的Podfile更新为以下内容

    use_frameworks!
    
    target 'YourAppTargetName' do
        pod 'LastFM.swift', '~> 1.0.0'
    end
  3. 运行pod install --repo-update

用法

您需要一个last.fm API账户,您可以在这里获取一个账户。一旦拥有API账户,您需要创建一个LastFM.swift实例,提供API密钥API密钥

import LastFM

let lastFM = LastFM(apiKey: "your_api_key", apiSecret: "your_api_secret")

之后,您就可以开始使用服务了(有关所有可用服务的更多信息/文档,请参阅这里

let recentTrackParams = RecentTracksParams(user: "someUser", limit: 10, page: 1)

lastFM.User.getRecentTracks(params: recentTrackParams) { result in
    switch (result) {
    case .failure(let error):
        print("error message: \(error.localizedDescription)")

        switch(error) {
        case .LastFMServiceError(let lastfmErrorType, let message):
            print(lastfmErrorType, message)
        case .NoData:
            print("No data was returned.")
        case .OtherError(let error):
            print("An error ocurred: \(error)")
        case .NoSessionKey:
            print("No session key provided.")
        }
    case .success(let obj):
        for track in obj.items {
            print("\(track.artist.name) - \(track.name) - \(track.nowPlaying ? "🔈" : track.date!.debugDescription)")
        }
    }
}

认证

一些服务需要认证,此库提供了所有必要的认证方法(您可以在这里了解last.fm提供的所有认证路径)。

例如,要将歌曲上传到您的last.fm资料库,您需要提供从last.fm认证路径中获得的会话密钥,以便last.fm知道该乐曲应用于哪个账户。

var scrobbleParams = ScrobbleParams()

scrobbleParams.addItem(
  item: ScrobbleParamItem(
    artist: "The Strokes",
    track: "The Adults Are Talking",
    date: Date(),
    album: "The New Abnormal"
  )
)

try lastFM.Track.scrobble(
  params: scrobbleParams,
  sessionKey: "your_session_key",
  onCompletion: { result in
    switch (result) {
    case .success(let scrobble):
        print(scrobble)
    case .failure(let error):
        print(error)
    }
  }
)

Linux 支持

LastFM.swift 支持 Linux。然而运行测试会导致致命错误

Fatal error: Constant strings cannot be deallocated

这就是为什么一些测试在 GitHub Actions 中运行的原因。无论如何,您可以通过运行以下命令在本地 Docker 容器中运行测试(它具有不同的 Swift 版本):

./runLinuxTests.sh

关于 Linux 中出现的问题

贡献

原作者

许可证

LastFM.swift 采用 MIT 许可协议。有关更多信息,请参阅 许可文件