private async Task <IEnumerable <XmlItemBase> > ReadJson(string wikiClass, Func <XmlItemBase, ItemType> itemTypeFunc, ItemCategory category) { var conditions = new ConditionBuilder { { RdfRarity, "Normal" }, { RdfItemClass, wikiClass } }; var printouts = GlobalPredicates.Union(PredicatesPerCategory[category]); var enumerable = from result in await WikiApiAccessor.AskArgs(conditions, printouts) select PrintoutsToBase(category, result); var ret = enumerable.ToList(); foreach (var item in ret) { item.ItemType = itemTypeFunc(item); } Log.Info($"Retrieved {ret.Count} bases of class {wikiClass}."); return (from b in ret orderby b.ItemType, b.Level, b.Name select b); }
private async Task ReadJson(string wikiClass) { // for items that have the given class ... var conditions = new ConditionBuilder { { RdfItemClass, wikiClass } }; // ... retrieve name and the icon url var task = WikiApiAccessor.AskAndQueryImageInforUrls(conditions); var results = (await task).ToList(); // download the images from the urls and save them foreach (var result in results) { var data = await HttpClient.GetByteArrayAsync(result.Url); foreach (var name in result.Names) { var fileName = name + ".png"; WikiApiUtils.SaveImage(data, Path.Combine(SavePath, fileName), true); } } Log.Info($"Retrieved {results.Count} images for class {wikiClass}."); }
private Task <IReadOnlyList <JToken> > QueryApiForJewelsAsync() { string[] tables = { ItemTableName, JewelTableName }; var where = GetWhereClause(JewelClass); var joinOn = $"{ItemTableName}.{PageName}={JewelTableName}.{PageName}"; return(WikiApiAccessor.CargoQueryAsync(tables, JewelFields, where, joinOn)); }
private Task <IReadOnlyList <JToken> > QueryApiForModsAsync() { string[] tables = { ItemTableName, ItemModTableName }; string[] fields = { ModId }; var where = $"{Rarity}='Unique' AND is_implicit=false AND is_random=false AND {ModId} != ''"; var joinOn = $"{ItemTableName}.{PageName}={ItemModTableName}.{PageName}"; return(WikiApiAccessor.CargoQueryAsync(tables, fields, where, joinOn)); }
private async Task <IEnumerable <XmlUnique> > ReadJson(string wikiClass) { var conditions = new ConditionBuilder { { RdfRarity, "Unique" }, { RdfItemClass, wikiClass } }; IEnumerable <XmlUnique> enumerable = from result in await WikiApiAccessor.AskArgs(conditions, Printouts) select PrintoutsToUnique(result); var ret = enumerable.ToList(); Log.Info($"Retrieved {ret.Count} bases of class {wikiClass}."); return(ret.OrderBy(b => b.Name)); }
private async Task <IEnumerable <XmlItemBase> > ReadJson(string wikiClass, ItemClass itemClass) { var conditions = new ConditionBuilder { { RdfRarity, "Normal" }, { RdfItemClass, wikiClass } }; var enumerable = from result in await WikiApiAccessor.AskArgs(conditions, PrintoutPredicates) select PrintoutsToBase(itemClass, result); var ret = enumerable.ToList(); Log.Info($"Retrieved {ret.Count} bases of class {wikiClass}."); return (from b in ret orderby b.Level, b.Name select b); }
private async Task ReadJson(string wikiClass) { // for items that have the given class ... var where = $"{CargoConstants.ItemClass}='{wikiClass}'"; // ... retrieve name and the icon url var task = WikiApiAccessor.GetItemImageInfosAsync(where); var results = (await task).ToList(); // download the images from the urls and save them foreach (var result in results) { var data = await HttpClient.GetByteArrayAsync(result.Url); foreach (var name in result.Names) { var fileName = name + ".png"; WikiApiUtils.SaveImage(data, Path.Combine(SavePath, fileName), true); } } Log.Info($"Retrieved {results.Count} images for class {wikiClass}."); }
private Task <IReadOnlyList <JToken> > QueryApiForUniquesAsync(string wikiClass) { string[] tables = { ItemTableName }; var where = GetWhereClause(wikiClass); return(WikiApiAccessor.CargoQueryAsync(tables, Fields, where)); }
private Task <IEnumerable <JToken> > QueryApiAsync(string wikiClass) { string[] tables = { ItemTableName }; var where = GetWhereClause(wikiClass); return(WikiApiAccessor.CargoQueryAsync(tables, Fields, where)); }