1
Fork 0
mirror of https://gitlab.com/Kwoth/nadekobot.git synced 2024-10-02 12:09:07 +00:00

dev: small cleanup, removed qodana

This commit is contained in:
Kwoth 2024-08-05 14:13:16 +00:00
parent dd49d202b7
commit 764babdf06
13 changed files with 49 additions and 80 deletions

View file

@ -165,17 +165,3 @@ docker-build:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_TAG
exists:
- Dockerfile
qodana:
stage: test
allow_failure: true
image:
name: jetbrains/qodana-dotnet:latest
entrypoint: [""]
variables:
QODANA_TOKEN: $qodana_token
script:
- qodana
artifacts:
paths:
- qodana

View file

@ -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);

View file

@ -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]

View file

@ -31,7 +31,6 @@ public class PlantPickService : INService, IExecNoCommand
public PlantPickService(
DbService db,
CommandHandler cmd,
IBotStrings strings,
IImageCache images,
FontProvider fonts,
@ -107,7 +106,6 @@ public class PlantPickService : INService, 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)
{

View file

@ -3,6 +3,7 @@ using NadekoBot.Modules.Gambling.Common;
using NadekoBot.Modules.Gambling.Common.Waifu;
using NadekoBot.Modules.Gambling.Services;
using NadekoBot.Db.Models;
using System.Globalization;
namespace NadekoBot.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,14 +377,15 @@ 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();
}
else
await Response().Error(strs.not_enough(CurrencySign)).SendAsync();
}
private static string GetCountString(MultipleWaifuItems items)
=> items.Count > 1
? $"{items.Count}x "

View file

@ -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)
{

View file

@ -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);
}
}

View file

@ -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
{

View file

@ -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;

View file

@ -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()

View file

@ -19,7 +19,6 @@ public sealed class GiveawayService : INService, IReadyExecutor
private readonly IMemoryCache _cache;
private SortedSet<GiveawayModel> _giveawayCache = new SortedSet<GiveawayModel>();
private readonly NadekoRandom _rng;
private readonly ConcurrentDictionary<int, GiveawayRerollData> _rerolls = new();
public GiveawayService(DbService db, IBotCredentials creds, DiscordSocketClient client,
IMessageSenderService sender, IBotStrings strings, ILocalization localization, IMemoryCache cache)

View file

@ -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);

View file

@ -34,7 +34,7 @@ public sealed class MedusaNinjectIocModule : IIocModule, IDisposable
if (isLoaded)
return;
foreach (var (type, data) in _types)
foreach (var (type, _) in _types)
{
var attribute = type.GetCustomAttribute<svcAttribute>()!;