Removed some unused code, no functional change
This commit is contained in:
parent
66560bb769
commit
d428fc5532
7 changed files with 15 additions and 113 deletions
|
@ -1,6 +1,5 @@
|
||||||
#nullable disable
|
#nullable disable
|
||||||
using Microsoft.Extensions.Caching.Memory;
|
using Microsoft.Extensions.Caching.Memory;
|
||||||
using EllieBot.Common.ModuleBehaviors;
|
|
||||||
using EllieBot.Modules.Games.Common;
|
using EllieBot.Modules.Games.Common;
|
||||||
using EllieBot.Modules.Games.Common.Acrophobia;
|
using EllieBot.Modules.Games.Common.Acrophobia;
|
||||||
using EllieBot.Modules.Games.Common.Nunchi;
|
using EllieBot.Modules.Games.Common.Nunchi;
|
||||||
|
@ -8,11 +7,10 @@ using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace EllieBot.Modules.Games.Services;
|
namespace EllieBot.Modules.Games.Services;
|
||||||
|
|
||||||
public class GamesService : IEService, IReadyExecutor
|
public class GamesService : IEService
|
||||||
{
|
{
|
||||||
private const string TYPING_ARTICLES_PATH = "data/typing_articles3.json";
|
private const string TYPING_ARTICLES_PATH = "data/typing_articles3.json";
|
||||||
|
|
||||||
public ConcurrentDictionary<ulong, GirlRating> GirlRatings { get; } = new();
|
|
||||||
|
|
||||||
public IReadOnlyList<string> EightBallResponses
|
public IReadOnlyList<string> EightBallResponses
|
||||||
=> _gamesConfig.Data.EightBallResponses;
|
=> _gamesConfig.Data.EightBallResponses;
|
||||||
|
@ -25,7 +23,6 @@ public class GamesService : IEService, IReadyExecutor
|
||||||
public ConcurrentDictionary<ulong, TypingGame> RunningContests { get; } = new();
|
public ConcurrentDictionary<ulong, TypingGame> RunningContests { get; } = new();
|
||||||
public ConcurrentDictionary<ulong, NunchiGame> NunchiGames { get; } = new();
|
public ConcurrentDictionary<ulong, NunchiGame> NunchiGames { get; } = new();
|
||||||
|
|
||||||
public AsyncLazy<RatingTexts> Ratings { get; }
|
|
||||||
private readonly GamesConfigService _gamesConfig;
|
private readonly GamesConfigService _gamesConfig;
|
||||||
|
|
||||||
private readonly IHttpClientFactory _httpFactory;
|
private readonly IHttpClientFactory _httpFactory;
|
||||||
|
@ -41,7 +38,6 @@ public class GamesService : IEService, IReadyExecutor
|
||||||
SizeLimit = 500_000
|
SizeLimit = 500_000
|
||||||
});
|
});
|
||||||
|
|
||||||
Ratings = new(GetRatingTexts);
|
|
||||||
_rng = new EllieRandom();
|
_rng = new EllieRandom();
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -55,22 +51,6 @@ public class GamesService : IEService, IReadyExecutor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task OnReadyAsync()
|
|
||||||
{
|
|
||||||
// reset rating once a day
|
|
||||||
using var timer = new PeriodicTimer(TimeSpan.FromDays(1));
|
|
||||||
while (await timer.WaitForNextTickAsync())
|
|
||||||
GirlRatings.Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task<RatingTexts> GetRatingTexts()
|
|
||||||
{
|
|
||||||
using var http = _httpFactory.CreateClient();
|
|
||||||
var text = await http.GetStringAsync(
|
|
||||||
"https://nadeko-pictures.nyc3.digitaloceanspaces.com/other/rategirl/rates.json");
|
|
||||||
return JsonConvert.DeserializeObject<RatingTexts>(text);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void AddTypingArticle(IUser user, string text)
|
public void AddTypingArticle(IUser user, string text)
|
||||||
{
|
{
|
||||||
TypingArticles.Add(new()
|
TypingArticles.Add(new()
|
||||||
|
@ -104,15 +84,4 @@ public class GamesService : IEService, IReadyExecutor
|
||||||
File.WriteAllText(TYPING_ARTICLES_PATH, JsonConvert.SerializeObject(articles));
|
File.WriteAllText(TYPING_ARTICLES_PATH, JsonConvert.SerializeObject(articles));
|
||||||
return removed;
|
return removed;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RatingTexts
|
|
||||||
{
|
|
||||||
public string Nog { get; set; }
|
|
||||||
public string Tra { get; set; }
|
|
||||||
public string Fun { get; set; }
|
|
||||||
public string Uni { get; set; }
|
|
||||||
public string Wif { get; set; }
|
|
||||||
public string Dat { get; set; }
|
|
||||||
public string Dan { get; set; }
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,61 +0,0 @@
|
||||||
#nullable disable
|
|
||||||
using SixLabors.ImageSharp;
|
|
||||||
using SixLabors.ImageSharp.Processing;
|
|
||||||
using Image = SixLabors.ImageSharp.Image;
|
|
||||||
|
|
||||||
namespace EllieBot.Modules.Games.Common;
|
|
||||||
|
|
||||||
public class GirlRating
|
|
||||||
{
|
|
||||||
public double Crazy { get; }
|
|
||||||
public double Hot { get; }
|
|
||||||
public int Roll { get; }
|
|
||||||
public string Advice { get; }
|
|
||||||
|
|
||||||
public AsyncLazy<Stream> Stream { get; }
|
|
||||||
private readonly IImageCache _images;
|
|
||||||
|
|
||||||
public GirlRating(
|
|
||||||
IImageCache images,
|
|
||||||
double crazy,
|
|
||||||
double hot,
|
|
||||||
int roll,
|
|
||||||
string advice)
|
|
||||||
{
|
|
||||||
_images = images;
|
|
||||||
Crazy = crazy;
|
|
||||||
Hot = hot;
|
|
||||||
Roll = roll;
|
|
||||||
Advice = advice; // convenient to have it here, even though atm there are only few different ones.
|
|
||||||
|
|
||||||
Stream = new(async () =>
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var bgBytes = await _images.GetRategirlBgAsync();
|
|
||||||
using var img = Image.Load(bgBytes);
|
|
||||||
const int minx = 35;
|
|
||||||
const int miny = 385;
|
|
||||||
const int length = 345;
|
|
||||||
|
|
||||||
var pointx = (int)(minx + (length * (Hot / 10)));
|
|
||||||
var pointy = (int)(miny - (length * ((Crazy - 4) / 6)));
|
|
||||||
|
|
||||||
var dotBytes = await _images.GetRategirlDotAsync();
|
|
||||||
using (var pointImg = Image.Load(dotBytes))
|
|
||||||
{
|
|
||||||
img.Mutate(x => x.DrawImage(pointImg, new(pointx - 10, pointy - 10), new GraphicsOptions()));
|
|
||||||
}
|
|
||||||
|
|
||||||
var imgStream = new MemoryStream();
|
|
||||||
img.SaveAsPng(imgStream);
|
|
||||||
return imgStream;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Log.Warning(ex, "Error getting RateGirl image");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -60,12 +60,6 @@ public sealed class ImageCache : IImageCache, IEService
|
||||||
public Task<byte[]?> GetXpBackgroundImageAsync()
|
public Task<byte[]?> GetXpBackgroundImageAsync()
|
||||||
=> GetImageDataAsync(_ic.Data.Xp.Bg);
|
=> GetImageDataAsync(_ic.Data.Xp.Bg);
|
||||||
|
|
||||||
public Task<byte[]?> GetRategirlBgAsync()
|
|
||||||
=> GetImageDataAsync(_ic.Data.Rategirl.Matrix);
|
|
||||||
|
|
||||||
public Task<byte[]?> GetRategirlDotAsync()
|
|
||||||
=> GetImageDataAsync(_ic.Data.Rategirl.Dot);
|
|
||||||
|
|
||||||
public Task<byte[]?> GetDiceAsync(int num)
|
public Task<byte[]?> GetDiceAsync(int num)
|
||||||
=> GetImageDataAsync(_ic.Data.Dice[num]);
|
=> GetImageDataAsync(_ic.Data.Dice[num]);
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,11 @@ namespace EllieBot.Common;
|
||||||
public partial class ImageUrls : ICloneable<ImageUrls>
|
public partial class ImageUrls : ICloneable<ImageUrls>
|
||||||
{
|
{
|
||||||
[Comment("DO NOT CHANGE")]
|
[Comment("DO NOT CHANGE")]
|
||||||
public int Version { get; set; } = 4;
|
public int Version { get; set; } = 5;
|
||||||
|
|
||||||
public CoinData Coins { get; set; }
|
public CoinData Coins { get; set; }
|
||||||
public Uri[] Currency { get; set; }
|
public Uri[] Currency { get; set; }
|
||||||
public Uri[] Dice { get; set; }
|
public Uri[] Dice { get; set; }
|
||||||
public RategirlData Rategirl { get; set; }
|
|
||||||
public XpData Xp { get; set; }
|
public XpData Xp { get; set; }
|
||||||
|
|
||||||
public SlotData Slots { get; set; }
|
public SlotData Slots { get; set; }
|
||||||
|
@ -30,12 +29,6 @@ public partial class ImageUrls : ICloneable<ImageUrls>
|
||||||
public Uri[] Tails { get; set; }
|
public Uri[] Tails { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RategirlData
|
|
||||||
{
|
|
||||||
public Uri Matrix { get; set; }
|
|
||||||
public Uri Dot { get; set; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public class XpData
|
public class XpData
|
||||||
{
|
{
|
||||||
public Uri Bg { get; set; }
|
public Uri Bg { get; set; }
|
||||||
|
|
|
@ -6,8 +6,6 @@ public interface IImageCache
|
||||||
Task<byte[]?> GetTailsImageAsync();
|
Task<byte[]?> GetTailsImageAsync();
|
||||||
Task<byte[]?> GetCurrencyImageAsync();
|
Task<byte[]?> GetCurrencyImageAsync();
|
||||||
Task<byte[]?> GetXpBackgroundImageAsync();
|
Task<byte[]?> GetXpBackgroundImageAsync();
|
||||||
Task<byte[]?> GetRategirlBgAsync();
|
|
||||||
Task<byte[]?> GetRategirlDotAsync();
|
|
||||||
Task<byte[]?> GetDiceAsync(int num);
|
Task<byte[]?> GetDiceAsync(int num);
|
||||||
Task<byte[]?> GetSlotEmojiAsync(int number);
|
Task<byte[]?> GetSlotEmojiAsync(int number);
|
||||||
Task<byte[]?> GetSlotBgAsync();
|
Task<byte[]?> GetSlotBgAsync();
|
||||||
|
|
|
@ -15,5 +15,17 @@ public sealed class ImagesConfig : ConfigServiceBase<ImageUrls>
|
||||||
public ImagesConfig(IConfigSeria serializer, IPubSub pubSub)
|
public ImagesConfig(IConfigSeria serializer, IPubSub pubSub)
|
||||||
: base(PATH, serializer, pubSub, _changeKey)
|
: base(PATH, serializer, pubSub, _changeKey)
|
||||||
{
|
{
|
||||||
|
Migrate();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Migrate()
|
||||||
|
{
|
||||||
|
if (data.Version < 5)
|
||||||
|
{
|
||||||
|
ModifyConfig(c =>
|
||||||
|
{
|
||||||
|
c.Version = 5;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
# DO NOT CHANGE
|
# DO NOT CHANGE
|
||||||
version: 4
|
version: 5
|
||||||
coins:
|
coins:
|
||||||
heads:
|
heads:
|
||||||
- https://cdn.nadeko.bot/coins/heads3.png
|
- https://cdn.nadeko.bot/coins/heads3.png
|
||||||
|
@ -20,9 +20,6 @@ dice:
|
||||||
- https://cdn.nadeko.bot/other/dice/7.png
|
- https://cdn.nadeko.bot/other/dice/7.png
|
||||||
- https://cdn.nadeko.bot/other/dice/8.png
|
- https://cdn.nadeko.bot/other/dice/8.png
|
||||||
- https://cdn.nadeko.bot/other/dice/9.png
|
- https://cdn.nadeko.bot/other/dice/9.png
|
||||||
rategirl:
|
|
||||||
matrix: https://cdn.nadeko.bot/other/rategirl/matrix.png
|
|
||||||
dot: https://cdn.nadeko.bot/other/rategirl/dot.png
|
|
||||||
xp:
|
xp:
|
||||||
bg: https://cdn.nadeko.bot/other/xp/bg_k.png
|
bg: https://cdn.nadeko.bot/other/xp/bg_k.png
|
||||||
rip:
|
rip:
|
||||||
|
|
Loading…
Reference in a new issue