Changeset 1165 for branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireMovieImporter.m
- Timestamp:
- 02/23/2010 04:51:22 PM (2 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireMovieImporter.m
r1146 r1165 32 32 #import "SapphireURLLoader.h" 33 33 #import "SapphireScraper.h" 34 #import "NSString-Extensions.h" 34 35 35 36 @interface SapphireMovieImportStateData : SapphireImportStateData … … 157 158 SapphireFileMetaData *metaData = state->file; 158 159 NSManagedObjectContext *moc = [metaData managedObjectContext]; 159 NSString *lookupName = [[state->lookupName lowercaseString] stringByDeletingPathExtension]; 160 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:lookupName inContext:moc]; 160 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc]; 161 161 [tran setIMDBLink:[[movies objectAtIndex:0] objectForKey:movieTranslationLinkKey]]; 162 162 [self getMovieResultsForState:state translation:tran]; … … 167 167 SapphireMovieChooser *chooser = [[SapphireMovieChooser alloc] initWithScene:[delegate chooserScene]]; 168 168 [chooser setMovies:movies]; 169 [chooser setFileName: state->lookupName];169 [chooser setFileName:[NSString stringByCroppingDirectoryPath:state->path toLength:3]]; 170 170 [chooser setListTitle:BRLocalizedString(@"Select Movie Title", @"Prompt the user for title of movie")]; 171 171 /*And display prompt*/ … … 265 265 [infoIMDB setObject:movieTitle forKey:META_MOVIE_TITLE_KEY]; 266 266 267 NSString *movieTranslationString = [[state->lookupName lowercaseString] stringByDeletingPathExtension];268 267 SapphireFileMetaData *metaData = state->file; 269 268 NSManagedObjectContext *moc = [metaData managedObjectContext]; 270 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName: movieTranslationStringinContext:moc];269 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 271 270 SapphireMovie *movie = [SapphireMovie movieWithDictionary:infoIMDB inContext:moc]; 272 271 if(movie == nil) … … 342 341 { 343 342 [posterChooser setPosters:previews]; 344 [posterChooser setFileName: state->lookupName];343 [posterChooser setFileName:[NSString stringByCroppingDirectoryPath:state->path toLength:3]]; 345 344 [posterChooser setFile:state->file]; 346 345 [posterChooser setListTitle:BRLocalizedString(@"Select Movie Poster", @"Prompt the user for poster selection")]; … … 430 429 return ImportStateNotUpdated; 431 430 SapphireLog(SAPPHIRE_LOG_IMPORT, SAPPHIRE_LOG_LEVEL_DEBUG, @"Going to movie import %@", path); 432 NSString *fileName = [path lastPathComponent]; 431 NSString *extLessPath = path; 432 if([metaData fileContainerTypeValue] != FILE_CONTAINER_TYPE_VIDEO_TS) 433 extLessPath = [extLessPath stringByDeletingPathExtension]; 434 433 435 /*choose between file or directory name for lookup */ 434 436 NSString *lookupName; 435 437 if([[SapphireSettings sharedSettings] dirLookup]) 436 lookupName = [[ path stringByDeletingLastPathComponent] lastPathComponent];437 else 438 lookupName = fileName;438 lookupName = [[[path stringByDeletingLastPathComponent] lastPathComponent] lowercaseString]; 439 else 440 lookupName = [[extLessPath lastPathComponent] lowercaseString]; 439 441 440 442 SapphireSiteMovieScraper *siteScraper = [[[SapphireSiteMovieScraper alloc] initWithMovieScraper:scraper delegate:self loader:[SapphireApplianceController urlLoader]] autorelease]; … … 444 446 NSString *movieDataLink = nil ; 445 447 /*Check to see if we know this movie*/ 446 NSString *movieTranslationString = [[lookupName lowercaseString] stringByDeletingPathExtension]; 447 SapphireLog(SAPPHIRE_LOG_IMPORT, SAPPHIRE_LOG_LEVEL_DETAIL, @"Searching for movie %@", movieTranslationString); 448 SapphireLog(SAPPHIRE_LOG_IMPORT, SAPPHIRE_LOG_LEVEL_DETAIL, @"Searching for movie %@", state->lookupName); 448 449 NSManagedObjectContext *moc = [metaData managedObjectContext]; 449 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName: movieTranslationStringinContext:moc];450 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 450 451 int searchIMDBNumber = [metaData searchIMDBNumber]; 451 452 if(searchIMDBNumber > 0) 452 453 { 453 454 if(!tran) 454 tran = [SapphireMovieTranslation createMovieTranslationWithName: movieTranslationStringinContext:moc];455 tran = [SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc]; 455 456 [tran setIMDBLink:[NSString stringWithFormat:@"/title/tt%08d", searchIMDBNumber]]; 456 457 } … … 458 459 { 459 460 BOOL nfoPathIsDir = NO; 460 NSString *nfoFilePath=[ [path stringByDeletingPathExtension]stringByAppendingPathExtension:@"nfo"];461 NSString *nfoFilePath=[extLessPath stringByAppendingPathExtension:@"nfo"]; 461 462 NSString *moviePath = nil; 462 463 if([[NSFileManager defaultManager] fileExistsAtPath:nfoFilePath isDirectory:&nfoPathIsDir] && !nfoPathIsDir) … … 472 473 473 474 /*Look for a year in the title*/ 474 NSString *searchStr = [lookupName stringByDeletingPathExtension]; 475 NSScanner *titleYearScanner = [NSScanner scannerWithString:searchStr]; 475 NSScanner *titleYearScanner = [NSScanner scannerWithString:state->lookupName]; 476 476 NSString *normalTitle = nil; 477 477 int year = 0; … … 486 486 if(!success) 487 487 { 488 normalTitle = s earchStr;488 normalTitle = state->lookupName; 489 489 } 490 490 else … … 537 537 SapphireMovieChooser *movieChooser = (SapphireMovieChooser *)chooser; 538 538 NSManagedObjectContext *moc = [state->file managedObjectContext]; 539 NSString *filename = [[[movieChooser fileName] lowercaseString] stringByDeletingPathExtension]; 540 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:filename inContext:moc]; 539 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 541 540 if([tran IMDBLink]) 542 541 { … … 548 547 { 549 548 SapphirePosterChooser *posterChooser = (SapphirePosterChooser *)chooser; 550 NSString *filename = [[[posterChooser fileName] lowercaseString] stringByDeletingPathExtension];551 549 NSManagedObjectContext *moc = [state->file managedObjectContext]; 552 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName: filename inContext:moc];550 SapphireMovieTranslation *tran = [SapphireMovieTranslation movieTranslationWithName:state->lookupName inContext:moc]; 553 551 if([[tran selectedPoster] link]) 554 552 { … … 585 583 /*They selected a movie title, save the translation and write it*/ 586 584 NSDictionary *movie = [[movieChooser movies] objectAtIndex:selection]; 587 NSString *filename = [[[movieChooser fileName] lowercaseString] stringByDeletingPathExtension]; 588 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:filename inContext:moc]; 585 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc]; 589 586 /* Add IMDB Key */ 590 587 [tran setIMDBLink:[movie objectForKey:movieTranslationLinkKey]]; … … 605 602 else 606 603 { 607 NSString *filename = [[[posterChooser fileName] lowercaseString] stringByDeletingPathExtension]; 608 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:filename inContext:moc]; 604 SapphireMovieTranslation *tran = [SapphireMovieTranslation createMovieTranslationWithName:state->lookupName inContext:moc]; 609 605 [tran setSelectedPosterIndexValue:selectedPoster]; 610 606 [self saveMoviePosterAtURL:[[tran posterAtIndex:selectedPoster] link] forTranslation:tran];
