LRTVDBAPIClient 0.1

LRTVDBAPIClient 0.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2014 年 12 月

Luis Recuenco 维护。



 
依赖项
AFNetworking>= 0
TBXML>= 0
zipzap>= 0
 

  • 作者
  • Luis Recuenco

LRTVDBAPIClient 是 TheTVDB 的一个简单高效的 Objective-C 封装。

它支持:

  • 根据指定的查询搜索剧集。
  • 根据给定的 TVDB 剧集 ID 获取剧集列表。
  • 根据给定的 TVDB 剧集 ID 获取剧集列表。
  • 获取指定季度的正确剧集。
  • 获取所有电视节目艺术信息。
  • 获取所有电视节目演员信息。
  • 更新剧集列表。
  • 将剧集列表从/到磁盘持久化/检索。
  • 支持每项 TVDB 语言。

安装

  1. 使用 CocoaPods

    将 LRTVDBAPIClient 添加到 Podfile 中

    platform :ios, "5.1"
    pod 'LRTVDBAPIClient'   
    

    运行以下命令

    pod install
    

    最后,导入 SystemConfiguration 和 MobileCoreServices 框架以避免 AFNetworking 警告。

  2. 手动

    克隆项目或将其作为子模块添加(使用 --recursive 选项以便更新相关子模块)。

    git clone --recursive git://github.com/luisrecuenco/LRTVDBAPIClient.git
    

    拖动 LRTVDBAPIClient 文件夹到您的项目中,并添加 AFNetworkingTBXMLzipzap 项目(在 Vendor 文件夹中可用)。您可以在它们的 GitHub 页面上找到如何添加它们的说明(参见下面的致谢部分)。

配置

您可以在 TVDBAPIClient 类的属性 apiKey 中指定您的 TVDB API 键。

您还可以设置要使用的语言(通过 TVDBAPIClient 中的 language 属性)。如果没有提供语言,则默认使用设备语言(或如果后者不支持 TheTVDB,则使用英语)。

用法

代码分为四个主要类别

  • 模型: LRTVDBShowLRTVDBEpisodeLRTVDBImageLRTVDBActor
  • 持久化管理器: LRTVDBPersistenceManager
  • 解析器: LRTVDBAPIParser
  • API 客户端: LRTVDBAPIClient

具有所有用于从 TheTVDB 获取信息的详细信息的主类是 LRTVDBAPIClient。让我们进一步解释您可以做什么。

根据指定的查询搜索剧集

- (void)showsWithName:(NSString *)showName 
      completionBlock:(void (^)(NSArray *shows, NSError *error))completionBlock;

该方法的结果是包含 TheTVDB 提供的一些基本信息的 LRTVDBShow 对象数组(名称、ID、概述、IMDB ID、横幅 URL...)。要获取更多详细信息,例如剧集、艺术作品或演员,可以使用以下方法。

根据给定的TVDB节目ID检索列表

- (void)showsWithIDs:(NSArray *)showsIDs 
     includeEpisodes:(BOOL)includeEpisodes 
       includeImages:(BOOL)includeImages 
       includeActors:(BOOL)includeActors 
     completionBlock:(void (^)(NSArray *shows, NSDictionary *errorsDictionary))completionBlock;

节目:LRTVDBShow对象数组。错误字典:<@showID : NSError>。

根据给定的TVDB剧集ID检索剧集列表

- (void)episodesWithIDs:(NSArray *)episodesIDs 
        completionBlock:(void (^)(NSArray *episodes, NSDictionary *errorsDictionary))completionBlock;

剧集:LRTVDBEpisode对象数组。错误字典:<@episodeID : NSError>。

获取指定季和集数的正确剧集

- (void)episodeWithSeasonNumber:(NSNumber *)seasonNumber 
                  episodeNumber:(NSNumber *)episodeNumber 
                  forShowWithID:(NSString *)showID 
                completionBlock:(void (^)(LRTVDBEpisode *episode, NSError *error))completionBlock;

获取所有电视剧的美术信息

- (void)imagesForShowWithID:(NSString *)showID 
            completionBlock:(void (^)(NSArray *images, NSError *error))completionBlock;

图像 是一个LRTVDBImage对象数组。

获取所有电视剧的演员信息

- (void)actorsForShowWithID:(NSString *)showID 
            completionBlock:(void (^)(NSArray *actors, NSError *error))completionBlock;

演员 是一个LRTVDBActor对象数组。

更新节目列表

- (void)updateShows:(NSArray *)showsToUpdate 
      checkIfNeeded:(BOOL)checkIfNeeded 
     updateEpisodes:(BOOL)updateEpisodes 
       updateImages:(BOOL)updateImages 
       updateActors:(BOOL)updateActors 
    completionBlock:(void (^)(BOOL finished))completionBlock;

要将更新的节目 将更新为程序的最新信息。当所有节目都已更新后,将调用块进行确认,通过布尔值指示操作的成功。在不等待块执行(例如,等待每个节目更新完成)的情况下更新程序的最好方法是监控所需属性通过KVO。

checkIfNeeded 用于在不需要更新节目时强制更新(参见方法文档以获取进一步解释)。

将剧集列表从/到磁盘持久化/检索。

- (void)saveShowsInPersistenceStorage:(NSArray *)shows;
- (NSArray *)showsFromPersistenceStorage;

示例

项目包含一个完整的电视剧追踪器应用程序示例。您可以搜索节目,将它们添加到您的图书馆中,查看剧集,标记为已观看,在Twitter和Facebook上分享...这是一款此类应用程序应提供的所有功能。该示例使用了CocoaPods,因此您只需要在示例文件夹中执行pod install 并打开工作空间。

要求

LRTVDBAPIClient需要iOS 5.1和ARC。

您仍然可以在非ARC项目中使用LRTVDBAPIClient。只需在每个源文件中设置-fobjc-arc编译器标志。

致谢

LRTVDBAPIClient使用了以下第三方库

联系方式

LRTVDBAPIClient是由Luis Recuenco创建的:@luisrecuenco

贡献

如果您想为该项目做出贡献,请遵循以下步骤

  1. 分支仓库。
  2. 将您的分支克隆到本地计算机。
  3. 创建您的功能分支。
  4. 提交您的更改,推送到您的分支并提交拉取请求。

许可证

LRTVDBAPIClient可在MIT许可下使用。更多详细信息请参阅LICENSE文件