public virtual async Task <T> GetPostAsync(string content, ImageboardRating r) { bool nsfw = false; string[] command = content.Split(' '); List <string> tags = new List <string>(); switch (r) { case ImageboardRating.EXPLICIT: { tags.Add(Config.ExplicitTag); nsfw = true; } break; case ImageboardRating.QUESTIONABLE: { tags.Add(Config.QuestionableTag); nsfw = true; } break; case ImageboardRating.SAFE: { tags.Add(Config.SafeTag); } break; } tags.AddRange(command); if (nsfw) { RemoveBannedTerms(Config, tags); AddBannedTerms(Config, tags); } string outputTags = GetTags(tags.ToArray()); using (RestClient c = new RestClient(Config.QueryKey + outputTags)) { if (Config.NetUseCredentials) { //c.UseDefaultCredentials = true; Config.NetHeaders.ForEach(x => c.Headers.Add(x.Item1, x.Item2)); } var b = await c.GetAsync <List <T> >(""); if (b.Success) { if (b.Data.Any()) { return(b.Data[MikiRandom.Next(0, b.Data.Count)]); } } return(default(T)); } }
public virtual T GetPost(string content, ImageboardRating r) { WebClient c = new WebClient(); byte[] b; bool nsfw = false; string[] command = content.Split(' '); List <string> tags = new List <string>(); if (Config.NetUseCredentials) { c.UseDefaultCredentials = true; c.Credentials = Config.NetCredentials; Config.NetHeaders.ForEach(x => c.Headers.Add(x)); } switch (r) { case ImageboardRating.EXPLICIT: { tags.Add(Config.ExplicitTag); nsfw = true; } break; case ImageboardRating.QUESTIONABLE: { tags.Add(Config.QuestionableTag); nsfw = true; } break; case ImageboardRating.SAFE: { tags.Add(Config.SafeTag); } break; } tags.AddRange(command); if (nsfw) { RemoveBannedTerms(tags); AddBannedTerms(tags); } string outputTags = GetTags(tags.ToArray()); b = c.DownloadData(Config.QueryKey + outputTags); if (b != null) { string result = Encoding.UTF8.GetString(b); Log.Message(typeof(T).ToString()); JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; List <T> d = JsonConvert.DeserializeObject <List <T> >(result, settings); if (d != null) { if (d.Any()) { return(d[MikiRandom.Next(0, d.Count)]); } } } return(default(T)); }