65 lines
2.2 KiB
C#
65 lines
2.2 KiB
C#
using Microsoft.Data.Sqlite;
|
|
using System;
|
|
|
|
namespace T3k3rg0.Helpers
|
|
{
|
|
public static class ReactionRoleStorage
|
|
{
|
|
private static readonly string DbPath = Environment.GetEnvironmentVariable("DB_ROLES_LOC");
|
|
|
|
public static ulong? GetRoleId(ulong messageId, string emojiRaw)
|
|
{
|
|
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
|
conn.Open();
|
|
|
|
using var cmd = conn.CreateCommand();
|
|
cmd.CommandText = @"
|
|
SELECT role_id FROM reaction_roles
|
|
WHERE message_id = @msg AND emoji = @emoji";
|
|
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
|
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
|
|
|
using var reader = cmd.ExecuteReader();
|
|
if (reader.Read())
|
|
{
|
|
return (ulong)(long)reader["role_id"];
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public static bool TryAddReactionRole(ulong messageId, string emojiRaw, ulong roleId)
|
|
{
|
|
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
|
conn.Open();
|
|
|
|
using var cmd = conn.CreateCommand();
|
|
cmd.CommandText = @"
|
|
INSERT OR IGNORE INTO reaction_roles (message_id, emoji, role_id)
|
|
VALUES (@msg, @emoji, @role)";
|
|
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
|
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
|
cmd.Parameters.AddWithValue("@role", (long)roleId);
|
|
|
|
int rowsAffected = cmd.ExecuteNonQuery();
|
|
return rowsAffected > 0;
|
|
}
|
|
|
|
public static bool TryRemoveReactionRole(ulong messageId, string emojiRaw)
|
|
{
|
|
using var conn = new SqliteConnection($"Data Source={DbPath}");
|
|
conn.Open();
|
|
|
|
using var cmd = conn.CreateCommand();
|
|
cmd.CommandText = @"
|
|
DELETE FROM reaction_roles
|
|
WHERE message_id = @msg AND emoji = @emoji";
|
|
cmd.Parameters.AddWithValue("@msg", (long)messageId);
|
|
cmd.Parameters.AddWithValue("@emoji", emojiRaw);
|
|
|
|
int rowsAffected = cmd.ExecuteNonQuery();
|
|
return rowsAffected > 0;
|
|
}
|
|
}
|
|
}
|
|
|