| | 137 | } |
| | 138 | |
| | 139 | + (NSDictionary *)upgradeV1FilesFromContext:(NSManagedObjectContext *)oldMoc toContext:(NSManagedObjectContext *)newMoc withMovies:(NSDictionary *)movieLookup directories:(NSDictionary *)dirLookup |
| | 140 | { |
| | 141 | NSMutableDictionary *lookup = [NSMutableDictionary dictionary]; |
| | 142 | NSArray *files = doFetchRequest(SapphireFileMetaDataName, oldMoc, nil); |
| | 143 | NSEnumerator *fileEnum = [files objectEnumerator]; |
| | 144 | NSManagedObject *oldFile; |
| | 145 | while((oldFile = [fileEnum nextObject]) != nil) |
| | 146 | { |
| | 147 | SapphireFileMetaData *newFile = [NSEntityDescription insertNewObjectForEntityForName:SapphireFileMetaDataName inManagedObjectContext:newMoc]; |
| | 148 | NSString *path = [oldFile valueForKey:@"path"]; |
| | 149 | newFile.path = path; |
| | 150 | newFile.parent = [dirLookup objectForKey:[oldFile valueForKeyPath:@"parent.path"]]; |
| | 151 | newFile.audioDescription = [oldFile valueForKey:@"audioDescription"]; |
| | 152 | newFile.audioFormatID = [oldFile valueForKey:@"audioFormatID"]; |
| | 153 | newFile.duration = [oldFile valueForKey:@"duration"]; |
| | 154 | newFile.favorite = [oldFile valueForKey:@"favorite"]; |
| | 155 | newFile.fileClass = [oldFile valueForKey:@"fileClass"]; |
| | 156 | newFile.fileContainerType = [oldFile valueForKey:@"fileContainerType"]; |
| | 157 | newFile.hasVideo = [oldFile valueForKey:@"hasVideo"]; |
| | 158 | newFile.importTypeValue = [[oldFile valueForKey:@"importType"] intValue] & ~IMPORT_TYPE_XML_MASK; |
| | 159 | newFile.modified = [oldFile valueForKey:@"modified"]; |
| | 160 | newFile.resumeTime = [oldFile valueForKey:@"resumeTime"]; |
| | 161 | newFile.sampleRate = [oldFile valueForKey:@"sampleRate"]; |
| | 162 | newFile.size = [oldFile valueForKey:@"size"]; |
| | 163 | newFile.subtitlesDescription = [oldFile valueForKey:@"subtitlesDescription"]; |
| | 164 | newFile.videoDescription = [oldFile valueForKey:@"videoDescription"]; |
| | 165 | newFile.watched = [oldFile valueForKey:@"watched"]; |
| | 166 | NSNumber *oldMovieNumber = [oldFile valueForKeyPath:@"movie.imdbNumber"]; |
| | 167 | if(oldMovieNumber != nil) |
| | 168 | newFile.movie = [movieLookup objectForKey:oldMovieNumber]; |
| | 169 | |
| | 170 | [lookup setObject:newFile forKey:path]; |
| | 171 | } |
| | 172 | return lookup; |