| 414 | | NSPredicate *fetchPredicate = [NSPredicate predicateWithFormat:@"tvEpisode != nil"]; |
| 415 | | NSPredicate *finalPred; |
| 416 | | if(filterPredicate == nil) |
| 417 | | finalPred = fetchPredicate; |
| 418 | | else |
| 419 | | finalPred = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:filterPredicate, fetchPredicate, nil]]; |
| 420 | | NSArray *files = doFetchRequest(SapphireFileMetaDataName, moc, finalPred); |
| 421 | | |
| 422 | | NSSet *epIds = [NSSet setWithArray:[files valueForKeyPath:@"tvEpisode.objectID"]]; |
| 423 | | NSPredicate *epPred = [NSPredicate predicateWithFormat:@"SELF IN %@", epIds]; |
| 424 | | NSArray *episodes = doFetchRequest(SapphireEpisodeName, moc, epPred); |
| 425 | | |
| 426 | | NSSet *showIds = [NSSet setWithArray:[episodes valueForKeyPath:@"tvShow.objectID"]]; |
| 427 | | NSPredicate *showPred = [NSPredicate predicateWithFormat:@"SELF IN %@", showIds]; |
| 428 | | |
| | 414 | NSPredicate *showPred = nil; |
| | 415 | if(filterPredicate != nil) |
| | 416 | { |
| | 417 | NSPredicate *fetchPredicate = [NSPredicate predicateWithFormat:@"tvEpisode != nil"]; |
| | 418 | NSPredicate *finalPred; |
| | 419 | if(filterPredicate == nil) |
| | 420 | finalPred = fetchPredicate; |
| | 421 | else |
| | 422 | finalPred = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:filterPredicate, fetchPredicate, nil]]; |
| | 423 | NSArray *files = doFetchRequest(SapphireFileMetaDataName, moc, finalPred); |
| | 424 | |
| | 425 | NSSet *epIds = [NSSet setWithArray:[files valueForKeyPath:@"tvEpisode.objectID"]]; |
| | 426 | NSPredicate *epPred = [NSPredicate predicateWithFormat:@"SELF IN %@", epIds]; |
| | 427 | NSArray *episodes = doFetchRequest(SapphireEpisodeName, moc, epPred); |
| | 428 | |
| | 429 | NSSet *showIds = [NSSet setWithArray:[episodes valueForKeyPath:@"tvShow.objectID"]]; |
| | 430 | showPred = [NSPredicate predicateWithFormat:@"SELF IN %@", showIds]; |
| | 431 | } |