make return to main menu work

This commit is contained in:
Slavasil 2025-04-20 19:49:26 +03:00
parent b4dd14ed2b
commit 18b7b9120c
2 changed files with 21 additions and 8 deletions

View File

@ -9,17 +9,21 @@ internal static class Interactions
public const string sendPictureOrQuitMessage = "Пришли мне картинку для демотиватора, чтобы продолжить. Чтобы отменить, напиши \"назад\" или \"\"";
public const string sendTitleOrQuitMessage = "Пришли мне текст для демотиватора, чтобы продолжить. Чтобы отменить, нажми на кнопку в меню.";
public const string awaitingTitleMessage = "Шикарная картинка. Давай сделаем из неё крутой интернет-мэм для скуфов. Какой текст ты бы хотел видеть на нём? Можно написать две строки, тогда первая строка будет заголовком, а вторая под ним.";
public const string showingResultMessage = "Вот такой демотиватор получился. Можно поменять цветовую схему, добавить водяной знак или оставить как есть.";
public const string showingResultMessage = "Вот такой демотиватор получился. Можно поменять цветовую схему, добавить водяной знак или оставить как есть (нажмите одну из кнопок).";
public const string awaitingSubtitleMessage = "Найс. Напиши текст, который будет под заголовком, или точку (.), чтобы не добавлять его.";
public static readonly IReplyMarkup initialReplyMarkup = new ReplyKeyboardMarkup([[new KeyboardButton("▶️Начать")]]);
public static readonly IReplyMarkup backButtonReplyMarkup = new ReplyKeyboardMarkup(new KeyboardButton("↩️Назад"));
public static readonly IReplyMarkup quickActionReplyMarkup = new ReplyKeyboardRemove();
public const string chooseActionMessage = "Нажмите на одну из кнопок.";
static readonly string[] helloWords = ["прив","привет","▶️начать","ку","хай","приветик","превед","привки","хаюхай","здравствуй","здравствуйте","здорово","дарова","дороу","здарова","здорова"];
static readonly string[] cancelWords = ["↩️назад", "назад", "выйти", "отмена", "отменить", "отменяй", "галя", "галина", "стоп"];
static readonly string cancelButtonText = "↩️Назад";
public static readonly string doneButtonText = "✅Готово";
public static readonly IReplyMarkup initialReplyMarkup = new ReplyKeyboardMarkup([[new KeyboardButton("▶️Начать")]]);
public static readonly IReplyMarkup backButtonReplyMarkup = new ReplyKeyboardMarkup(new KeyboardButton("↩️Назад"));
public static readonly IReplyMarkup quickActionReplyMarkup = new ReplyKeyboardRemove();
public static readonly IReplyMarkup resultActionReplyMarkup = new ReplyKeyboardMarkup([new KeyboardButton(doneButtonText)]);
public static bool IsStartCommand(string message)
{
return message.Split(' ').FirstOrDefault() == "/start";

View File

@ -170,7 +170,16 @@ internal class TelegramBot
bool replied = false;
if (message.Text is { } messageText)
{
if (messageText == Interactions.doneButtonText)
{
replied = true;
dialogData.state = DialogState.AwaitingPicture;
await botClient.SendTextMessageAsync(message.Chat.Id, Interactions.awaitingPictureMessage, replyMarkup: Interactions.quickActionReplyMarkup);
}
}
if (!replied)
{
await botClient.SendTextMessageAsync(message.Chat.Id, Interactions.chooseActionMessage, replyMarkup: Interactions.resultActionReplyMarkup);
}
break;
}
@ -228,7 +237,7 @@ internal class TelegramBot
[new DemotivatorText() { Title = title, Subtitle = subtitle }],
DemotivatorGen.DefaultStyle());
DialogFinishDemotivatorCreation(dialogData);
await botClient.SendPhotoAsync(message.Chat.Id, new InputFile(demotivator, "dem.png"), caption: Interactions.showingResultMessage, cancellationToken: cancellationToken);
await botClient.SendPhotoAsync(message.Chat.Id, new InputFile(demotivator, "dem.png"), caption: Interactions.showingResultMessage, replyMarkup: Interactions.resultActionReplyMarkup, cancellationToken: cancellationToken);
demotivator.Dispose();
} else
{
@ -250,7 +259,7 @@ internal class TelegramBot
[new DemotivatorText() { Title = title, Subtitle = subtitle }],
DemotivatorGen.DefaultStyle());
DialogFinishDemotivatorCreation(dialogData);
await botClient.SendPhotoAsync(message.Chat.Id, new InputFile(demotivator, "dem.png"), caption: Interactions.showingResultMessage, cancellationToken: cancellationToken);
await botClient.SendPhotoAsync(message.Chat.Id, new InputFile(demotivator, "dem.png"), caption: Interactions.showingResultMessage, replyMarkup: Interactions.resultActionReplyMarkup, cancellationToken: cancellationToken);
demotivator.Dispose();
}