using System.Security.Cryptography; using Kruzya.TelegramBot.Core; using Kruzya.TelegramBot.Core.Service; using Telegram.Bot.Types; using West.TelegramBot.ContentStore.Model; namespace West.TelegramBot.ContentStore.Service; public class CapyApiService : IRandomMediaService { private readonly UserService _userService; private const int BeaverCount = 161; private readonly ThreadSafeRandom _random; public StoreItem StoreItem { get; } = new("capybara", "Капибара", 60, 120); public Task GetRandomMediaAsync(Chat chat, User user) { if (_userService.IsUserUnlucky(user.Id) && RandomNumberGenerator.GetInt32(2) == 1) { var beaverId = RandomNumberGenerator.GetInt32(BeaverCount); return Task.FromResult(RandomMediaFromUrl($"https://westdev.me/_kurwa/{beaverId}.jpg")); } return Task.FromResult(RandomMediaFromUrl($"https://api.capy.lol/v1/capybara?{_random.Next(0, 10000)}")); } public RandomMedia RandomMediaFromUrl(string url) => new(new InputFileUrl(url)); public CapyApiService(UserService userService, ThreadSafeRandom random) { _userService = userService; _random = random; } }