#import "TFHelper.h" @implementation TFHelper + (void)getUndeleteDataWithID:(NSString *)ident isComment:(BOOL)isComment timeout:(CGFloat)timeout extraData:(NSDictionary *)extra completionTarget:(id)target completionSelector:(SEL)sel { NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; //NSOperationQueue *queue = [[NSOperationQueue alloc] init]; if (isComment){ [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.pushshift.io/reddit/search/comment/?ids=%@&fields=author,body", ident]]]; } else { [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://api.pushshift.io/reddit/search/submission/?ids=%@&fields=author,selftext", ident]]]; } [request setHTTPMethod:@"GET"]; [request setTimeoutInterval:timeout]; NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { //[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { NSString *author = @"[author]"; NSString *body = @"[body]"; NSError *jsonError; if (data) { id jsonData = [[NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonError] objectForKey:@"data"]; if (jsonData && [jsonData count] != 0) { author = [jsonData[0] objectForKey:@"author"]; body = isComment ? [jsonData[0] objectForKey:@"body"] : [jsonData[0] objectForKey:@"selftext"]; if ([body isEqualToString:@"[deleted]"] || [body isEqualToString:@"[removed]"]){ body = [NSString stringWithFormat:@"[pushshift was unable to archive this %@]", isComment ? @"comment" : @"post"]; } } else { body = [NSString stringWithFormat:@"[no data for this %@ was returned by pushshift]", isComment ? @"comment" : @"post"]; } } if (error || jsonError) { body = [NSString stringWithFormat:@"[an error occurred while attempting retrieve data from the pushshift api]\n\nHTTP Status Code: %li", (long)((NSHTTPURLResponse *)response).statusCode]; } if (error) { body = [body stringByAppendingFormat:@"\n\nRequest Error: %@", [error localizedDescription]]; } if (jsonError) { body = [body stringByAppendingFormat:@"\n\nJSON Error: %@", [jsonError localizedDescription]]; } NSMutableDictionary *result = [NSMutableDictionary dictionaryWithDictionary:@{@"author" : author, @"body" : body}]; if (extra){ [result addEntriesFromDictionary:extra]; } [target performSelectorOnMainThread:sel withObject:result waitUntilDone:NO]; }]; [dataTask resume]; } + (BOOL)shouldShowUndeleteButtonWithInfo:(NSString *) content isDeletedOnly:(BOOL) isDeletedOnly{ if (!isDeletedOnly){ return YES; } else { if ([content isEqualToString:@"[deleted]"] || [content isEqualToString:@"[removed]"]){ return YES; } else if ([content hasPrefix:@"[pushshift"] || [content hasPrefix:@"[an error occured"]){ return YES; } } return NO; } @end