Advertisement
Guest User

Untitled

a guest
Jul 21st, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. using System;
  2. using System.Threading.Tasks;
  3.  
  4. namespace MyBot
  5. {
  6.     public class Program
  7.     {
  8.         public static void Main(string[] args)
  9.             => new Program().MainAsync().GetAwaiter().GetResult();
  10.  
  11.         public async Task MainAsync()
  12.         {
  13.             var client = new DiscordSocketClient();
  14.  
  15.             client.Log += Log;
  16.  
  17.             string token = "abcdefg..."; // Remember to keep this private!
  18.             await client.LoginAsync(TokenType.Client, token);
  19.             await client.StartAsync();
  20.  
  21.             var killmailChannel = client.GroupChannels.FirstOrDefault(x => x.Name === "yellowtext");
  22.             if (killmailChannel != null)
  23.             {
  24.                 var lastMessageId = killmailChannel.GetCachedMessages().FirstOrDefault()?.Id;
  25.                 while (lastMessageId != null)
  26.                 {
  27.                     var messages = await killmailChannel.GetMessagesAsync(currentMessageId)
  28.                     foreach(var message in messages)
  29.                     {
  30.                         await InsertRawKillmailAsync(message);
  31.                     }
  32.                     lastMessageId = messages.Last()?.Id;
  33.                 }
  34.             }
  35.  
  36.             // Block this task until the program is closed.
  37.             await Task.Delay(-1);            
  38.         }
  39.  
  40.         private async Task MessageReceived(SocketMessage message)
  41.         {
  42.             if (message.Channel.Name === "yellowtext")
  43.             {
  44.                 await InsertRawKillmail(message.Id, messae.Content)
  45.             }
  46.         }
  47.  
  48.         private Task Log(LogMessage msg)
  49.         {
  50.             Console.WriteLine(msg.ToString());
  51.             return Task.CompletedTask;
  52.         }
  53.  
  54.         private async Task InsertRawKillmailAsync(UInt64 messageId, string message)
  55.         {
  56.             var sql = @"
  57.            INSERT INTO killmail_raw (discord_message_id, message, status_type_id) Values (@MessageId, @Message, @StatusTypeId);
  58.            ON CONFLICT (discord_message_id)
  59.            DO NOTHING
  60.            ";
  61.  
  62.             return connection.ExecuteAsync(sql, new { MessageId = messageId, Message = message, StatusTypeId = 0});
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement