- Timestamp:
- 02/23/10 16:51:22 (2 years ago)
- Location:
- branches/PlayerFramework/SapphireFrappliance
- Files:
-
- 7 modified
-
Browser/SapphireMarkMenu.m (modified) (3 diffs)
-
MetaData/SapphireMObjects/SapphireFileMetaData.h (modified) (1 diff)
-
MetaData/SapphireMObjects/SapphireFileMetaData.m (modified) (11 diffs)
-
MetaDataImporting/SapphireMovieImporter.m (modified) (14 diffs)
-
MetaDataImporting/SapphireNfoImporter.m (modified) (1 diff)
-
MetaDataImporting/SapphireTVShowImporter.m (modified) (3 diffs)
-
MetaDataImporting/SapphireXMLFileDataImporter.m (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/PlayerFramework/SapphireFrappliance/Browser/SapphireMarkMenu.m
r1092 r1165 289 289 290 290 NSString *prettyName = [fileMeta prettyName]; 291 if(prettyName != nil && [[ [[fileMeta path] lastPathComponent] stringByDeletingPathExtension] caseInsensitiveCompare:prettyName] != NSOrderedSame)291 if(prettyName != nil && [[fileMeta fileName] caseInsensitiveCompare:prettyName] != NSOrderedSame) 292 292 { 293 293 [marks insertObject: … … 469 469 NSString *savePath = [[joinList objectAtIndex:0] path]; 470 470 BOOL hasmovExt = [[savePath pathExtension] isEqualToString:@"mov"]; 471 NSString *base = [ savePath stringByDeletingPathExtension];471 NSString *base = [[joinList objectAtIndex:0] extensionlessPath]; 472 472 if([[base lowercaseString] hasSuffix:@" part 1"]) 473 473 base = [base substringToIndex:[base length] - 7]; … … 750 750 { 751 751 NSString *title = [NSString stringWithFormat:BRLocalizedString(@"Rename %@", @"Rename a file, directory, or collection, argument is path"), [fileMeta path]]; 752 NSString *oldName = [ [[fileMeta path] lastPathComponent] stringByDeletingPathExtension];752 NSString *oldName = [fileMeta fileName]; 753 753 754 754 NSInvocation *invoke = [NSInvocation invocationWithMethodSignature:[fileMeta methodSignatureForSelector:@selector(rename:)]]; -
branches/PlayerFramework/SapphireFrappliance/MetaData/SapphireMObjects/SapphireFileMetaData.h
r949 r1165 191 191 192 192 /*! 193 * @brief Return the filename, minus the path extension 194 */ 195 - (NSString *)fileName; 196 197 /*! 198 * @brief Return the path, minus the path extension 199 */ 200 - (NSString *)extensionlessPath; 201 202 /*! 193 203 * @brief Get the overridden show name 194 204 * -
branches/PlayerFramework/SapphireFrappliance/MetaData/SapphireMObjects/SapphireFileMetaData.m
r977 r1165 231 231 self.fileClassValue = FILE_CLASS_TV_SHOW; 232 232 NSString *epCoverPath = [[SapphireMetaDataSupport collectionArtPath] stringByAppendingPathComponent:[ep path]]; 233 NSString *oldBasePath = [[epCoverPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[self .path lastPathComponent]];234 NSString *oldCoverPath = searchCoverArtExtForPath( [oldBasePath stringByDeletingPathExtension]);233 NSString *oldBasePath = [[epCoverPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:[self fileName]]; 234 NSString *oldCoverPath = searchCoverArtExtForPath(oldBasePath); 235 235 if(oldCoverPath != nil) 236 236 { … … 251 251 self.fileClassValue = FILE_CLASS_MOVIE; 252 252 NSString *movieCoverPath = [movie coverArtPath]; 253 NSString *oldBasePath = [[[SapphireMetaDataSupport collectionArtPath] stringByAppendingPathComponent:@"@MOVIES"] stringByAppendingPathComponent:[self .path lastPathComponent]];254 NSString *oldCoverPath = searchCoverArtExtForPath( [oldBasePath stringByDeletingPathExtension]);253 NSString *oldBasePath = [[[SapphireMetaDataSupport collectionArtPath] stringByAppendingPathComponent:@"@MOVIES"] stringByAppendingPathComponent:[self fileName]]; 254 NSString *oldCoverPath = searchCoverArtExtForPath(oldBasePath); 255 255 if(oldCoverPath != nil) 256 256 { … … 352 352 353 353 //Check XML 354 NSString *xmlFilePath=[[self .path stringByDeletingPathExtension] stringByAppendingPathExtension:@"xml"];354 NSString *xmlFilePath=[[self extensionlessPath] stringByAppendingPathExtension:@"xml"]; 355 355 SapphireXMLData *xml = self.xmlData; 356 356 NSDictionary *xmlProps = [fm fileAttributesAtPath:xmlFilePath traverseLink:YES]; … … 591 591 { 592 592 NSManagedObjectContext *moc = [self managedObjectContext]; 593 NSString *lowerFileName = [[self .path lastPathComponent] lowercaseString];593 NSString *lowerFileName = [[self fileName] lowercaseString]; 594 594 595 595 SapphireEpisode *ep = self.tvEpisode; … … 613 613 else 614 614 lookupName = lowerFileName; 615 SapphireMovieTranslation *movieTran = [SapphireMovieTranslation movieTranslationWithName: [lookupName stringByDeletingPathExtension]inContext:moc];615 SapphireMovieTranslation *movieTran = [SapphireMovieTranslation movieTranslationWithName:lookupName inContext:moc]; 616 616 if(movieTran != nil) 617 617 { … … 651 651 { 652 652 /*Find cover art for the current file in the "Cover Art" dir */ 653 NSString *subPath = [self path]; 654 if([self fileContainerTypeValue] != FILE_CONTAINER_TYPE_VIDEO_TS) 655 subPath = [subPath stringByDeletingPathExtension]; 653 NSString *subPath = [self extensionlessPath]; 656 654 657 655 NSString *fileName = [subPath lastPathComponent]; … … 737 735 [SapphireMetaDataSupport save:[self managedObjectContext]]; 738 736 NSLog(@"Save done"); 739 NSString *extLessPath = [ oldPath stringByDeletingPathExtension];737 NSString *extLessPath = [self extensionlessPath]; 740 738 NSEnumerator *secondaryExtEnum = [secondaryFiles objectEnumerator]; 741 739 NSString *extension; 740 NSString *newExtlessPath = newPath; 741 if(self.fileContainerTypeValue != FILE_CONTAINER_TYPE_VIDEO_TS) 742 newExtlessPath = [newExtlessPath stringByDeletingPathExtension]; 742 743 743 744 while((extension = [secondaryExtEnum nextObject]) != nil) … … 746 747 if([fm fileExistsAtPath:secondaryPath]) 747 748 { 748 NSString *newSecondaryPath = [ [newPath stringByDeletingPathExtension]stringByAppendingPathExtension:extension];749 NSString *newSecondaryPath = [newExtlessPath stringByAppendingPathExtension:extension]; 749 750 if(newParent != nil) 750 751 { … … 767 768 if(coverArtPath != nil) 768 769 { 769 NSString *newCoverArtPath = [ [newPath stringByDeletingPathExtension]stringByAppendingPathExtension:[coverArtPath pathExtension]];770 NSString *newCoverArtPath = [newExtlessPath stringByAppendingPathExtension:[coverArtPath pathExtension]]; 770 771 if(newParent != nil) 771 772 { … … 800 801 return BRLocalizedString(@"A File name should not contain any '/' characters", @"Error indicating that filenames cannot contain / characters"); 801 802 NSString *oldPath = [self path]; 802 newFilename = [newFilename stringByAppendingPathExtension:[oldPath pathExtension]]; 803 if(self.fileContainerTypeValue != FILE_CONTAINER_TYPE_VIDEO_TS) 804 newFilename = [newFilename stringByAppendingPathExtension:[oldPath pathExtension]]; 803 805 NSString *newPath = [[oldPath stringByDeletingLastPathComponent] stringByAppendingPathComponent:newFilename]; 804 806 if([oldPath isEqualToString:newPath]) … … 858 860 } 859 861 862 - (NSString *)fileName 863 { 864 NSString *ret = [self.path lastPathComponent]; 865 if(self.fileContainerTypeValue != FILE_CONTAINER_TYPE_VIDEO_TS) 866 ret = [ret stringByDeletingPathExtension]; 867 868 return ret; 869 } 870 871 - (NSString *)extensionlessPath 872 { 873 NSString *ret = self.path; 874 if(self.fileContainerTypeValue != FILE_CONTAINER_TYPE_VIDEO_TS) 875 ret = [ret stringByDeletingPathExtension]; 876 877 return ret; 878 } 879 860 880 - (NSMutableDictionary *)getDisplayedMetaDataInOrder:(NSArray * *)order; 861 881 { -
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]; -
branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireNfoImporter.m
r1044 r1165 48 48 /*Check for NFO file*/ 49 49 BOOL nfoPathIsDir = NO; 50 NSString *nfoFilePath=[[path stringByDeletingPathExtension] stringByAppendingPathExtension:@"nfo"]; 50 NSString *extLessPath = path; 51 if([metaData fileContainerTypeValue] != FILE_CONTAINER_TYPE_VIDEO_TS) 52 extLessPath = [extLessPath stringByDeletingPathExtension]; 53 54 NSString *nfoFilePath=[extLessPath stringByAppendingPathExtension:@"nfo"]; 51 55 if(![fm fileExistsAtPath:nfoFilePath isDirectory:&nfoPathIsDir] || nfoPathIsDir) 52 56 return ImportStateNotUpdated; -
branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireTVShowImporter.m
r1138 r1165 286 286 SapphireShowChooser *chooser = [[SapphireShowChooser alloc] initWithScene:[delegate chooserScene]]; 287 287 [chooser setShows:shows]; 288 [chooser setFileName:[NSString stringByCroppingDirectoryPath:state->path toLength:3]]; 288 [chooser setFileName:[NSString stringByCroppingDirectoryPath:state->path toLength:3]]; 289 289 [chooser setListTitle:BRLocalizedString(@"Select Show Title", @"Prompt the user for showname with a file")]; 290 290 /*And display prompt*/ … … 593 593 return ImportStateNotUpdated; 594 594 // NSArray *pathComponents = [path pathComponents]; 595 NSString *extLessPath = path; 596 if([metaData fileContainerTypeValue] != FILE_CONTAINER_TYPE_VIDEO_TS) 597 extLessPath = [extLessPath stringByDeletingPathExtension]; 598 595 599 NSString *fileName = [path lastPathComponent]; 596 600 … … 704 708 { 705 709 BOOL nfoPathIsDir = NO; 706 NSString *nfoFilePath=[ [path stringByDeletingPathExtension]stringByAppendingPathExtension:@"nfo"];710 NSString *nfoFilePath=[extLessPath stringByAppendingPathExtension:@"nfo"]; 707 711 NSString *showPath = nil; 708 712 if([[NSFileManager defaultManager] fileExistsAtPath:nfoFilePath isDirectory:&nfoPathIsDir] && !nfoPathIsDir) -
branches/PlayerFramework/SapphireFrappliance/MetaDataImporting/SapphireXMLFileDataImporter.m
r1019 r1165 99 99 /*Check for XML file*/ 100 100 BOOL xmlPathIsDir = NO; 101 NSString *xmlFilePath=[[path stringByDeletingPathExtension] stringByAppendingPathExtension:@"xml"]; 101 NSString *extLessPath = path; 102 if([metaData fileContainerTypeValue] != FILE_CONTAINER_TYPE_VIDEO_TS) 103 extLessPath = [extLessPath stringByDeletingPathExtension]; 104 105 NSString *xmlFilePath=[extLessPath stringByAppendingPathExtension:@"xml"]; 102 106 SapphireXMLData *xml = [metaData xmlData]; 103 107 if(![fm fileExistsAtPath:xmlFilePath isDirectory:&xmlPathIsDir] || xmlPathIsDir)
