-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathAffiliates+Convenience.h
154 lines (124 loc) · 5.74 KB
/
Affiliates+Convenience.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
//
// Affiliates+Convenience.h
// Ringtonic
//
// Created by Alexander Ivanov on 14.11.16.
// Copyright © 2016 Alexander Ivanov. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSArray+Convenience.h"
#import "NSBundle+Convenience.h"
#import "NSObject+Convenience.h"
#import "NSURLSession+Convenience.h"
#define SKStoreProductParameterAffiliateToken_IOS_8_0 @"at"
#define SKStoreProductParameterCampaignToken_IOS_8_0 @"ct"
#define SKStoreProductParameterProviderToken_IOS_8_3 @"pt"
@interface NSDictionary (Affiliates)
+ (instancetype)dictionaryWithProvider:(NSString *)provider affiliate:(NSString *)affiliate campaign:(NSString *)campaign;
+ (instancetype)dictionaryWithProvider:(NSString *)provider affiliate:(NSString *)affiliate;
@property (strong, nonatomic, readonly) NSString *wrapperType;
@property (strong, nonatomic, readonly) NSString *explicitness;
@property (strong, nonatomic, readonly) NSString *kind;
@property (strong, nonatomic, readonly) NSNumber *trackId;
@property (strong, nonatomic, readonly) NSNumber *artistId;
@property (strong, nonatomic, readonly) NSNumber *collectionId;
@property (strong, nonatomic, readonly) NSString *trackName;
@property (strong, nonatomic, readonly) NSString *artistName;
@property (strong, nonatomic, readonly) NSString *collectionName;
@property (strong, nonatomic, readonly) NSString *censoredName;
@property (strong, nonatomic, readonly) NSURL *artworkUrl100;
@property (strong, nonatomic, readonly) NSURL *artworkUrl60;
@property (strong, nonatomic, readonly) NSURL *viewUrl;
@property (strong, nonatomic, readonly) NSURL *previewUrl;
@property (assign, nonatomic, readonly) NSTimeInterval trackTime;
@property (strong, nonatomic, readonly) NSArray *genres;
@end
@interface NSURL (Affiliates)
+ (NSURL *)URLForMediaType:(NSUInteger)mediaType identifier:(NSUInteger)identifier affiliateInfo:(NSDictionary *)affiliateInfo;
+ (NSURL *)URLForMobileAppWithIdentifier:(NSUInteger)identifier affiliateInfo:(NSDictionary *)affiliateInfo;
@end
#define kWrapperTypeTrack @"track"
#define kWrapperTypeCollection @"collection"
#define kWrapperTypeArtist @"artist"
#define kExplicitnessExplicit @"explicit"
#define kExplicitnessCleaned @"cleaned"
#define kExplicitnessNotExplicit @"notExplicit"
#define kKindBook @"book"
#define kKindAlbum @"album"
#define kKindCoachedAudio @"coached-audio"
#define kKindFeatureMovie @"feature-movie"
#define kKindInteractiveBooklet @"interactive-booklet"
#define kKindMusicVideo @"music-video"
#define kKindPDF @"pdf"
#define kKindPodcast @"podcast"
#define kKindPodcastEpisode @"podcast-episode"
#define kKindSoftwarePackage @"software-package"
#define kKindSong @"song"
#define kKindTVEpisode @"tv-episode"
#define kKindArtist @"artist"
@interface AFMediaItem : NSObject
@property (strong, nonatomic, readonly) NSDictionary *dictionary;
- (instancetype)initWithDictionary:(NSDictionary *)dictionary;
@property (strong, nonatomic, readonly) NSString *wrapperType;
@property (strong, nonatomic, readonly) NSString *explicitness;
@property (strong, nonatomic, readonly) NSString *kind;
@property (strong, nonatomic, readonly) NSNumber *trackId;
@property (strong, nonatomic, readonly) NSNumber *artistId;
@property (strong, nonatomic, readonly) NSNumber *collectionId;
@property (strong, nonatomic, readonly) NSString *trackName;
@property (strong, nonatomic, readonly) NSString *artistName;
@property (strong, nonatomic, readonly) NSString *collectionName;
@property (strong, nonatomic, readonly) NSString *censoredName;
@property (strong, nonatomic, readonly) NSURL *artworkUrl100;
@property (strong, nonatomic, readonly) NSURL *artworkUrl60;
@property (strong, nonatomic, readonly) NSURL *viewUrl;
@property (strong, nonatomic, readonly) NSURL *previewUrl;
@property (assign, nonatomic, readonly) NSTimeInterval trackTime;
@property (assign, nonatomic, readonly) BOOL isTrack;
@property (assign, nonatomic, readonly) BOOL isCollection;
@property (assign, nonatomic, readonly) BOOL isArtist;
#define URL_LOOKUP @"https://itunes.apple.com/lookup"
#define URL_SEARCH @"https://itunes.apple.com/search"
#define KEY_ID @"id"
#define KEY_TERM @"term" // required
#define KEY_COUNTRY @"country" // required
#define KEY_MEDIA @"media"
#define KEY_ENTITY @"entity"
#define KEY_ATTRIBUTE @"attribute"
//#define KEY_CALLBACK @"callback"
#define KEY_LIMIT @"limit"
#define KEY_LANG @"lang"
#define KEY_VERSION @"version"
#define KEY_EXPLICIT @"explicit"
#define kMediaMovie @"movie"
#define kMediaPodcast @"podcast"
#define kMediaMusic @"music"
#define kMediaMusicVideo @"musicVideo"
#define kMediaAudiobook @"audiobook"
#define kMediaShortFilm @"shortFilm"
#define kMediaTVShow @"tvShow"
#define kMediaSoftware @"software"
#define kMediaEbook @"ebook"
#define kMediaAll @"all"
#define kEntityMusicArtist @"musicArtist"
#define kEntityMusicTrack @"musicTrack"
#define kEntityAlbum @"album"
#define kEntityMusicVideo @"musicVideo"
#define kEntityMix @"mix"
#define kEntitySong @"song"
#define kEntitySoftware @"software"
#define kEntityIPadSoftware @"iPadSoftware"
#define kEntityMacSoftware @"macSoftware"
#define kAttributeMixTerm @"mixTerm"
#define kAttributeGenreIndex @"genreIndex"
#define kAttributeArtistTerm @"artistTerm"
#define kAttributeComposerTerm @"composerTerm"
#define kAttributeAlbumTerm @"albumTerm"
#define kAttributeRatingIndex @"ratingIndex"
#define kAttributeSongTerm @"songTerm"
#define kAttributeSoftwareDeveloper @"softwareDeveloper"
+ (BOOL)lookup:(NSDictionary *)parameters handler:(void(^)(NSArray<AFMediaItem *> *results))handler;
+ (BOOL)lookupByID:(NSUInteger)ID handler:(void(^)(NSArray<AFMediaItem *> *results))handler;
+ (BOOL)search:(NSDictionary *)parameters handler:(void(^)(NSArray<AFMediaItem *> *results))handler;
+ (BOOL)searchForSong:(NSString *)term handler:(void(^)(NSArray<AFMediaItem *> *results))handler;
@end