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);
 }
Beispiel #3
0
 public MsgWorkerTests()
 {
     jworker = new JsonSerializer <IsoField>();
     this.serviceContainer = Framework.Container;
     this.mainMsgWorker    = this.serviceContainer.GetInstance <IMessageWorker>("mainMsgWorker");
     this.df61MsgWorker    = this.serviceContainer.GetInstance <IMessageWorker>("df61MsgWorker");
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
 public ReminderCommand(
     ISchedulerService schedulerService,
     IMessageWorker <IDiscordMessage> messageWorker,
     IDiscordClient discordClient)
 {
     this.messageWorker  = messageWorker;
     this.discordClient  = discordClient;
     reminderWorkerGroup = schedulerService
                           .CreateWorkerGroup("miki:reminders", HandleReminderAsync);
 }