-
Notifications
You must be signed in to change notification settings - Fork 22
/
NetflixShopperId.m
89 lines (74 loc) · 2.5 KB
/
NetflixShopperId.m
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
//
// Defaults.m
// Actors
//
// Created by Adrian Cockcroft on 4/26/10.
// Copyright 2010 __MyCompanyName__. All rights reserved.
//
#import "NetflixShopperId.h"
#import "ASIHTTPRequest.h"
#import "ASINetworkQueue.h"
#define SHOPKEY @"NFLX_SHOPPERID"
#define NETFLIXKEY @"NFLX_NETFLIXID"
@implementation NetflixShopperId
@synthesize networkQueue;
// shopperId is an authentication token found in the Netflix website cookie.
// if a user logs out and back in, their shopperId will change, so check it each time
// NetflixId is a more recent authentication cookie
- (void) obtainShopperIdWithAsyncRequest {
//NSLog(@"Loading netflixid and shopperid from https://www.netflix.com/YourAccount");
NSURL *webUrl = [NSURL URLWithString:@"https://www.netflix.com/YourAccount"];
[networkQueue cancelAllOperations];
networkQueue = [ASINetworkQueue queue];
[networkQueue retain];
networkQueue.delegate = self;
networkQueue.requestDidFinishSelector = @selector(idDidLoad:);
networkQueue.requestDidFailSelector = @selector(requestFailed:);
networkQueue.queueDidFinishSelector = @selector(queueFinished:);
[networkQueue addOperation:[ASIHTTPRequest requestWithURL:webUrl]];
//NSLog(@"NetflixShopperId async request started");
[networkQueue go];
}
- (void)idDidLoad:(ASIHTTPRequest *)request {
//NSLog(@"NetflixShopperId async request succeeded");
NSArray *cookies = [request responseCookies];
for(NSHTTPCookie *oneCookie in cookies) {
NSLog(@"Cookie %@ = %@", [oneCookie name], [oneCookie value]);
if ([@"NetflixShopperId" isEqualToString:[oneCookie name]]) {
[self setShopperId:[oneCookie value]];
} else if ([@"NetflixId" isEqualToString:[oneCookie name]]) {
[self setNetflixId:[oneCookie value]];
}
}
}
- (void)requestFailed:(ASIHTTPRequest *)inRequest;
{
NSLog(@"NetflixShopperId async request failed for: %@", [[inRequest url] absoluteURL]);
}
- (void)queueFinished:(ASIHTTPRequest *)inRequest;
{
//NSLog(@"MovieInfoView async request queue finished");
}
- (NSString *)getShopperId
{
return [[NSUserDefaults standardUserDefaults] stringForKey:SHOPKEY];
}
- (void)setShopperId:(NSString *)sid
{
[[NSUserDefaults standardUserDefaults] setObject:sid forKey:SHOPKEY];
}
- (NSString *)getNetflixId
{
return [[NSUserDefaults standardUserDefaults] stringForKey:NETFLIXKEY];
}
- (void)setNetflixId:(NSString *)nid
{
[[NSUserDefaults standardUserDefaults] setObject:nid forKey:NETFLIXKEY];
}
- (void)dealloc {
[networkQueue cancelAllOperations];
[networkQueue release];
networkQueue = nil;
[super dealloc];
}
@end