diff --git a/bot.js b/bot.js
index 1287255..25f097b 100644
--- a/bot.js
+++ b/bot.js
@@ -7,6 +7,7 @@ const logger = require('./logger.js');
const callAI = require("./requestAI");
const {searchInPrompts, saveInPrompts} = require("./promptResponser");
const INSTRUCTIONS = require("./promptGen");
+const {sendHelp} = require("./infoSender");
require('dotenv').config();
const char = {name:'marina'}
class TelegramHistoryBot {
@@ -71,11 +72,26 @@ class TelegramHistoryBot {
}
setupHandlers() {
+ const isGroupChat = (ctx) => {
+ return ctx.chat.type === 'group' || ctx.chat.type === 'supergroup';
+ };
+ this.bot.start(async (ctx) => {
+ if (isGroupChat(ctx)) {
+ return; // Игнорируем в группах
+ }
+ await sendHelp(ctx);
+ });
+
this.bot.command('summy', async (ctx) => {
if (!(await this.isAdmin(ctx))) {
await ctx.deleteMessage()
return
}
+ if (!isGroupChat(ctx)) {
+ await ctx.reply('❗ Эта команда работает только в группах');
+ return;
+ }
+
const message = ctx.message.text || '';
await ctx.deleteMessage();
const args = message.replace(/^\/summy(@\w+)?\s*/, ''); // удаляет /summy и возможный @botname
@@ -156,6 +172,9 @@ class TelegramHistoryBot {
// Общий обработчик сообщений (исключая команды)
this.bot.on('message', async (ctx) => {
// Пропускаем все команды
+ if (!isGroupChat(ctx)) {
+ return;
+ }
if (ctx.message.text && ctx.message.text.startsWith('/')) {
return;
}
@@ -513,26 +532,26 @@ ${conversationFlow}`;
return summary;
}
- async sendHelp(ctx) {
- const helpText = `
-🤖 Бот сохраняет всю историю чата
-
-📊 Команды суммаризации:
-/summary_day - суммаризация за сутки
-/summary_hours N - за последние N часов
-/summary_last N - последние N сообщений
-
-💡 Примеры:
-/summary_hours 6 - за последние 6 часов
-/summary_last 50 - последние 50 сообщений
-
-ℹ️ Бот сохраняет все сообщения и создает живые истории на основе переписки.
-
-🔧 Поддерживаются все типы сообщений: текст, фото, видео, аудио, документы, стикеры и др.
- `.trim();
-
- await ctx.reply(helpText, { parse_mode: 'HTML' });
- }
+// async sendHelp(ctx) {
+// const helpText = `
+// 🤖 Бот сохраняет всю историю чата
+//
+// 📊 Команды суммаризации:
+// /summary_day - суммаризация за сутки
+// /summary_hours N - за последние N часов
+// /summary_last N - последние N сообщений
+//
+// 💡 Примеры:
+// /summary_hours 6 - за последние 6 часов
+// /summary_last 50 - последние 50 сообщений
+//
+// ℹ️ Бот сохраняет все сообщения и создает живые истории на основе переписки.
+//
+// 🔧 Поддерживаются все типы сообщений: текст, фото, видео, аудио, документы, стикеры и др.
+// `.trim();
+//
+// await ctx.reply(helpText, { parse_mode: 'HTML' });
+// }
}
// Запуск бота
diff --git a/infoSender.js b/infoSender.js
new file mode 100644
index 0000000..cbb51a2
--- /dev/null
+++ b/infoSender.js
@@ -0,0 +1,67 @@
+/**
+ * Модуль для отправки справочной информации
+ */
+
+const helpText = `
+🚀 **САММАРИ БОТ** - *Ваш умный помощник для переписок!*
+
+✨ *Полностью бесплатный сервис от [Rockzo.ru](https://rockzo.ru)*
+
+🎭 **Магия персонажей в действии!**
+Превратите скучную переписку в увлекательный анализ через призму любимых персонажей!
+
+🔥 **Главная команда:**
+• \`/summy [ваш запрос]\` - создайте уникальную суммаризацию!
+
+💡 **Примеры использования:**
+• \`/summy Проанализируй последние 50 сообщений как Шерлок Холмс\`
+• \`/summy Виталий Бианки, за последние сутки\`
+• \`/summy Расскажи как Стив Джобс о наших идеях за 3 часа\`
+• \`/summy Оцени дискуссию глазами психолога, 100 сообщений\`
+
+🎨 **Не бойтесь экспериментировать!**
+• Пробуйте разных персонажей: от классиков до современных героев
+• Задавайте необычные ракурсы анализа
+• Выбирайте ЛИБО количество сообщений, ЛИБО временной период
+• Придумывайте креативные подходы к анализу!
+
+⚡ **Важная информация:**
+• 🏢 Работает только в группах и каналах
+• 👑 Требуются права администратора для использования
+• 💬 В личке доступна только эта справка
+• 🆓 **Абсолютно бесплатно навсегда!**
+• 📊 Указывайте либо количество сообщений, либо временной период (не комбинируйте!)
+
+🌟 *Превратите каждую переписку в произведение искусства!*
+
+---
+💻 Разработано с ❤️ командой **[Rockzo.ru](https://rockzo.ru)**
+`;
+
+/**
+ * Отправляет справочное сообщение пользователю
+ * @param {Object} ctx - Контекст Telegraf
+ * @returns {Promise}
+ */
+async function sendHelp(ctx) {
+ try {
+ await ctx.reply(helpText, { parse_mode: 'Markdown' });
+ } catch (error) {
+ // Если Markdown не работает, отправляем обычный текст
+ const plainText = helpText.replace(/[`*_]/g, '');
+ await ctx.reply(plainText);
+ }
+}
+
+/**
+ * Получить текст справки (без отправки)
+ * @returns {string} Текст справки
+ */
+function getHelpText() {
+ return helpText;
+}
+
+module.exports = {
+ sendHelp,
+ getHelpText
+};
\ No newline at end of file