More DB staff and house keeping and better emoji

This commit is contained in:
Karolis2011
2019-06-18 23:16:01 +03:00
parent 915a770175
commit 4c3791c091
14 changed files with 619 additions and 75 deletions

View File

@@ -11,7 +11,7 @@ using System.Linq;
namespace EventBot.Services
{
public abstract class DatabaseService: DbContext
public abstract class DatabaseService : DbContext
{
private readonly IServiceProvider _services;
private readonly DiscordSocketClient _discord;
@@ -36,6 +36,7 @@ namespace EventBot.Services
_discord = services.GetRequiredService<DiscordSocketClient>();
_discord.GuildAvailable += OnGuildAvaivable;
}
public DatabaseService(): base() {}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{

View File

@@ -1,46 +0,0 @@
using System;
using System.Collections.Generic;
using System.Text;
using NeoSmart.Unicode;
using System.Linq;
using Discord;
using DEmoji = Discord.Emoji;
using UEmoji = NeoSmart.Unicode.Emoji;
namespace EventBot.Services
{
public class EmoteService
{
private IEnumerable<string> emoji;
public EmoteService()
{
emoji = UEmoji.All.Select(e => e.Sequence.AsString);
}
public bool TryParse(string input, out IEmote emote)
{
if(Emote.TryParse(input, out Emote parsedEmote))
{
emote = parsedEmote;
return true;
}
if(emoji.Contains(input))
{
emote = new DEmoji(input);
return true;
}
emote = null;
return false;
}
public IEmote Parse(string input)
{
if (!TryParse(input, out IEmote parsed))
throw new ArgumentException("Failed to parse emote.");
return parsed;
}
}
}

View File

@@ -15,14 +15,12 @@ namespace EventBot.Services
{
private readonly DiscordSocketClient _discord;
private readonly DatabaseService _database;
private readonly EmoteService _emotes;
private readonly IServiceProvider _services;
public EventManagementService(IServiceProvider services)
{
_discord = services.GetRequiredService<DiscordSocketClient>();
_database = services.GetRequiredService<DatabaseService>();
_emotes = services.GetRequiredService<EmoteService>();
_services = services;
_discord.ReactionAdded += ReactionAddedAsync;
@@ -128,7 +126,7 @@ namespace EventBot.Services
var @event = _database.Events.FirstOrDefault(e => e.MessageId == message.Id);
if (@event != null)
{
var role = @event.Roles.FirstOrDefault(r => reaction.Emote.Equals(_emotes.Parse(r.Emote)));
var role = @event.Roles.FirstOrDefault(r => reaction.Emote.Equals(EmoteHelper.Parse(r.Emote)));
if(role != null)
{
var userMessage = await message.GetOrDownloadAsync();

View File

@@ -9,6 +9,8 @@ namespace EventBot.Services
{
public MySqlDatabaseService(IServiceProvider services, DbContextOptions options) : base(services, options) { }
public MySqlDatabaseService(IServiceProvider services) : base(services) { }
public MySqlDatabaseService() : base() { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);

View File

@@ -9,6 +9,7 @@ namespace EventBot.Services
{
public SqliteDatabaseService(IServiceProvider services, DbContextOptions options) : base(services, options) { }
public SqliteDatabaseService(IServiceProvider services) : base(services) {}
public SqliteDatabaseService() : base() { }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{