mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
[store] hide nsfw content behind spoiler
This commit is contained in:
@@ -7,6 +7,7 @@ using Kruzya.TelegramBot.Core.Extensions;
|
|||||||
using Kruzya.TelegramBot.Core.Service;
|
using Kruzya.TelegramBot.Core.Service;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Telegram.Bot;
|
using Telegram.Bot;
|
||||||
|
using Telegram.Bot.Types;
|
||||||
using Telegram.Bot.Types.Enums;
|
using Telegram.Bot.Types.Enums;
|
||||||
using Telegram.Bot.Types.ReplyMarkups;
|
using Telegram.Bot.Types.ReplyMarkups;
|
||||||
using West.TelegramBot.ContentStore.Service;
|
using West.TelegramBot.ContentStore.Service;
|
||||||
@@ -113,13 +114,24 @@ public class Store : BotEventHandler
|
|||||||
|
|
||||||
var randomMedia = await mediaService!.GetRandomMediaAsync();
|
var randomMedia = await mediaService!.GetRandomMediaAsync();
|
||||||
var file = randomMedia.File;
|
var file = randomMedia.File;
|
||||||
|
|
||||||
switch (randomMedia.Type)
|
switch (randomMedia.Type)
|
||||||
{
|
{
|
||||||
case InputMediaType.Photo:
|
case InputMediaType.Photo:
|
||||||
await Bot.SendPhotoAsync(Chat.Id, file, 0, randomMedia.Caption, replyToMessageId: messageId, parseMode: ParseMode.Html);
|
await Bot.SendPhotoAsync(Chat.Id, file,
|
||||||
|
caption: randomMedia.Caption,
|
||||||
|
replyToMessageId: messageId,
|
||||||
|
parseMode: ParseMode.Html,
|
||||||
|
hasSpoiler: randomMedia.Nsfw
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
case InputMediaType.Video:
|
case InputMediaType.Video:
|
||||||
await Bot.SendVideoAsync(Chat.Id, file, caption: randomMedia.Caption, replyToMessageId: messageId, parseMode: ParseMode.Html);
|
await Bot.SendVideoAsync(Chat.Id, file,
|
||||||
|
caption: randomMedia.Caption,
|
||||||
|
replyToMessageId: messageId,
|
||||||
|
parseMode: ParseMode.Html,
|
||||||
|
hasSpoiler: randomMedia.Nsfw
|
||||||
|
);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,14 +5,16 @@ namespace West.TelegramBot.ContentStore.Model;
|
|||||||
|
|
||||||
public class RandomMedia
|
public class RandomMedia
|
||||||
{
|
{
|
||||||
public RandomMedia(IInputFile file, string? caption = null)
|
public RandomMedia(IInputFile file, string? caption = null, bool nsfw = false)
|
||||||
{
|
{
|
||||||
File = file;
|
File = file;
|
||||||
Caption = caption;
|
Caption = caption;
|
||||||
|
Nsfw = nsfw;
|
||||||
}
|
}
|
||||||
|
|
||||||
public IInputFile File;
|
public IInputFile File;
|
||||||
public string? Caption;
|
public string? Caption;
|
||||||
|
public bool Nsfw;
|
||||||
|
|
||||||
public InputMediaType Type { get; set; } = InputMediaType.Photo;
|
public InputMediaType Type { get; set; } = InputMediaType.Photo;
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,8 @@ public abstract class AbstractKittiesService : IRandomMediaService
|
|||||||
|
|
||||||
return new RandomMedia(
|
return new RandomMedia(
|
||||||
new InputFile(await response.Content.ReadAsStreamAsync()),
|
new InputFile(await response.Content.ReadAsStreamAsync()),
|
||||||
new HtmlString().Url(videoSource, videoTitle).ToString()
|
new HtmlString().Url(videoSource, videoTitle).ToString(),
|
||||||
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,13 @@ public class AnimBoobsService : IRandomMediaService
|
|||||||
public async Task<RandomMedia> GetRandomMediaAsync()
|
public async Task<RandomMedia> GetRandomMediaAsync()
|
||||||
{
|
{
|
||||||
var fileName = await _httpClient.GetStringAsync("index.php");
|
var fileName = await _httpClient.GetStringAsync("index.php");
|
||||||
return new RandomMedia(new InputFileUrl($"https://westdev.me/_boobs/media/{fileName}"))
|
// 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
|
Type = InputMediaType.Video,
|
||||||
|
Nsfw = true
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class OBoobsService : IRandomMediaService
|
|||||||
var boobsItem = boobsResponse![0];
|
var boobsItem = boobsResponse![0];
|
||||||
var boobsId = boobsItem.Id.ToString("D5");
|
var boobsId = boobsItem.Id.ToString("D5");
|
||||||
|
|
||||||
return new RandomMedia(new InputFileUrl($"https://media.oboobs.ru/boobs/{boobsId}.jpg"), boobsItem.Model);
|
return new RandomMedia(new InputFileUrl($"https://media.oboobs.ru/boobs/{boobsId}.jpg"), boobsItem.Model, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<bool> CanView(Chat chat, User user)
|
public async Task<bool> CanView(Chat chat, User user)
|
||||||
|
|||||||
Reference in New Issue
Block a user