public void GuessExtensionFromFilePath() { string expected = "jpeg"; string actual = MimeGuesser.GuessExtension(ResourceUtils.TestDataPath); Assert.Equal(expected, actual); }
public async Task Konachan(CommandContext ctx, params string[] tag) { if (tag.Any(x => x.ToLower().Contains("loli")) || tag.Any(x => x.ToLower().Contains("shota"))) { await ctx.RespondAsync("no."); return; } var dan = new BooruClient(); var res = await dan.GetKonaChanImagesAsync(tag); if (res.Count == 0) { await ctx.RespondAsync("No Results!"); } var hc = new HttpClient(); MemoryStream str = new MemoryStream(await hc.GetByteArrayAsync(Other.resizeLink(res[new Random().Next(0, res.Count)].ImageUrl))); str.Position = 0; var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(str)}"); em.WithFooter("by Konachan"); await ctx.RespondWithFileAsync($"image.{MimeGuesser.GuessExtension(str)}", str, embed : em.Build()); }
public void GuessExtensionFromFilePath() { var expected = "jpeg"; string actual = MimeGuesser.GuessExtension(ResourceUtils.GetFileFixture); Assert.Equal(expected, actual); }
public async Task <ImgData> GetImg(Loids loid, int size = 0) { WebClient wc = new WebClient(); string ApiJson = await wc.DownloadStringTaskAsync($"https://api.meek.moe/{GetLoid(loid)}"); ApiResponse ar = JsonConvert.DeserializeObject <ApiResponse>(ApiJson);; MemoryStream im; if (size < 0) { im = new MemoryStream(await wc.DownloadDataTaskAsync(ar.Url)) { Position = 0 }; } else { im = new MemoryStream(await wc.DownloadDataTaskAsync($"https://api.meek.moe/im/?image={ar.Url}&resize={size}")) { Position = 0 }; } ImgData iu = new ImgData { Url = ar.Url, ProxyUrl = $"https://api.meek.moe/im/?image={ar.Url}&resize=500", Creator = ar.Creator, Image = im, FileType = MimeGuesser.GuessExtension(im) }; return(iu); }
public async Task KTetoPic(CommandContext ctx) { var c = new HttpClient(); var res = JsonConvert.DeserializeObject <Entities.MeekMoe>(await c.GetStringAsync($"https://api.meek.moe/teto")); var img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(res.url))) { Position = 0 }; var emim = new DiscordEmbedBuilder { Description = $"[Full Source Image Link]({res.url})", ImageUrl = $"attachment://image.{MimeGuesser.GuessExtension(img)}" }; if (res.creator.Length != 0) { emim.AddField("Creator", res.creator); } emim.WithAuthor(name: "via api.meek.moe", url: "https://api.meek.moe/"); emim.WithFooter("Requested by " + ctx.Message.Author.Username, ctx.Message.Author.AvatarUrl); DiscordMessageBuilder builder = new(); builder.WithFile($"image.{MimeGuesser.GuessExtension(img)}", img); builder.WithEmbed(emim.Build()); await ctx.RespondAsync(builder); }
public async Task Tiger(CommandContext ctx) { var c = new HttpClient(); var ImgLink = JsonConvert.DeserializeObject <AnIdiotsGuide>(await c.GetStringAsync("https://animals.anidiots.guide/tiger")); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(ImgLink.link))); await ctx.RespondWithFileAsync(fileName : "image." + MimeGuesser.GuessExtension(img), fileData : img); }
public void GuessExtensionFromBuffer() { byte[] buffer = File.ReadAllBytes(ResourceUtils.TestDataPath); string expected = "jpeg"; string actual = MimeGuesser.GuessExtension(buffer); Assert.Equal(expected, actual); }
public void GuessExtensionFromStream() { using var stream = File.OpenRead(ResourceUtils.GetFileFixture); string expected = "jpeg"; string actual = MimeGuesser.GuessExtension(stream); Assert.Equal(expected, actual); }
public void GuessExtensionFromBuffer() { byte[] buffer = File.ReadAllBytes(ResourceUtils.GetFileFixture); var expected = "jpeg"; string actual = MimeGuesser.GuessExtension(buffer); Assert.Equal(expected, actual); }
public async Task Lizard(CommandContext ctx) { var c = new HttpClient(); var get = await Web.GetNekos_Life("https://nekos.life/api/lizard"); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(get.Url))); await ctx.RespondWithFileAsync(fileName : "image." + MimeGuesser.GuessExtension(img), fileData : img); }
public AnalyzerResult Analyze(FileItem file) { var result = new AnalyzerResult(); result.Properties.Add("mime_type", MimeGuesser.GuessMimeType(file.AbsolutePath)); result.Properties.Add("mime_extension", MimeGuesser.GuessExtension(file.AbsolutePath)); return(result); }
public void GuessExtensionFromStream() { using (var stream = File.OpenRead(ResourceUtils.TestDataPath)) { string expected = "jpeg"; string actual = MimeGuesser.GuessExtension(stream); Assert.Equal(expected, actual); } }
public async Task DDLC(CommandContext ctx) { var e = JsonConvert.DeserializeObject <Derpy>(await new WebClient().DownloadStringTaskAsync($"https://derpyapi.glitch.me/ddlc")); Stream img = new MemoryStream(await new WebClient().DownloadDataTaskAsync(Other.resizeLink(e.url))); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by Derpy API"); em.WithDescription($"{e.url}"); await ctx.RespondWithFileAsync(fileData : img, fileName : $"image.{MimeGuesser.GuessExtension(img)}", embed : em.Build()); }
public async Task Cat(CommandContext ctx) { var ImgURL = await Web.GetNekos_Life("https://nekos.life/api/v2/img/neko"); Stream img = new MemoryStream(await new WebClient().DownloadDataTaskAsync(Other.resizeLink(ImgURL.Url))); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by nekos.life"); await ctx.RespondWithFileAsync(embed : em.Build(), fileData : img, fileName : $"image.{MimeGuesser.GuessExtension(img)}"); }
public async Task Duck(CommandContext ctx) { var c = new HttpClient(); var dc = JsonConvert.DeserializeObject <Random_D>(await c.GetStringAsync("https://random-d.uk/api/v1/random")); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(dc.message))); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by random-d.uk", "https://random-d.uk/favicon.png"); em.WithDescription($"[Full Image]({dc.message})"); await ctx.RespondWithFileAsync(fileData : img, fileName : $"image.{MimeGuesser.GuessExtension(img)}", embed : em.Build()); }
public async Task Lizard(CommandContext ctx) { var c = new HttpClient(); var get = await Web.GetNekos_Life("https://nekos.life/api/lizard"); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(get.Url))); DiscordMessageBuilder builder = new(); builder.WithFile($"image.{MimeGuesser.GuessExtension(img)}", img); await ctx.RespondAsync(builder); }
public async Task Slap(CommandContext ctx, DiscordMember m) { var c = new HttpClient(); var weeurl = await Bot._weeb.GetRandomAsync("slap", new[] { "" }); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(weeurl.Url))); var em = new DiscordEmbedBuilder(); em.WithDescription($"{ctx.Member.Mention} slaps {m.Mention} ÒwÓ"); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by nekos.life"); await ctx.RespondWithFileAsync(embed : em.Build(), fileData : img, fileName : $"image.{MimeGuesser.GuessExtension(img)}"); }
public async Task DDLC(CommandContext ctx) { var c = new HttpClient(); var e = JsonConvert.DeserializeObject <Entities.Derpy>(await c.GetStringAsync($"https://miku.derpyenterprises.org/ddlcjson")); var img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(e.url))); var em = new DiscordEmbedBuilder(); img.Position = 0; em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by Derpy API"); em.WithDescription($"{e.url}"); await ctx.RespondWithFileAsync(fileData : img, fileName : $"image.{MimeGuesser.GuessExtension(img)}", embed : em.Build()); }
public async Task DivaPic(CommandContext ctx) { var myresponse = JsonConvert.DeserializeObject <ImgRet>(await new WebClient().DownloadStringTaskAsync($"https://api.meek.moe/diva")); Stream dataStream2 = new MemoryStream(await new WebClient().DownloadDataTaskAsync(Other.resizeLink(myresponse.url))); var emim = new DiscordEmbedBuilder { Description = $"[Full Source Image Link]({myresponse.url.ToString()})", ImageUrl = $"attachment://image.{MimeGuesser.GuessExtension(dataStream2)}" }; emim.WithAuthor(name: "via api.meek.moe", url: "https://api.meek.moe/"); emim.WithFooter("Requested by " + ctx.Message.Author.Username, ctx.Message.Author.AvatarUrl); Console.WriteLine(MimeGuesser.GuessExtension(dataStream2)); await ctx.RespondWithFileAsync(fileName : $"image.{MimeGuesser.GuessExtension(dataStream2)}", fileData : dataStream2, embed : emim.Build()); }
public static async Task <Derpy> GetDerpy(string url) { var hc = new HttpClient(); var dl = JsonConvert.DeserializeObject <Derpy>(await hc.GetStringAsync(url)); MemoryStream str = new MemoryStream(await hc.GetByteArrayAsync(Other.resizeLink(dl.url))); str.Position = 0; dl.Data = str; dl.Filetype = MimeGuesser.GuessExtension(str); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{dl.Filetype}"); em.WithFooter("by derpyenterprises.org"); dl.Embed = em.Build(); return(dl); }
public async Task Cat(CommandContext ctx) { var c = new HttpClient(); var ImgURL = await Web.GetNekos_Life("https://nekos.life/api/v2/img/neko"); var img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(ImgURL.Url))); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by nekos.life"); DiscordMessageBuilder builder = new(); builder.WithFile($"image.{MimeGuesser.GuessExtension(img)}", img); builder.WithEmbed(em.Build()); await ctx.RespondAsync(builder); }
public async Task Dog(CommandContext ctx) { var c = new HttpClient(); var dc = JsonConvert.DeserializeObject <DogCeo>(await c.GetStringAsync("https://dog.ceo/api/breeds/image/random")); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(dc.message))); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by dog.ceo", "https://dog.ceo/img/favicon.png"); em.WithDescription($"[Full Image]({dc.message})"); DiscordMessageBuilder builder = new(); builder.WithFile($"image.{MimeGuesser.GuessExtension(img)}", img); builder.WithEmbed(em.Build()); await ctx.RespondAsync(builder); }
public static async Task <KsoftSiRanImg> GetKsoftSiRanImg(string tag, bool nsfw = false) { var c = new HttpClient(); c.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Bot.cfg.KsoftSiToken); var v = JsonConvert.DeserializeObject <KsoftSiRanImg>(await c.GetStringAsync("https://api.ksoft.si/images/random-image?tag=hentai_gif&nsfw=true")); MemoryStream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(v.url))); v.Data = img; v.Filetype = MimeGuesser.GuessExtension(img); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{v.Filetype}"); em.WithFooter("by KSoft.si"); v.Embed = em.Build(); return(v); }
public async Task Poke(CommandContext ctx, DiscordMember m) { var c = new HttpClient(); var weeurl = await Bot._weeb.GetRandomAsync("poke", new[] { "" }); Stream img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(weeurl.Url))); var em = new DiscordEmbedBuilder(); em.WithDescription($"{ctx.Member.Mention} pokes {m.Mention} ÓwÒ"); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by nekos.life"); DiscordMessageBuilder builder = new(); builder.WithFile($"image.{MimeGuesser.GuessExtension(img)}", img); builder.WithEmbed(em.Build()); await ctx.RespondAsync(builder); }
public static async Task <NekoBot> GetNekobot(string url) { var hc = new HttpClient(); var dl = JsonConvert.DeserializeObject <NekoBot>(await hc.GetStringAsync(url)); MemoryStream str = new(await hc.GetByteArrayAsync(Other.resizeLink(dl.message))) { Position = 0 }; dl.Data = str; dl.Filetype = MimeGuesser.GuessExtension(str); var em = new DiscordEmbedBuilder(); em.WithImageUrl($"attachment://image.{dl.Filetype}"); em.WithFooter("by nekobot.xyz"); dl.Embed = em.Build(); return(dl); }
public async Task DivaPic(CommandContext ctx) { var c = new HttpClient(); var res = JsonConvert.DeserializeObject <Entities.MeekMoe>(await c.GetStringAsync($"https://api.meek.moe/diva")); var img = new MemoryStream(await c.GetByteArrayAsync(Other.resizeLink(res.url))) { Position = 0 }; var emim = new DiscordEmbedBuilder { Description = $"[Full Source Image Link]({res.url})", ImageUrl = $"attachment://image.{MimeGuesser.GuessExtension(img)}" }; emim.WithAuthor(name: "via api.meek.moe", url: "https://api.meek.moe/"); emim.WithFooter("Requested by " + ctx.Message.Author.Username, ctx.Message.Author.AvatarUrl); Console.WriteLine(MimeGuesser.GuessExtension(img)); await ctx.RespondWithFileAsync(fileName : $"image.{MimeGuesser.GuessExtension(img)}", fileData : img, embed : emim.Build()); }
public static async Task <WeebSh> GetWeebSh(CommandContext ctx, string query, string[] tags = null, NsfwSearch nsfw = NsfwSearch.False) { var weeurl = await Bot._weeb.GetRandomAsync(query, tags, nsfw : nsfw); var hc = new HttpClient(); MemoryStream img = new MemoryStream(await hc.GetByteArrayAsync(weeurl.Url)); img.Position = 0; var em = new DiscordEmbedBuilder(); //em.WithDescription($"{ctx.Member.Mention} hugs {m.Mention} uwu"); em.WithImageUrl($"attachment://image.{MimeGuesser.GuessExtension(img)}"); em.WithFooter("by weeb.sh"); //await ctx.RespondWithFileAsync(embed: em.Build(), fileData: img, fileName: $"image.{MimeGuesser.GuessExtension(img)}"); return(new WeebSh { ImgData = img, Extension = MimeGuesser.GuessExtension(img), Embed = em }); }
private void backgroundWorkerPopulate_DoWork(object sender, DoWorkEventArgs e) { addLVI addListViewItemDelegate = AddListViewItem; setDetailText setDetailTextDelegate = SetDetailText; /* Full path */ var fullPath = new ListViewItem("Location"); var fullPathValue = new ListViewItem.ListViewSubItem { Text = fileItem.ParentDirectoryPath }; fullPath.SubItems.Add(fullPathValue); fullPath.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { fullPath }); /* Windows extension */ var windowsExtension = new ListViewItem("Indicated Extension"); var windowsExtensionValue = new ListViewItem.ListViewSubItem { Text = fileItem.Extension.Name }; windowsExtension.SubItems.Add(windowsExtensionValue); windowsExtension.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { windowsExtension }); /* Detected extension */ var detectedExtension = new ListViewItem("Detected Extension"); var detectedExtensionValue = new ListViewItem.ListViewSubItem { Text = MimeGuesser.GuessExtension(fileItem.AbsolutePath) }; detectedExtension.SubItems.Add(detectedExtensionValue); detectedExtension.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { detectedExtension }); /* MIME Type */ var mimeType = new ListViewItem("Detected MIME Type"); var mimeTypeValue = new ListViewItem.ListViewSubItem { Text = MimeGuesser.GuessMimeType(fileItem.AbsolutePath) }; mimeType.SubItems.Add(mimeTypeValue); mimeType.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { mimeType }); /* MIME Details */ var builder = new StringBuilder(); string details = detailMagic.Read(fileItem.AbsolutePath); details = details.Replace("- data", string.Empty); foreach (var component in details.Split(',')) { if (!component.Equals("- data")) { builder.AppendLine(component.Trim()); } } BeginInvoke(setDetailTextDelegate, new object[] { builder.ToString() }); /* Size */ var size = new ListViewItem("Size"); var sizeValue = new ListViewItem.ListViewSubItem { Text = Utils.GetDynamicFileSize(fileItem.AbsolutePath) }; size.SubItems.Add(sizeValue); size.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { size }); /* Creation date + time */ var creationDateTime = new ListViewItem("Creation Date"); var creationDateTimeValue = new ListViewItem.ListViewSubItem { Text = fileItem.CreationTimeAsText }; creationDateTime.SubItems.Add(creationDateTimeValue); creationDateTime.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { creationDateTime }); /* Access date + time */ var accessDateTime = new ListViewItem("Last Access Date"); var accessDateTimeValue = new ListViewItem.ListViewSubItem { Text = fileItem.LastAccessTimeAsText }; accessDateTime.SubItems.Add(accessDateTimeValue); accessDateTime.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { accessDateTime }); /* Modify date + time */ var modifiedDateTime = new ListViewItem("Last Modification Date"); var modifiedDateTimeValue = new ListViewItem.ListViewSubItem { Text = fileItem.LastWriteTimeAsText }; modifiedDateTime.SubItems.Add(modifiedDateTimeValue); modifiedDateTime.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { modifiedDateTime }); /* Attributes */ var attributes = new ListViewItem("Windows Attributes"); var attributesValue = new ListViewItem.ListViewSubItem { Text = fileItem.AttributesAsText }; attributes.SubItems.Add(attributesValue); attributes.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { attributes }); /* Owner */ var owner = new ListViewItem("Owner"); var ownerValue = new ListViewItem.ListViewSubItem { Text = fileItem.Owner }; owner.SubItems.Add(ownerValue); owner.SubItems.Add("No"); BeginInvoke(addListViewItemDelegate, new object[] { owner }); }