small cleanup
This commit is contained in:
parent
7399e8bac1
commit
a6c2ec0511
12 changed files with 49 additions and 66 deletions
|
@ -114,7 +114,7 @@ public sealed class Bot : IBot
|
|||
// svcs.Components.Remove<IPlanner, Planner>();
|
||||
// svcs.Components.Add<IPlanner, RemovablePlanner>();
|
||||
|
||||
svcs.AddSingleton<IBotCredentials, IBotCredentials>(_ => _credsProvider.GetCreds());
|
||||
svcs.AddSingleton<IBotCredentials>(_ => _credsProvider.GetCreds());
|
||||
svcs.AddSingleton<DbService, DbService>(_db);
|
||||
svcs.AddSingleton<IBotCredsProvider>(_credsProvider);
|
||||
svcs.AddSingleton<DiscordSocketClient>(Client);
|
||||
|
|
|
@ -546,7 +546,7 @@ public partial class Administration
|
|||
text = await repSvc.ReplaceAsync(text, repCtx);
|
||||
await Response().Channel(ch).Text(text).SendAsync();
|
||||
|
||||
await ctx.OkAsync();;
|
||||
await ctx.OkAsync();
|
||||
}
|
||||
|
||||
[Cmd]
|
||||
|
|
|
@ -31,7 +31,6 @@ public class PlantPickService : IEService, IExecNoCommand
|
|||
|
||||
public PlantPickService(
|
||||
DbService db,
|
||||
CommandHandler cmd,
|
||||
IBotStrings strings,
|
||||
IImageCache images,
|
||||
FontProvider fonts,
|
||||
|
@ -107,7 +106,6 @@ public class PlantPickService : IEService, IExecNoCommand
|
|||
/// Get a random currency image stream, with an optional password sticked onto it.
|
||||
/// </summary>
|
||||
/// <param name="pass">Optional password to add to top left corner.</param>
|
||||
/// <param name="extension">Extension of the file, defaults to png</param>
|
||||
/// <returns>Stream of the currency image</returns>
|
||||
public async Task<(Stream, string)> GetRandomCurrencyImageAsync(string pass)
|
||||
{
|
||||
|
|
|
@ -3,6 +3,7 @@ using EllieBot.Modules.Gambling.Common;
|
|||
using EllieBot.Modules.Gambling.Common.Waifu;
|
||||
using EllieBot.Modules.Gambling.Services;
|
||||
using EllieBot.Db.Models;
|
||||
using System.Globalization;
|
||||
|
||||
namespace EllieBot.Modules.Gambling;
|
||||
|
||||
|
@ -152,12 +153,12 @@ public partial class Gambling
|
|||
await Response().Confirm(strs.waifu_divorced_notlike(N(amount))).SendAsync();
|
||||
else if (result == DivorceResult.NotYourWife)
|
||||
await Response().Error(strs.waifu_not_yours).SendAsync();
|
||||
else
|
||||
else if (remaining is { } rem)
|
||||
{
|
||||
await Response()
|
||||
.Error(strs.waifu_recent_divorce(
|
||||
Format.Bold(((int)remaining?.TotalHours).ToString()),
|
||||
Format.Bold(remaining?.Minutes.ToString())))
|
||||
Format.Bold(((int)rem.TotalHours).ToString()),
|
||||
Format.Bold(rem.Minutes.ToString())))
|
||||
.SendAsync();
|
||||
}
|
||||
}
|
||||
|
@ -237,7 +238,7 @@ public partial class Gambling
|
|||
private string GetLbString(WaifuLbResult w)
|
||||
{
|
||||
var claimer = "no one";
|
||||
var status = string.Empty;
|
||||
string status;
|
||||
|
||||
var waifuUsername = w.Username.TrimTo(20);
|
||||
var claimerUsername = w.Claimer?.TrimTo(20);
|
||||
|
@ -376,7 +377,8 @@ public partial class Gambling
|
|||
if (sucess)
|
||||
{
|
||||
await Response()
|
||||
.Confirm(strs.waifu_gift(Format.Bold($"{GetCountString(items)}{items.Item} {items.Item.ItemEmoji}"),
|
||||
.Confirm(strs.waifu_gift(
|
||||
Format.Bold($"{GetCountString(items)}{items.Item} {items.Item.ItemEmoji}"),
|
||||
Format.Bold(waifu.ToString())))
|
||||
.SendAsync();
|
||||
}
|
||||
|
|
|
@ -107,9 +107,9 @@ public partial class Games
|
|||
return sb.ToString();
|
||||
}
|
||||
|
||||
private EmbedBuilder? questionEmbed = null;
|
||||
private IUserMessage? questionMessage = null;
|
||||
private bool showHowToQuit = false;
|
||||
private EmbedBuilder? questionEmbed;
|
||||
private IUserMessage? questionMessage;
|
||||
private bool showHowToQuit;
|
||||
|
||||
private void RegisterEvents(TriviaGame trivia)
|
||||
{
|
|
@ -11,12 +11,19 @@ public sealed class TriviaGame
|
|||
private readonly IQuestionPool _questionPool;
|
||||
|
||||
#region Events
|
||||
|
||||
public event Func<TriviaGame, TriviaQuestion, Task> OnQuestion = static delegate { return Task.CompletedTask; };
|
||||
public event Func<TriviaGame, TriviaQuestion, Task> OnHint = static delegate { return Task.CompletedTask; };
|
||||
public event Func<TriviaGame, Task> OnStats = static delegate { return Task.CompletedTask; };
|
||||
public event Func<TriviaGame, TriviaUser, TriviaQuestion, bool, Task> OnGuess = static delegate { return Task.CompletedTask; };
|
||||
|
||||
public event Func<TriviaGame, TriviaUser, TriviaQuestion, bool, Task> OnGuess = static delegate
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
|
||||
public event Func<TriviaGame, TriviaQuestion, Task> OnTimeout = static delegate { return Task.CompletedTask; };
|
||||
public event Func<TriviaGame, Task> OnEnded = static delegate { return Task.CompletedTask; };
|
||||
|
||||
#endregion
|
||||
|
||||
private bool _isStopped;
|
||||
|
@ -24,7 +31,7 @@ public sealed class TriviaGame
|
|||
public TriviaQuestion? CurrentQuestion { get; set; }
|
||||
|
||||
|
||||
private readonly ConcurrentDictionary<ulong, int> _users = new ();
|
||||
private readonly ConcurrentDictionary<ulong, int> _users = new();
|
||||
|
||||
private readonly Channel<(TriviaUser User, string Input)> _inputs
|
||||
= Channel.CreateUnbounded<(TriviaUser, string)>(new UnboundedChannelOptions
|
||||
|
@ -41,8 +48,8 @@ public sealed class TriviaGame
|
|||
_questionPool = _opts.IsPokemon
|
||||
? new PokemonQuestionPool(cache)
|
||||
: new DefaultQuestionPool(cache);
|
||||
|
||||
}
|
||||
|
||||
public async Task RunAsync()
|
||||
{
|
||||
await GameLoop();
|
||||
|
@ -50,7 +57,8 @@ public sealed class TriviaGame
|
|||
|
||||
private async Task GameLoop()
|
||||
{
|
||||
Task TimeOutFactory() => Task.Delay(_opts.QuestionTimer * 1000 / 2);
|
||||
Task TimeOutFactory()
|
||||
=> Task.Delay(_opts.QuestionTimer * 1000 / 2);
|
||||
|
||||
var errorCount = 0;
|
||||
var inactivity = 0;
|
||||
|
@ -91,7 +99,8 @@ public sealed class TriviaGame
|
|||
{
|
||||
// clear out all of the past guesses
|
||||
while (_inputs.Reader.TryRead(out _))
|
||||
;
|
||||
{
|
||||
}
|
||||
|
||||
await OnQuestion(this, question);
|
||||
}
|
||||
|
@ -121,7 +130,7 @@ public sealed class TriviaGame
|
|||
if (task == halfGuessTimerTask)
|
||||
{
|
||||
readCancel.Cancel();
|
||||
|
||||
|
||||
// if hint is already sent, means time expired
|
||||
// break (end the round)
|
||||
if (hintSent)
|
||||
|
@ -213,7 +222,7 @@ public sealed class TriviaGame
|
|||
|
||||
public async Task TriggerQuestionAsync()
|
||||
{
|
||||
if(CurrentQuestion is TriviaQuestion q)
|
||||
if (CurrentQuestion is TriviaQuestion q)
|
||||
await OnQuestion(this, q);
|
||||
}
|
||||
}
|
|
@ -61,8 +61,8 @@ public class RadioResolver : IRadioResolver
|
|||
try
|
||||
{
|
||||
var m = _m3URegex.Match(file);
|
||||
var res = m.Groups["url"]?.ToString();
|
||||
return res?.Trim();
|
||||
var res = m.Groups["url"].ToString();
|
||||
return res.Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@ -76,8 +76,8 @@ public class RadioResolver : IRadioResolver
|
|||
try
|
||||
{
|
||||
var m = _asxRegex.Match(file);
|
||||
var res = m.Groups["url"]?.ToString();
|
||||
return res?.Trim();
|
||||
var res = m.Groups["url"].ToString();
|
||||
return res.Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
@ -91,8 +91,8 @@ public class RadioResolver : IRadioResolver
|
|||
try
|
||||
{
|
||||
var m = _xspfRegex.Match(file);
|
||||
var res = m.Groups["url"]?.ToString();
|
||||
return res?.Trim();
|
||||
var res = m.Groups["url"].ToString();
|
||||
return res.Trim();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
|
@ -19,16 +19,11 @@ public sealed class PatronageService
|
|||
public int Priority
|
||||
=> int.MinValue;
|
||||
|
||||
private static readonly PatronTier[] _tiers = Enum.GetValues<PatronTier>();
|
||||
|
||||
private readonly PatronageConfig _pConf;
|
||||
private readonly DbService _db;
|
||||
private readonly DiscordSocketClient _client;
|
||||
private readonly ISubscriptionHandler _subsHandler;
|
||||
|
||||
private static readonly TypedKey<long> _quotaKey
|
||||
= new($"quota:last_hourly_reset");
|
||||
|
||||
private readonly IBotCache _cache;
|
||||
private readonly IBotCredsProvider _creds;
|
||||
private readonly IMessageSenderService _sender;
|
||||
|
@ -133,19 +128,19 @@ public sealed class PatronageService
|
|||
// user is charged again for this month
|
||||
// if his sub would end in teh future, extend it by one month.
|
||||
// if it's not, just add 1 month to the last charge date
|
||||
var count = await ctx.GetTable<PatronUser>()
|
||||
.Where(x => x.UniquePlatformUserId
|
||||
== subscriber.UniquePlatformUserId)
|
||||
.UpdateAsync(old => new()
|
||||
{
|
||||
UserId = subscriber.UserId,
|
||||
AmountCents = subscriber.Cents,
|
||||
LastCharge = lastChargeUtc,
|
||||
ValidThru = old.ValidThru >= todayDate
|
||||
// ? Sql.DateAdd(Sql.DateParts.Month, 1, old.ValidThru).Value
|
||||
? old.ValidThru.AddMonths(1)
|
||||
: dateInOneMonth,
|
||||
});
|
||||
await ctx.GetTable<PatronUser>()
|
||||
.Where(x => x.UniquePlatformUserId
|
||||
== subscriber.UniquePlatformUserId)
|
||||
.UpdateAsync(old => new()
|
||||
{
|
||||
UserId = subscriber.UserId,
|
||||
AmountCents = subscriber.Cents,
|
||||
LastCharge = lastChargeUtc,
|
||||
ValidThru = old.ValidThru >= todayDate
|
||||
// ? Sql.DateAdd(Sql.DateParts.Month, 1, old.ValidThru).Value
|
||||
? old.ValidThru.AddMonths(1)
|
||||
: dateInOneMonth,
|
||||
});
|
||||
|
||||
|
||||
dbPatron.UserId = subscriber.UserId;
|
||||
|
@ -330,7 +325,7 @@ public sealed class PatronageService
|
|||
{
|
||||
if (!_pConf.Data.IsEnabled)
|
||||
return _infiniteQuota;
|
||||
|
||||
|
||||
var maybePatron = await GetPatronAsync(userId);
|
||||
|
||||
if (maybePatron is not { } patron)
|
||||
|
|
|
@ -65,18 +65,6 @@ public partial class Searches
|
|||
var change = (stock.Price - stock.Close).ToString("N2", Culture);
|
||||
var changePercent = (1 - (stock.Close / stock.Price)).ToString("P1", Culture);
|
||||
|
||||
var sign50 = stock.Change50d >= 0
|
||||
? "\\🔼"
|
||||
: "\\🔻";
|
||||
|
||||
var change50 = (stock.Change50d).ToString("P1", Culture);
|
||||
|
||||
var sign200 = stock.Change200d >= 0
|
||||
? "\\🔼"
|
||||
: "\\🔻";
|
||||
|
||||
var change200 = (stock.Change200d).ToString("P1", Culture);
|
||||
|
||||
var price = stock.Price.ToString("C2", localCulture);
|
||||
|
||||
var eb = _sender.CreateEmbed()
|
||||
|
|
|
@ -19,7 +19,6 @@ public sealed class GiveawayService : IEService, IReadyExecutor
|
|||
private readonly IMemoryCache _cache;
|
||||
private SortedSet<GiveawayModel> _giveawayCache = new SortedSet<GiveawayModel>();
|
||||
private readonly EllieRandom _rng;
|
||||
private readonly ConcurrentDictionary<int, GiveawayRerollData> _rerolls = new();
|
||||
|
||||
public GiveawayService(DbService db, IBotCredentials creds, DiscordSocketClient client,
|
||||
IMessageSenderService sender, IBotStrings strings, ILocalization localization, IMemoryCache cache)
|
||||
|
|
|
@ -20,14 +20,6 @@ public static class DryIocExtensions
|
|||
return container;
|
||||
}
|
||||
|
||||
public static IContainer AddSingleton<TSvc, TImpl>(this IContainer container, Func<IResolverContext, TSvc> factory)
|
||||
where TImpl : TSvc
|
||||
{
|
||||
container.RegisterDelegate(factory, Reuse.Singleton);
|
||||
|
||||
return container;
|
||||
}
|
||||
|
||||
public static IContainer AddSingleton<TImpl>(this IContainer container)
|
||||
{
|
||||
container.Register<TImpl>(Reuse.Singleton);
|
|
@ -34,7 +34,7 @@ public sealed class MarmaladeNinjectIocModule : IIocModule, IDisposable
|
|||
if (isLoaded)
|
||||
return;
|
||||
|
||||
foreach (var (type, data) in _types)
|
||||
foreach (var (type, _) in _types)
|
||||
{
|
||||
var attribute = type.GetCustomAttribute<svcAttribute>()!;
|
||||
|
||||
|
|
Loading…
Reference in a new issue