Changeset 1167
- Timestamp:
- 02/24/2010 02:32:27 PM (2 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireMovieImporter.m
r1165 r1167 38 38 @public 39 39 SapphireSiteMovieScraper *siteScraper; 40 SapphireMovieTranslation *translation; 40 41 } 41 42 - (id)initWithFile:(SapphireFileMetaData *)aFile atPath:(NSString *)aPath scraper:(SapphireSiteMovieScraper *)siteScaper; 43 - (void)setTranslation:(SapphireMovieTranslation *)aTranslation; 44 - (SapphireMovieTranslation *)createTranslationInContext:(NSManagedObjectContext *)moc; 42 45 @end 43 46 … … 58 61 { 59 62 [siteScraper release]; 63 [translation release]; 60 64 [super dealloc]; 61 65 } 62 66 67 - (void)setTranslation:(SapphireMovieTranslation *)aTranslation 68 { 69 [translation autorelease]; 70 translation = [aTranslation retain]; 71 } 72 73 - (SapphireMovieTranslation *)createTranslationInContext:(NSManagedObjectContext *)moc 74 { 75 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:lookupName inContext:moc]; 76 [self setTranslation:tran]; 77 return tran; 78 } 79 63 80 @end 64 81 … … 66 83 67 84 @interface SapphireMovieImporter () 68 - (void)getMovieResultsForState:(SapphireMovieImportStateData *)state translation:(SapphireMovieTranslation *)tran;69 - (void)getMoviePostersForState:(SapphireMovieImportStateData *)state t ranslation:(SapphireMovieTranslation *)tran thumbElements:(NSArray *)thumbElements;85 - (void)getMovieResultsForState:(SapphireMovieImportStateData *)state; 86 - (void)getMoviePostersForState:(SapphireMovieImportStateData *)state thumbElements:(NSArray *)thumbElements; 70 87 - (void)saveMoviePosterAtURL:(NSString *)url forTranslation:(SapphireMovieTranslation *)tran; 71 88 - (void)completeWithState:(SapphireMovieImportStateData *)state withStatus:(ImportState)status importComplete:(BOOL)importComplete; … … 158 175 SapphireFileMetaData *metaData = state->file; 159 176 NSManagedObjectContext *moc = [metaData managedObjectContext]; 160 SapphireMovieTranslation *tran = [ SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc];177 SapphireMovieTranslation *tran = [state createTranslationInContext:moc]; 161 178 [tran setIMDBLink:[[movies objectAtIndex:0] objectForKey:movieTranslationLinkKey]]; 162 [self getMovieResultsForState:state translation:tran];179 [self getMovieResultsForState:state]; 163 180 } 164 181 else … … 176 193 } 177 194 178 - (void)getMovieResultsForState:(SapphireMovieImportStateData *)state translation:(SapphireMovieTranslation *)tran 179 { 195 - (void)getMovieResultsForState:(SapphireMovieImportStateData *)state 196 { 197 SapphireMovieTranslation *tran = state->translation; 180 198 NSString *link = [tran IMDBLink]; 181 199 SapphireSiteMovieScraper *siteScraper = state->siteScraper; … … 267 285 SapphireFileMetaData *metaData = state->file; 268 286 NSManagedObjectContext *moc = [metaData managedObjectContext]; 269 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc];270 287 SapphireMovie *movie = [SapphireMovie movieWithDictionary:infoIMDB inContext:moc]; 271 288 if(movie == nil) … … 275 292 return; 276 293 } 277 [ tran setMovie:movie];294 [state->translation setMovie:movie]; 278 295 [metaData setMovie:movie]; 279 296 … … 285 302 BOOL canDisplay = [delegate canDisplayChooser]; 286 303 if(canDisplay && [thumbs count]) 287 [self getMoviePostersForState:state t ranslation:tran thumbElements:thumbs];304 [self getMoviePostersForState:state thumbElements:thumbs]; 288 305 else 289 306 [self completeWithState:state withStatus:ImportStateUpdated importComplete:canDisplay]; 290 307 } 291 308 292 - (void)getMoviePostersForState:(SapphireMovieImportStateData *)state t ranslation:(SapphireMovieTranslation *)tran thumbElements:(NSArray *)thumbElements;309 - (void)getMoviePostersForState:(SapphireMovieImportStateData *)state thumbElements:(NSArray *)thumbElements; 293 310 { 294 311 NSMutableArray *previews = [NSMutableArray arrayWithCapacity:[thumbElements count]]; 312 SapphireMovieTranslation *tran = state->translation; 295 313 if([thumbElements count]) 296 314 { … … 329 347 } 330 348 } 331 if([previews count]) 349 if([tran selectedPoster]) 350 { 351 [self saveMoviePosterAtURL:[[tran selectedPoster] link] forTranslation:tran]; 352 [self completeWithState:state withStatus:ImportStateUpdated importComplete:YES]; 353 } 354 else if([previews count]) 332 355 { 333 356 SapphirePosterChooser *posterChooser = [[SapphirePosterChooser alloc] initWithScene:[delegate chooserScene]]; … … 449 472 NSManagedObjectContext *moc = [metaData managedObjectContext]; 450 473 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 474 [state setTranslation:tran]; 451 475 int searchIMDBNumber = [metaData searchIMDBNumber]; 452 476 if(searchIMDBNumber > 0) 453 477 { 454 478 if(!tran) 455 tran = [ SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc];479 tran = [state createTranslationInContext:moc]; 456 480 [tran setIMDBLink:[NSString stringWithFormat:@"/title/tt%08d", searchIMDBNumber]]; 457 481 } … … 465 489 466 490 if([moviePath length]) 491 { 492 if(tran == nil) 493 tran = [state createTranslationInContext:moc]; 467 494 [tran setIMDBLink:moviePath]; 495 } 468 496 else 469 497 { … … 504 532 { 505 533 [metaData setMovie:movie]; 506 return ImportStateUpdated; 507 } 508 [self getMovieResultsForState:state translation:tran]; 534 if([tran selectedPoster] != nil) 535 return ImportStateUpdated; 536 [self getMoviePostersForState:state thumbElements:[NSArray array]]; 537 return ImportStateBackground; 538 } 539 [self getMovieResultsForState:state]; 509 540 return ImportStateBackground; 510 541 } … … 538 569 NSManagedObjectContext *moc = [state->file managedObjectContext]; 539 570 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 571 if(tran) 572 [state setTranslation:tran]; 540 573 if([tran IMDBLink]) 541 574 { 542 [self getMovieResultsForState:state translation:tran];575 [self getMovieResultsForState:state]; 543 576 return NO; 544 577 } … … 548 581 SapphirePosterChooser *posterChooser = (SapphirePosterChooser *)chooser; 549 582 NSManagedObjectContext *moc = [state->file managedObjectContext]; 550 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc];583 SapphireMovieTranslation *tran = state->translation; 551 584 if([[tran selectedPoster] link]) 552 585 { … … 583 616 /*They selected a movie title, save the translation and write it*/ 584 617 NSDictionary *movie = [[movieChooser movies] objectAtIndex:selection]; 585 SapphireMovieTranslation *tran = [ SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc];618 SapphireMovieTranslation *tran = [state createTranslationInContext:moc]; 586 619 /* Add IMDB Key */ 587 620 [tran setIMDBLink:[movie objectForKey:movieTranslationLinkKey]]; 588 621 /*We can resume now*/ 589 [self getMovieResultsForState:state translation:tran];622 [self getMovieResultsForState:state]; 590 623 } 591 624 [SapphireMetaDataSupport save:moc]; … … 602 635 else 603 636 { 604 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc];637 SapphireMovieTranslation *tran = state->translation; 605 638 [tran setSelectedPosterIndexValue:selectedPoster]; 606 [self saveMoviePosterAtURL:[[tran posterAtIndex:selectedPoster] link] forTranslation:tran];639 [self saveMoviePosterAtURL:[[tran selectedPoster] link] forTranslation:tran]; 607 640 [self completeWithState:state withStatus:ImportStateUpdated importComplete:YES]; 608 641 } 609 posterChooser = nil;610 642 [SapphireMetaDataSupport save:moc]; 611 643 }
