PlexKit 1.1.1

PlexKit 1.1.1

测试已测试
语言语言 Objective-CObjective C
许可证 MIT
发布最后发布2020年7月

Lachlan Charlick 维护。



PlexKit 1.1.1

PlexKit

PlexKit 提供了对 Plex API 小部分异步、类型安全的访问。

安装

CocoaPods

pod 'PlexKit'

要求

  • iOS 10+
  • macOS 10.12+

入门指南

身份验证

在访问任何资源之前,我们需要一个身份验证令牌

import PlexKit

// Client identifier is required for most endpoints.
let info = Plex.ClientInfo(clientIdentifier: UUID().uuidString)

let client = Plex(sessionConfiguration: .default, clientInfo: info)

client.request(
    // plex.tv endpoints are namespaced under `Plex.ServiceRequest`.
    Plex.ServiceRequest.SimpleAuthentication(
        username: "USER",
        password: "PASS"
    )
) { result in
    switch result {
    case .success(let response):
        print("Hello, \(response.user.title)!")
        print("Your authentication token is \(response.user.authenticationToken)")
    case .failure(let error):
        print("An error occurred: \(error)")
    }
}

查找服务器

一旦我们拥有令牌,我们就可以访问每个plex.tv端点,或者访问一个服务器实例。要找到服务器(或“资源”),我们可以向plex.tv提问

client.request(
    Plex.ServiceRequest.Resources(),
    token: token
) { result in
    switch result {
    case .success(let response):
        print("Found \(response.count) resources")
        let servers = response.filter { $0.capabilities.contains(.server)}
        print("\(servers.count) of which are servers.")
    case .failure(let error):
        print("An error occurred: \(error)")
    }
}

访问库

client.request(
    // Resource-related requests are namespaced under `Plex.Request`.
    Plex.Request.Libraries(),
    from: url,
    token: token
) { result in
    switch result {
    case .success(let response):
        let libraries = response.mediaContainer.directory
        print("Found \(libraries.count) libraries")
        let musicLibraries = libraries.filter { $0.type == .artist }
        print("\(musicLibraries.count) are music libraries")
    case .failure(let error):
        print("An error occurred: \(error)")
    }
}

备注

  • 请检查Plex.RequestPlex.ServiceRequest命名空间中可用的端点。

  • PlexKit模型直接映射到Plex API返回的数据。在可能的情况下,我已经为Swift清理了这些数据,但这里还可以做更多工作。

  • 由于最初是为PrismPrologue编写的,因此PlexKit主要专注于Plex的音频组件,尽管其他媒体类型也可以工作。

许可证

PlexKit在MIT许可下提供。有关更多信息,请参阅LICENSE文件。