using Kruzya.TelegramBot.Core.Data; using Kruzya.TelegramBot.Core.Extensions; using Newtonsoft.Json; using Telegram.Bot.Types; using West.TelegramBot.ContentStore.Model; namespace West.TelegramBot.ContentStore.Service; public class OBoobsService : IRandomMediaService { private readonly CoreContext _db; private readonly HttpClient _httpClient; public StoreItem StoreItem { get; } = new("boobs", "Сиськи", 60, 30); public OBoobsService(CoreContext db) { _db = db; _httpClient = new HttpClient { BaseAddress = new Uri("http://api.oboobs.ru") }; } public async Task GetRandomMediaAsync() { // "/boobs/{start=0; sql offset}/{count=1; sql limit}/{order=-id;[id,rank,-rank,interest,-interest,random]}/ var httpResp = await _httpClient.GetAsync("boobs/1/1/random"); var boobsResponse = JsonConvert.DeserializeObject>(await httpResp.Content.ReadAsStringAsync()); var boobsItem = boobsResponse![0]; var boobsId = boobsItem.Id.ToString("D5"); return new RandomMedia(new InputFileUrl($"https://media.oboobs.ru/boobs/{boobsId}.jpg"), boobsItem.Model, true); } public async Task CanView(Chat chat, User user) { var option = await _db.UserValues.FindOrCreateOption(chat.Id, "AllowNSFW"); return option.GetValue(false); } }