public static void ProcessItem(Item fileItem, DatabaseOperations dbOp) { // Set the fileItem's source path. The source path may be used by meta providers. fileItem.SourcePath = dbOp.BagLocation + "\\" + fileItem.Id; List <IMetaProvider> provOut; _metaProviderMap.TryGetValue(fileItem.Extension.ToLower(), out provOut); List <IMetaProvider> providers = new List <IMetaProvider>(); // Add the default provider providers.Add(_defaultMetaProvider); if (provOut != null) { providers.AddRange(provOut); } // Iterate over all providers and let them do their thing foreach (IMetaProvider provider in providers) { TableRow row = provider.ProcessItem(fileItem); // Always add an itemId column. This should be the table's key. if (row != null) { row.AddColumn("itemId", fileItem.Id); } // Insert the newly obtained metadata in the database try { dbOp.InsertTableRow(row); } catch (SQLiteException ex) { MjDebug.Log(ex.Message); } } }
public TableRow ProcessItem(Item fileItem) { TableRow res = new TableRow(TABLE_NAME); string path = fileItem.SourcePath; TagLib.File file = TagLib.File.Create(path); uint year = file.Tag.Year; string album = file.Tag.Album; string[] artist = file.Tag.AlbumArtists; string title = file.Tag.Title; res.AddColumn("artist", artist[0]); res.AddColumn("album", album); res.AddColumn("title", title); return(res); }
public TableRow ProcessItem(Item fileItem) { TableRow res = new TableRow(TABLE_NAME); string path = fileItem.SourcePath; try { using (ExifReader reader = new ExifReader(path)) { string outputStr; double outputDouble; DateTime outputDate; UInt16 outputUInt16; if (reader.GetTagValue <string>(ExifTags.Artist, out outputStr)) { res.AddColumn("artist", outputStr); } if (reader.GetTagValue <double>(ExifTags.FNumber, out outputDouble)) { res.AddColumn("f-stop", Convert.ToString(outputDouble)); } if (reader.GetTagValue <UInt16>(ExifTags.PhotographicSensitivity, out outputUInt16)) { res.AddColumn("iso", Convert.ToString(outputUInt16)); } if (reader.GetTagValue <string>(ExifTags.Model, out outputStr)) { res.AddColumn("model", outputStr); } } } catch (ExifLibException ex) { MjDebug.Log(ex.Message); return(null); } catch (IOException ex) { MjDebug.Log(ex.Message); return(null); } return(res); }
public TableRow ProcessItem(Item fileItem) { TableRow row = new TableRow(TABLE_NAME); row.AddColumn("name", fileItem.Name); row.AddColumn("ext", fileItem.Extension.ToLower()); row.AddColumn("size", fileItem.Size.ToString()); row.AddColumn("attr", ((int)fileItem.Attributes).ToString()); row.AddColumn("lat", fileItem.LastAccesTime.ToString()); row.AddColumn("lwt", fileItem.LastWriteTime.ToString()); row.AddColumn("ct", fileItem.CreationTime.ToString()); return(row); }