libhypem 0.0.1

libhypem 0.0.1

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

Zane Shannon维护。



libhypem 0.0.1

  • 作者:
  • Zane Shannon

添加 Hype Machine 至您的 iOS/Mac 应用程序的终极 Cocoa 框架。此库包括获取播放列表、获取和收藏曲目以及用户获取和认证。

目录

入门

安装 libhypem 非常简单。首先,将此仓库顶层 libhypem 文件夹中的所有类添加到您的应用中。完成了?太好了。现在,只需在任何计划使用 libhypem 的控制器、类或视图中 #import "libhypem.h"。这就完成了。我们在这里完成了。

要添加的类

  • libhypem.h
  • APIClient.{h,m}
  • Blog.{h,m}
  • HypeM.{h,m}
  • Playlist.{h,m}
  • Track.{h,m}
  • User.{h,m}

CocoaPods

如果 CocoaPods 满足您的依赖关系管理口味,那么这里也有一个 .podspec。只需将以下行添加到您的 Podfile 中,然后安装您的 pods 以简单方式开始使用 libhypem。

pod 'libhypem'

获取播放列表

Hype Machine 上的几乎所有内容都是播放列表。Playlist.h 为每种播放列表类型提供了方法。使用如下所示:

#import 'libhypem.h'

// Popular
Playlist *popularThreeDay = [Playlist popular:nil];
// Or a different time period
Playlist *playlistLastWeek = [Playlist popular:@"lastweek"];
// Or a specific genre
Playlist *playlistDance = [Playlist tagged:@"Dance"];

一旦实例化了一个 Playlist,您就可以开始对其进行分页,如下所示:

Playlist *playlist = [Playlist popular:nil];
[playlist getNextPage:^(NSError *error) {
    if (error == nil) {
        for (Track *track in playlist.tracks) {
            // Here are some `Track` objects. More on this later.
        }
    }
}];

每次您调用 getNextPagePlaylist 都会递增其页并将其添加到其 tracks 属性中。

这就是播放列表的全部内容。


获取曲目

一旦您有了 Playlist,您就可以开始使用其 Track。有两种用于获取下载 URL 的方法:`publicDownloadURL` 和 `internalDownloadURL`。因此,HypeM 有点奇怪。他们的原生 iOS 应用使用与 `publicDownloadURL` 相同的协议,但他们的网站使用不同的协议,这在 `internalDownloadURL` 中得到了复制。《publicDownloadURL》 更少地依赖于从 `hypem.com` 抓取数据,因此它更健壮。YMMV。

Playlist *playlist = [Playlist popular:nil];
[playlist getNextPage:^(NSError *error) {
    if (error == nil) {
        for (Track *track in playlist.tracks) {
            // download the mp3 this way
            NSURL *downloadURL = [track publicDownloadURL]; 
            // or, another way
            [track internalDownloadURL:^(NSURL *url, NSError *error) {
                // use `url` here
            }];
            // if it's a great track, and you're logged in (more on that later), favorite it!
            [track toggleFavorite:^(NSError *error) {
                if (error == nil) {
                    NSLog(@"%@ is a great track. One of my favorites!", track.title);
                }
            }];
        }
    }
}];

登录/注销

用户相关的操作是成为Hype Machine社区一员的重要方面。我的意思是,如果你不能在收藏曲目上活跃,那么你几乎就像一朵墙上的花朵。

HypeM在浏览器中的操作基于HTTP Cookie。这个Cookie在加载时生成,在登录时认证,并保留很长一段时间。

HypeM *h = [HypeM sharedInstance];
[h loginWithUsername:@"username" andPassword:@"password" andCompletion:^(User *user, NSError *error) {
    if (error != nil) {
        // Login worked. Now you can favorite the good `Tracks`
    }
}];

注销只是删除了Cookie属性和用户属性从内存中,以及从[NSHTTPCookieStorage sharedStorage]中的实际cookie,因此你不能再使用它们来执行针对特定用户的需求,如收藏。注销实现非常简单。

[[HypeM sharedInstance] logout];

面向未来和更远方的设计!

基本上,这些都是临时拼凑的,因为Hype Machine不支持公共API。如果他们能这样做就太好了。


使用libhypem的应用

以下是一份使用libhypem提供精彩功能iOS/Mac应用程序的列表。如果你的应用使用了这个库,请打开一个issuse,我将在列表中添加它。


受libhypem启发的工具


许可

libhypem采用标准的MIT许可。

版权(C)2014 由Zane Shannon所有

特此授予任何获取此软件和相关文档副本(“软件”)的个人在没有任何限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或销售软件副本的权利,并允许将软件提供给他人,以便他们可以这样做,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

该软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任承担责任(无论是合同、侵权或其他),无论源于或与该软件或其使用或其他交易相关。