public static async Task CheckTag(ABooru booru, string s1 = "pantyhose") { Search.Tag.SearchResult result = await booru.GetTagAsync(s1); Assert.Equal(s1, result.name); Assert.InRange(result.type, Search.Tag.TagType.Trivia, Search.Tag.TagType.Metadata); Assert.NotEqual((Search.Tag.TagType) 2, result.type); Assert.NotEqual(0, result.count); }
public static async Task <FeatureRequest <Response.BooruTags, Error.BooruTags> > SearchTags(string[] idArgs) { if (idArgs.Length == 0) { return(new FeatureRequest <Response.BooruTags, Error.BooruTags>(null, Error.BooruTags.Help)); } string id = idArgs[0]; if (!tagInfos.ContainsKey(id)) { return(new FeatureRequest <Response.BooruTags, Error.BooruTags>(null, Error.BooruTags.NotFound)); } var elem = tagInfos[id]; ABooru b = (ABooru)Activator.CreateInstance(elem.Item1, (BooruAuth)null); List <string> artists = new List <string>(); List <string> sources = new List <string>(); List <string> characs = new List <string>(); int i = 0; foreach (string s in elem.Item2.tags) { i++; try { switch ((await b.GetTagAsync(s)).type) { case BooruSharp.Search.Tag.TagType.Artist: if (artists.Count == 10) { artists.Add("..."); } else if (artists.Count < 10) { artists.Add(s); } break; case BooruSharp.Search.Tag.TagType.Character: if (characs.Count == 10) { characs.Add("..."); } else if (characs.Count < 10) { characs.Add(s); } break; case BooruSharp.Search.Tag.TagType.Copyright: if (sources.Count == 10) { sources.Add("..."); } else if (sources.Count < 10) { sources.Add(s); } break; } } catch (BooruSharp.Search.InvalidTags) { } } uint pgcd = PGCD((uint)elem.Item2.height, (uint)elem.Item2.width); return(new FeatureRequest <Response.BooruTags, Error.BooruTags>(new Response.BooruTags() { artistTags = artists.ToArray(), characTags = characs.ToArray(), sourceTags = sources.ToArray(), imageUrl = elem.Item2.previewUrl, rating = GetColorFromRating(elem.Item2.rating), booruName = elem.Item1.ToString().Split('.').Last(), height = elem.Item2.height, width = elem.Item2.width, aspectRatio = new Tuple <long, long>(elem.Item2.width / pgcd, elem.Item2.height / pgcd) }, Error.BooruTags.None)); }