private static void ParseItems(string itemFile, string outputFolder) { using (StreamReader reader = new StreamReader(itemFile)) { RawItems rawItems = RawItems.FromJson(reader.ReadToEnd()); ProcessedItems processedItems = new ProcessedItems(); foreach (RawItem rawItem in rawItems.Items) { if (rawItem.Price < 0) { continue; } rawItem.Category = RecategorizeItem(rawItem); ProcessedItem processedItem = ProcessedItem.FromRawItem(rawItem); processedItems.Items.Add(processedItem); } processedItems.Sort(); string outputFileItems = Path.Combine(outputFolder, "StoreItems.json"); GenerateItemsOutput(processedItems, outputFileItems); } }
// private static string[] Categories = { "Cat 1", "Cat 2", "Cat 3", "Cat 4", "Cat 5" }; // private static int Counter = 0; //public ProcessedItem ProcessItem(Item item) //{ // var originalPath = GetItemProperty(item, "OriginalPath"); //// Trace.WriteLine($"Enriching '{originalPath}'..."); // var fileExtension = GetItemProperty(item, "FileExtension"); // var props = new List<AbstractProperty>(); // if (Counter == int.MaxValue) Counter = 0; // props.Add(new Property<string> // { // Name = "CustomCategory", // Value = Categories[Counter++ % 5] // }); // if (fileExtension != null) // { // //Trace.WriteLine($"Extension '{fileExtension}'..."); // props.Add(new Property<string> // { // Name = "CustomExt", // Value = fileExtension // }); // } // return new ProcessedItem // { // ErrorCode = 0, // ItemProperties = props // }; public ProcessedItem ProcessItem(Item item) { ProcessedItem processedItem = new ProcessedItem { ItemProperties = new List <AbstractProperty>() }; processedItem.ErrorCode = 0; processedItem.ItemProperties.Clear(); try { var contentsProperty = item.ItemProperties.Where(p => p.Name == "body").FirstOrDefault(); Property <string> MyContentsProp = contentsProperty as Property <string>; if(MyContentsProp == null) { processedItem.ErrorCode = 1; // UnexpectedType return processedItem; } else if (MyContentsProp.Value != null) { { MyContentsProp.Name = "MyContents"; processedItem.ItemProperties.Add(MyContentsProp); } } } catch { processedItem.ErrorCode = 2; // UnexpectedError } return processedItem; }
protected void OnProcessedItem() { ProcessedItem?.Invoke(this, EventArgs.Empty); }
public ProcessedItem ProcessItem(Item item) { ProcessedItem processedItem = new ProcessedItem { ItemProperties = new List<AbstractProperty>() }; AbstractProperty pathProperty = item.ItemProperties.FirstOrDefault(p => p.Name == "Path"); if (pathProperty != null && pathProperty.ObjectValue.ToString().Contains(@"www.torrentreactor.net/torrents/")) { var pathProp = pathProperty as Property<string>; if (pathProp != null) { var parser = new SharePirates.Torrent.Parsers.TorrentReactorParser(); var metaDatas = parser.GetMetaDataTorrentReactor(pathProp.Value.EndsWith("/") ? pathProp.Value.Remove(pathProp.Value.Length - 1, 1) : pathProp.Value); Random vRandom = new Random();; string temptype; int i; if (metaDatas.TryGetValue("torrentCategories", out temptype)) { string[] mTypes = { "HDTV", "DVDRIP", "TVSCREEN" }; i = vRandom.Next(0, 2); temptype = mTypes[i];//movietype.Split(',').Count() > 1 ? movietype.Split(',').First() : movietype}; var movieType = new Property<string>() { Name = "MovieType", Value = temptype }; processedItem.ItemProperties.Add(movieType); } string[] mFileTypes = { "MP4", "AVI", "MPG" }; vRandom = new Random(); i = vRandom.Next(0, 2); temptype = mFileTypes[i];//movietype.Split(',').Count() > 1 ? movietype.Split(',').First() : movietype}; var mFileType = new Property<string>() { Name = "MovieFileType", Value = temptype }; processedItem.ItemProperties.Add(mFileType); string[] mGenreTypes = { "Comedy", "Sci-fi", "Thriller", "Action", "Drama", "Adventure" }; vRandom = new Random(); i = vRandom.Next(0, 5); temptype = mGenreTypes[i];//movietype.Split(',').Count() > 1 ? movietype.Split(',').First() : movietype}; var mGenreType = new Property<string>() { Name = "MovieGenre", Value = temptype }; processedItem.ItemProperties.Add(mGenreType); string size; if (metaDatas.TryGetValue("torrentSize", out size)) { var movieSize = new Property<string>() { Name = "MovieSize", Value = size }; processedItem.ItemProperties.Add(movieSize); } string title; if (metaDatas.TryGetValue("torrentTitle", out title)) { var stringTitle = new Property<string>() { Name = "Title", Value = title }; processedItem.ItemProperties.Add(stringTitle); } string stringurl; if (metaDatas.TryGetValue("torrentUrl", out stringurl)) { var stringUrl = new Property<string>() { Name = "MagnetLink", Value = stringurl }; processedItem.ItemProperties.Add(stringUrl); } } } return processedItem; }