安装 libhypem 非常简单。首先,将此仓库顶层 libhypem 文件夹中的所有类添加到您的应用中。完成了?太好了。现在,只需在任何计划使用 libhypem 的控制器、类或视图中 #import "libhypem.h"
。这就完成了。我们在这里完成了。
要添加的类
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.
}
}
}];
每次您调用 getNextPage
,Playlist
都会递增其页并将其添加到其 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提供精彩功能iOS/Mac应用程序的列表。如果你的应用使用了这个库,请打开一个issuse,我将在列表中添加它。
libhypem采用标准的MIT许可。
版权(C)2014 由Zane Shannon所有
特此授予任何获取此软件和相关文档副本(“软件”)的个人在没有任何限制的情况下处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、许可和/或销售软件副本的权利,并允许将软件提供给他人,以便他们可以这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
该软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任承担责任(无论是合同、侵权或其他),无论源于或与该软件或其使用或其他交易相关。