private void RecognitionOutput(IRecognitionResult result, string imageName) { dataGridViewResult.DataSource = result.Items; picBx.Image = result.DrawBorder2Image(); imageLogger = new ImageLogger(result, imageName); imageLogger.Save($@"Results/{imageName}.json"); }
private async Task Client_MessageReceived(SocketMessage arg) { var msg = arg as SocketUserMessage; var context = new SocketCommandContext(Client, msg); if (msg.Content.Length <= 1 && msg.Embeds.Count == 0 && msg.Attachments.Count == 0) { return; } if (context.User.IsBot) { return; } var guildOptions = GlobalVars.GuildOptions.Single(x => x.GuildID == context.Guild.Id); if ((context.Message == null || context.Message.Content == "") && arg.Attachments.Count == 0 && arg.Embeds.Count == 0) { return; } if (GlobalVars.IgnoredUsers.ContainsKey(context.User.Id)) { return; } //Get rid of Zero-Width Spaces context.Message.Content.Replace("\u200b", ""); int argPos = 0; if (guildOptions.Options.LogChannelID != 0 && !msg.Content.StartsWith($"{guildOptions.Prefix}dm")) { if (guildOptions.Options.LogEmbeds) { if (msg.Embeds.Count > 0) { await ImageLogger.LogEmbed(msg, guildOptions.Options.LogChannelID, Client); } } if (guildOptions.Options.LogAttachments) { if (msg.Attachments.Count > 0) { await ImageLogger.LogAttachment(msg, guildOptions.Options.LogChannelID, Client); } } } if (!(msg.HasStringPrefix(guildOptions.Prefix, ref argPos, StringComparison.CurrentCultureIgnoreCase)) && !(msg.HasMentionPrefix(Client.CurrentUser, ref argPos))) { return; } if (!await GlobalVars.CheckUserTimeout(context.Message.Author, context.Guild.Id, context.Channel)) { return; } IResult Result = null; try { Result = await Commands.ExecuteAsync(context, argPos, Provider); if (Result.Error == CommandError.UnmetPrecondition) { var errorMsg = await context.Channel.SendMessageAsync(Result.ErrorReason.Contains("USERMENTION")?Result.ErrorReason.Replace("USERMENTION", context.Message.Author.Mention) : Result.ErrorReason); GlobalVars.AddRandomTracker(errorMsg); } else if (!Result.IsSuccess) { if (Result.ErrorReason.ToLower().Contains("unknown command")) { await Client_Log(new LogMessage(LogSeverity.Error, "Client_MessageReceived", $"Unknown command sent by {context.Message.Author.ToString()} in guild: {context.Guild.Id} - Command text: {context.Message.Content}")); } else if (Result.ErrorReason.ToLower().Contains("too many param")) { await Client_Log(new LogMessage(LogSeverity.Warning, "Client_MessageReceived", $"Invalid parameters sent by {context.Message.Author.ToString()} in guild: {context.Guild.Id} - Command text: {context.Message.Content}")); var errorMsg = await context.Channel.SendMessageAsync($"Pretty sure you goofed on the parameters you've supplied there {context.Message.Author.Mention}!"); GlobalVars.AddRandomTracker(errorMsg); } else { await Client_Log(new LogMessage(LogSeverity.Error, "Client_MessageReceived", $"Command text: {context.Message.Content} | Error: {Result.ErrorReason}")); } } var x = GlobalVars.UserTimeouts.SingleOrDefault(b => b.TrackedUser.Id == context.Message.Author.Id); if (x == null) { GlobalVars.AddUserTimeout(context.Message.Author, context.Guild.Id); } } catch (Exception ex) { await Client_Log(new LogMessage(LogSeverity.Critical, context.Message.Content, Result.ErrorReason, ex)); } }
public async Task RequestEmote(string trigger, string url, bool RequiresTarget, [Remainder] string msg) { if (msg == "") { msg = $"is {trigger}"; } EmoteRequest er = new EmoteRequest(Context.Message.Author, trigger, RequiresTarget, msg, false); string finalURL = ""; string[] imgFileTypes = { ".jpg", ".jpeg", ".gif", ".png" }; foreach (string s in imgFileTypes) { if (url.Substring(url.Length - s.Length, s.Length) == s) { finalURL = url; er.FileExtension = s; } } if (finalURL == "") { finalURL = url.Contains("tenor") ? ImageLogger.GetTenorGIF(url) : url.Contains("gfycat") ? ImageLogger.GetGfyCatAsync(url) : ""; foreach (string s in imgFileTypes) { if (finalURL.Substring(finalURL.Length - s.Length, s.Length) == s) { er.FileExtension = s; } } } if (finalURL != "") { string dir = RequestLocation.Substring(0, RequestLocation.Length - 1); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } using (var c = new WebClient()) { try { c.DownloadFile(finalURL, RequestLocation + er.FileName); } catch (Exception ex) { } while (c.IsBusy) { } } GlobalVars.EmoteRequests.Add(er.RequestID, er); try { await SendRequest(er); var m = await Context.Channel.SendMessageAsync($"Emote requested, emote ID: {er.RequestID}"); GlobalVars.AddRandomTracker(m, 15); var perms = Context.Guild.GetUser(Context.Client.CurrentUser.Id).GetPermissions(Context.Channel as IGuildChannel); if (perms.ManageMessages) { try { await Context.Message.DeleteAsync(); } catch { } } } catch (Discord.Net.HttpException ex) { if (ex.DiscordCode == 40005) { var m = await Context.Channel.SendMessageAsync($"{Context.User.Mention}, the filesize is too large (~{new FileInfo(RequestLocation + er.FileName).Length / 1048576}MB). Max filesize: 8MB\nPlease resize your image or use another."); GlobalVars.AddRandomTracker(m, 15); File.Delete(RequestLocation + er.FileName); GlobalVars.EmoteRequests.Remove(er.RequestID); } await Program.Client_Log(new LogMessage(LogSeverity.Error, "Emote Request", ex.Message, ex)); } } else { var m = await Context.Channel.SendMessageAsync("Could not get the download URL for this image."); GlobalVars.AddRandomTracker(m, 20); } }