From a0f9785f05f7736b6194eb2832610e40079f0ff5 Mon Sep 17 00:00:00 2001 From: MP0w Date: Mon, 18 Nov 2013 17:53:55 +0100 Subject: [PATCH 1/2] return STHTTPRequest return STHTTPRequest --- STTwitter/STTwitterAPI.h | 2 +- STTwitter/STTwitterAPI.m | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/STTwitter/STTwitterAPI.h b/STTwitter/STTwitterAPI.h index adb2f41..b0af05f 100644 --- a/STTwitter/STTwitterAPI.h +++ b/STTwitter/STTwitterAPI.h @@ -364,7 +364,7 @@ NS_ENUM(NSUInteger, STTwitterAPIErrorCode) { The Tweet text will be rewritten to include the media URL(s), which will reduce the number of characters allowed in the Tweet text. If the URL(s) cannot be appended without text truncation, the tweet will be rejected and this method will return an HTTP 403 error. */ -- (void)postStatusUpdate:(NSString *)status +- (id)postStatusUpdate:(NSString *)status mediaDataArray:(NSArray *)mediaDataArray // only one media is currently supported, help/configuration.json returns "max_media_per_upload" = 1 possiblySensitive:(NSNumber *)possiblySensitive inReplyToStatusID:(NSString *)inReplyToStatusID diff --git a/STTwitter/STTwitterAPI.m b/STTwitter/STTwitterAPI.m index 856fe16..19d2142 100644 --- a/STTwitter/STTwitterAPI.m +++ b/STTwitter/STTwitterAPI.m @@ -377,12 +377,12 @@ - (void)postAPIResource:(NSString *)resource errorBlock:errorBlock]; } -- (void)postAPIResource:(NSString *)resource +- (id)postAPIResource:(NSString *)resource parameters:(NSDictionary *)parameters successBlock:(void(^)(NSDictionary *rateLimits, id json))successBlock errorBlock:(void(^)(NSError *error))errorBlock { - [self postResource:resource + return [self postResource:resource baseURLString:kBaseURLStringAPI parameters:parameters progressBlock:nil @@ -827,7 +827,7 @@ - (void)postStatusUpdate:(NSString *)status }]; } -- (void)postStatusUpdate:(NSString *)status +- (id)postStatusUpdate:(NSString *)status mediaDataArray:(NSArray *)mediaDataArray // only one media is currently supported, help/configuration.json returns "max_media_per_upload" = 1 possiblySensitive:(NSNumber *)possiblySensitive inReplyToStatusID:(NSString *)inReplyToStatusID @@ -852,7 +852,7 @@ - (void)postStatusUpdate:(NSString *)status md[@"media[]"] = [mediaDataArray objectAtIndex:0]; md[kSTPOSTDataKey] = @"media[]"; - [self postAPIResource:@"statuses/update_with_media.json" parameters:md successBlock:^(NSDictionary *rateLimits, id response) { + return [self postAPIResource:@"statuses/update_with_media.json" parameters:md successBlock:^(NSDictionary *rateLimits, id response) { successBlock(response); } errorBlock:^(NSError *error) { errorBlock(error); From 194e0722f555f96bc754380c0758465b3c755642 Mon Sep 17 00:00:00 2001 From: MP0w Date: Mon, 18 Nov 2013 17:57:59 +0100 Subject: [PATCH 2/2] Usefull (?) methods for NSString+STTwitter Category Usefull (?) methods for NSString+STTwitter Category --- STTwitter/NSString+STTwitter.h | 3 ++ STTwitter/NSString+STTwitter.m | 66 ++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) mode change 100644 => 100755 STTwitter/NSString+STTwitter.h mode change 100644 => 100755 STTwitter/NSString+STTwitter.m diff --git a/STTwitter/NSString+STTwitter.h b/STTwitter/NSString+STTwitter.h old mode 100644 new mode 100755 index e1346f9..e3f708c --- a/STTwitter/NSString+STTwitter.h +++ b/STTwitter/NSString+STTwitter.h @@ -21,5 +21,8 @@ extern NSUInteger kSTTwitterDefaultShortURLLengthHTTPS; // use default values for URL shortening - (NSInteger)numberOfCharactersInATweet; +- (NSString *)stringByConvertingHTMLToPlainText; +-(NSString *)stringByRemovingURLs; +-(NSString *)stringByRemovingMentions; @end diff --git a/STTwitter/NSString+STTwitter.m b/STTwitter/NSString+STTwitter.m old mode 100644 new mode 100755 index 1e4e928..7f46cfe --- a/STTwitter/NSString+STTwitter.m +++ b/STTwitter/NSString+STTwitter.m @@ -69,4 +69,70 @@ - (NSInteger)numberOfCharactersInATweet { shortURLLengthHTTPS:kSTTwitterDefaultShortURLLengthHTTPS]; } + +- (NSString *)stringByConvertingHTMLToPlainText { + return [[[self stringByReplacingOccurrencesOfString: @"&" withString: @"&"] + stringByReplacingOccurrencesOfString: @">" withString: @">"] + stringByReplacingOccurrencesOfString: @"<" withString: @"<"]; + +} + +-(NSString *)stringByRemovingURLs{ + NSString *s = [self precomposedStringWithCanonicalMapping]; + + + NSError *error = nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(https?://\\S+)" + options:0 + error:&error]; + + NSArray *matches = [regex matchesInString:s + options:0 + range:NSMakeRange(0, [s length])]; + + NSMutableArray* arr=[[NSMutableArray alloc] init]; + + for (NSTextCheckingResult *match in matches) { + + NSString* matchStr=[s substringWithRange:match.range]; + [arr addObject:matchStr]; + } + + for (NSString * match in arr) { + s=[s stringByReplacingOccurrencesOfString:match withString:@""]; + } + + return s; +} + + +-(NSString *)stringByRemovingMentions{ + NSString *s = [self precomposedStringWithCanonicalMapping]; + + + NSError *error = nil; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b[@\\w]+\\b" + options:0 + error:&error]; + + NSArray *matches = [regex matchesInString:s + options:0 + range:NSMakeRange(0, [s length])]; + + NSMutableArray* arr=[[NSMutableArray alloc] init]; + + for (NSTextCheckingResult *match in matches) { + + NSString* matchStr=[s substringWithRange:match.range]; + [arr addObject:matchStr]; + } + + for (NSString * match in arr) { + s=[s stringByReplacingOccurrencesOfString:match withString:@""]; + } + + return s; +} + + @end