forked from slubman/canary
/
ORSUrlborgShortener.m
44 lines (37 loc) · 1.5 KB
/
ORSUrlborgShortener.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
//
// ORSUrlborgShortener.m
// URL Shorteners
//
// Created by Nicholas Toumpelis on 12/04/2009.
// Copyright 2009 Ocean Road Software. All rights reserved.
//
// Version 0.7
#import "ORSUrlborgShortener.h"
@implementation ORSUrlborgShortener
// This method returns the generated (shortened) URL that corresponds to the
// given (original) URL.
- (NSString *) generateURLFrom:(NSString *)originalURL {
return [self generateAuthenticatedURLFrom:originalURL];
}
// This method returns the generated (shortened) URL that corresponds to the
// given (original) URL using the specified set of authentication credentials.
- (NSString *) generateAuthenticatedURLFrom:(NSString *)originalURL {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *apiKey = [defaults stringForKey:@"UrlborgAPIKey"];
NSMutableString *requestURL = [NSMutableString
stringWithString:@"http://urlborg.com/api/"];
if (apiKey) {
[requestURL appendFormat:@"%@/url/create_or_reuse.xml/", apiKey];
}
[requestURL appendFormat:@"%@", originalURL];
NSError *error, *documentError = NULL;
NSXMLDocument *xmlDocument = [[NSXMLDocument alloc] initWithXMLString:[super
generateURLFromRequestURL:requestURL] options:NSXMLDocumentTidyXML
error:&documentError];
NSXMLNode *mainNode = (NSXMLNode *)[xmlDocument rootElement];
NSArray *nodes = [mainNode nodesForXPath:@".//s_url" error:&error];
NSXMLNode *firstNode = (NSXMLNode *)[nodes objectAtIndex:0];
NSString *shortURL = [firstNode stringValue];
return shortURL;
}
@end