public static void QueueMessage( this IDiscordTextChannel channel, IMessageWorker <IDiscordMessage> worker, DiscordEmbed embed = null, string message = "", Stream stream = null, Func <IMessageReference <IDiscordMessage>, IMessageReference <IDiscordMessage> > modifier = null) { if (worker == null) { throw new ArgumentNullException(nameof(worker)); } var @ref = worker.CreateRef(new MessageBucketArgs() { Attachment = stream, Channel = channel, Properties = new MessageArgs(message, embed) }); if (modifier != null) { @ref = modifier(@ref); } worker.Execute(@ref); }
public static Task QueueAsync( this DiscordEmbed embed, IMessageWorker <IDiscordMessage> worker, IDiscordTextChannel channel, string content = "", Func <IMessageReference <IDiscordMessage>, IMessageReference <IDiscordMessage> > modifier = null) { /*var currentUser = await client.GetSelfAsync(); * var currentGuildUser = await guildChannel.GetUserAsync(currentUser.Id); * var permissions = await guildChannel.GetPermissionsAsync(currentGuildUser); * if(permissions.HasFlag(GuildPermission.EmbedLinks)) * { * if(!string.IsNullOrEmpty(embed.Image?.Url ?? "")) * { * using HttpClient wc = new HttpClient(embed.Image.Url); * await using Stream ms = await wc.GetStreamAsync(); * return channel.QueueMessage(worker, stream: ms, message: embed.ToMessageBuilder().Build()); * } * * if(!string.IsNullOrEmpty(embed.Thumbnail?.Url ?? "")) * { * using HttpClient wc = new HttpClient(embed.Thumbnail.Url); * await using Stream ms = await wc.GetStreamAsync(); * return channel.QueueMessage(worker, stream: ms, message: embed.ToMessageBuilder().Build()); * } * * return channel.QueueMessage(worker, message: embed.ToMessageBuilder().Build()); * }*/ QueueMessage(channel, worker, embed, content, modifier: modifier); return(Task.CompletedTask); }
public MsgWorkerTests() { jworker = new JsonSerializer <IsoField>(); this.serviceContainer = Framework.Container; this.mainMsgWorker = this.serviceContainer.GetInstance <IMessageWorker>("mainMsgWorker"); this.df61MsgWorker = this.serviceContainer.GetInstance <IMessageWorker>("df61MsgWorker"); }
public SiteParser(IMessageWorker messageWorker) { this.messageWorker = messageWorker ?? throw new ArgumentNullException(nameof(messageWorker)); token = cancellationTokenSource.Token; tasks = Enumerable.Range(1, numberOfThreads).Select(x => StartProcessPageTasks()).ToList(); httpClient.Timeout = TimeSpan.FromSeconds(30); }
public ReminderCommand( ISchedulerService schedulerService, IMessageWorker <IDiscordMessage> messageWorker, IDiscordClient discordClient) { this.messageWorker = messageWorker; this.discordClient = discordClient; reminderWorkerGroup = schedulerService .CreateWorkerGroup("miki:reminders", HandleReminderAsync); }