Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading.Tasks;
- namespace MyBot
- {
- public class Program
- {
- public static void Main(string[] args)
- => new Program().MainAsync().GetAwaiter().GetResult();
- public async Task MainAsync()
- {
- var client = new DiscordSocketClient();
- client.Log += Log;
- string token = "abcdefg..."; // Remember to keep this private!
- await client.LoginAsync(TokenType.Client, token);
- await client.StartAsync();
- var killmailChannel = client.GroupChannels.FirstOrDefault(x => x.Name === "yellowtext");
- if (killmailChannel != null)
- {
- var lastMessageId = killmailChannel.GetCachedMessages().FirstOrDefault()?.Id;
- while (lastMessageId != null)
- {
- var messages = await killmailChannel.GetMessagesAsync(currentMessageId)
- foreach(var message in messages)
- {
- await InsertRawKillmailAsync(message);
- }
- lastMessageId = messages.Last()?.Id;
- }
- }
- // Block this task until the program is closed.
- await Task.Delay(-1);
- }
- private async Task MessageReceived(SocketMessage message)
- {
- if (message.Channel.Name === "yellowtext")
- {
- await InsertRawKillmail(message.Id, messae.Content)
- }
- }
- private Task Log(LogMessage msg)
- {
- Console.WriteLine(msg.ToString());
- return Task.CompletedTask;
- }
- private async Task InsertRawKillmailAsync(UInt64 messageId, string message)
- {
- var sql = @"
- INSERT INTO killmail_raw (discord_message_id, message, status_type_id) Values (@MessageId, @Message, @StatusTypeId);
- ON CONFLICT (discord_message_id)
- DO NOTHING
- ";
- return connection.ExecuteAsync(sql, new { MessageId = messageId, Message = message, StatusTypeId = 0});
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement