-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
106 lines (94 loc) · 4.63 KB
/
Copy pathProgram.cs
File metadata and controls
106 lines (94 loc) · 4.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using Telegram.Bot;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;
using DotEnv = dotenv.net.DotEnv;
DotEnv.Load(); // Загружаем .env
var token = Environment.GetEnvironmentVariable("BOT_TOKEN");
if (string.IsNullOrEmpty(token))
{
Console.WriteLine("❌ BOT_TOKEN не найден. Убедись, что он прописан в .env");
return;
}
var bot = new TelegramBotClient(token);
Console.WriteLine("✅ Iron Nerves Bot запущен...");
var rules = new Dictionary<string, Dictionary<string, string?>>
{
["Правила 1-5"] = new()
{
["1️⃣ Наладь питание для нервов"] = "https://mensby.com/wp-content/uploads/2021/01/zheleznye-nervy-15-sposobov-obresti-stalnye-nervy-03.jpg",
["2️⃣ Не бойся поражений"] = "https://mensby.com/wp-content/uploads/2021/01/zheleznye-nervy-15-sposobov-obrestи-stalnye-nervy-04.jpg",
["3️⃣ Займись спортом для выдержки"] = "https://via.placeholder.com/800x600.png?text=Sport+Activity",
["4️⃣ Не сопротивляйся переменам"] = "https://via.placeholder.com/800x600.png?text=Change",
["5️⃣ Начни высыпаться и отдыхать"] = "https://via.placeholder.com/800x600.png?text=Sleep+Well"
},
["Правила 6-10"] = new()
{
["6️⃣ Находи время на себя"] = "https://via.placeholder.com/800x600.png?text=Me+Time",
["7️⃣ Уделяй время отношениям"] = "https://mensby.com/wp-content/uploads/2021/01/zheleznye-nervy-15-sposobov-obresti-stalnye-nervy-04.jpg",
["8️⃣ Выбирай эгоизм"] = "https://via.placeholder.com/800x600.png?text=Healthy+Egoism",
["9️⃣ Откажись от лишней ответственности"] = "https://via.placeholder.com/800x600.png?text=No+Excess+Responsibility",
["🔟 Относись к жизни с иронией"] = "https://via.placeholder.com/800x600.png?text=Irony+Life"
},
["Правила 11-15"] = new()
{
["1️⃣1️⃣ Откажись и снизь вредные привычки"] = "https://via.placeholder.com/800x600.png?text=Healthy+Habits",
["1️⃣2️⃣ Не копи негатив и проблемы"] = "https://via.placeholder.com/800x600.png?text=Release+Negativity",
["1️⃣3️⃣ Импровизируй и будь гибче"] = "https://via.placeholder.com/800x600.png?text=Be+Flexible",
["1️⃣4️⃣ Оттягивайся и отдыхай"] = "https://via.placeholder.com/800x600.png?text=Relax+And+Have+Fun",
["1️⃣5️⃣ Контакты"] = null
}
};
ReplyKeyboardMarkup MainMenu() =>
new(new[]
{
new KeyboardButton[] { "Правила 1-5", "Правила 6-10", "Правила 11-15" }
})
{ ResizeKeyboard = true };
ReplyKeyboardMarkup SubMenu(string groupName) =>
new(
rules[groupName]
.Keys
.Select(k => new KeyboardButton[] { new(k) })
.Append(new KeyboardButton[] { new("⬅️ Главное меню") })
)
{ ResizeKeyboard = true };
bot.StartReceiving(async (client, update, token) =>
{
if (update.Message is not { } message || message.Text is null) return;
var text = message.Text.Trim();
if (text == "/start")
{
await bot.SendMessage(message.Chat.Id,
"🛡️ Привет! Я бот *Железные нервы* v2.\nВыбирай пункт из меню:",
replyMarkup: MainMenu(), parseMode: ParseMode.Markdown);
return;
}
if (rules.ContainsKey(text))
{
await bot.SendMessage(message.Chat.Id, $"Выбери правило из группы {text}:", replyMarkup: SubMenu(text));
return;
}
foreach (var (groupName, group) in rules)
{
if (group.ContainsKey(text))
{
if (group[text] is { } url)
await bot.SendPhoto(message.Chat.Id, url, caption: text);
else
await bot.SendMessage(message.Chat.Id, "📞 Контакты для связи: @MSL72Rph");
return;
}
}
if (text == "⬅️ Главное меню")
{
await bot.SendMessage(message.Chat.Id, "Возвращаемся в главное меню:", replyMarkup: MainMenu());
return;
}
await bot.SendMessage(message.Chat.Id, "Пожалуйста, выбери раздел из меню:", replyMarkup: MainMenu());
}, (_, ex, _) =>
{
Console.WriteLine(ex.Message);
return Task.CompletedTask;
});
Console.ReadLine();