Files
telegram-bot/modules/ContentStore/Service/AnimBoobsService.cs
2023-01-02 23:31:05 +02:00

43 lines
1.3 KiB
C#

using Kruzya.TelegramBot.Core.Data;
using Kruzya.TelegramBot.Core.Extensions;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using West.TelegramBot.ContentStore.Model;
namespace West.TelegramBot.ContentStore.Service;
public class AnimBoobsService : IRandomMediaService
{
private readonly CoreContext _db;
private readonly HttpClient _httpClient;
public StoreItem StoreItem { get; } = new("anim_boobs", "Сиськи движущиеся", 120, 40);
public AnimBoobsService(CoreContext db)
{
_db = db;
_httpClient = new HttpClient()
{
BaseAddress = new Uri("https://westdev.me/_boobs/")
};
}
public async Task<RandomMedia> GetRandomMediaAsync()
{
var fileName = await _httpClient.GetStringAsync("index.php");
// https://bugs.telegram.org/c/23674 workaround
var video = await _httpClient.GetStreamAsync($"https://westdev.me/_boobs/media/{fileName}");
return new RandomMedia(new InputFile(video, fileName))
{
Type = InputMediaType.Video,
Nsfw = true
};
}
public async Task<bool> CanView(Chat chat, User user)
{
var option = await _db.UserValues.FindOrCreateOption(chat.Id, "AllowNSFW");
return option.GetValue(false);
}
}