Skip to content

Instantly share code, notes, and snippets.

@waltflanagan
Created February 20, 2015 16:32
Show Gist options
  • Save waltflanagan/d8e0de7b9586665fec78 to your computer and use it in GitHub Desktop.
Save waltflanagan/d8e0de7b9586665fec78 to your computer and use it in GitHub Desktop.
+(void)retrieveSentimentForVideo:(VideoEntity*)video withResultBlock:(void(^)(NSArray* sentiment))resultBlock
{
NSMutableArray* sentimentsRetrieved = [[NSMutableArray alloc] init];
__block __weak void (^weakSentimentsRetrievedBlock)(NSArray*);
void (^sentimentsRetrievedBlock)(NSArray*);
weakSentimentsRetrievedBlock = sentimentsRetrievedBlock = ^void(NSArray* sentiments) {
[sentimentsRetrieved addObjectsFromArray:sentiments];
if ([sentiments count] == 1000) {
[self querySentimentForVideo:video skippingToResultNumber:[sentimentsRetrieved count] withResultBlock:weakSentimentsRetrievedBlock];
} else {
resultBlock(sentimentsRetrieved);
}
};
[self querySentimentForVideo:video skippingToResultNumber:0 withResultBlock:sentimentsRetrievedBlock];
}
+(void)querySentimentForVideo:(VideoEntity*)video skippingToResultNumber:(NSUInteger)skipTo withResultBlock:(void(^)(NSArray* sentiments))resultBlock
{
PFQuery* query = [PFQuery queryWithClassName:kSentimentObject];
[query orderByAscending:kDatabaseCreatedAt];
[query whereKey:kDatabaseCreatedAt greaterThan:video.start];
[query whereKey:kDatabaseCreatedAt lessThanOrEqualTo:video.end];
query.limit = 1000;
query.skip = skipTo;
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
return;
}
NSMutableArray* sentimentEntities = [[NSMutableArray alloc] init];
for (PFObject* sentimentObject in objects) {
NSString* userId = [sentimentObject objectForKey:kSentimentUserId];
NSString* sentimentString = [sentimentObject objectForKey:kSentimentString];
SentimentEntity* s = [SentimentEntity entityWithId:[sentimentObject objectId] userId:userId createdAt:[sentimentObject createdAt] sentimentString:sentimentString];
[sentimentEntities addObject:s];
}
resultBlock(sentimentEntities);
}];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment