Сама программа занимает примерно 150 mb свободного места. Также потребуется рантайм (среда выполнения), который занимает около 100 mb свободного места. Поскольку бот не выполняет ресурсоемких операций, асинхронность и высокая скорость обработки запросов являются ключевыми преимуществами Node.js (например, в сравнении с Python). Если у вас около 10 каналов с новостями, и бот пересылает каждую новость в 3 канала, пиковая нагрузка не превышает 80 mb оперативной памяти. Это позволяет использовать бота в рабочее время, а не выделять для него отдельный сервер.
- Добавить возможность настройки цитирования источника. (#2)
- Добавить возможность настройки вывода в консоль. (#2)
- Добавить возможность пересылки из ботов. (#5)
- Добавить поддержку всех видов сообщений из ботов. (#6)
- Добавить возможность настройки задержек, чтобы не попадать под лимиты Telegram.
- Добавить возможность изменения текущих записей.
- Рефакторинг кода.
- Добавить фильтры по ключевым словам для выявления рекламных постов.
Все тестировалось на Node v20.18.2
Для работы бота необходимо установить библиотеки и среду выполнения Node.js.
Node.js обычно устанавливается через MSI-файл (скачать здесь), но если вы продвинутый пользователь, можете установить его через консоль, например, с помощью Chocolatey:
# Скачать и установить Chocolatey:
powershell -c "irm https://community.chocolatey.org/install.ps1 | iex"
# Скачать и установить Node.js:
choco install nodejs-lts --version="20"
# Проверить версию Node.js:
node -v # Должно вывести "v20.18.3".
# Проверить версию npm:
npm -v # Должно вывести "10.8.2".После установки среды выполнения и npm необходимо загрузить зависимости. Для этого в корневой папке проекта выполните команду:
npm installПосле завершения установки переходите к следующему шагу. Если в консоли появилась ошибка или выполнение кода завершилось неудачно, обратитесь к последнему разделу этого руководства — там описаны возможные ошибки и способы их устранения.
Создайте Telegram-бота. Для этого напишите боту BotFather и следуйте инструкциям. После создания сохраните токен бота.
Получите API_ID и API_HASH. Сделать это можно на сайте my.telegram.org - инструкция. Создайте файл .env в корне проекта и укажите в нем переменные:
API_ID="ваш_api_id"
API_HASH="ваш_api_hash"
BOT_TOKEN="ваш_токен_бота"
USER_ID="ваш_user_id"
USER_ID можно получить через бота Get My ID, отправив ему любое сообщение.
Для запуска бота выполните команду:
npm run start
Или запустите start.bat 😉
При первом запуске необходимо ввести НОМЕР ТЕЛЕФОНА (НЕ ТОКЕН) и код, который придет в Telegram. Если у вас включена двухфакторная аутентификация, бот может запросить пароль. Мы не собираем эти данные — они отправляются напрямую в Core API Telegram для аутентификации.
/start — Начало работы с ботом.
/add — Начинает диалог для добавления канала в список отслеживаемых.
/del — Начинает диалог для удаления канала из списка отслеживаемых.
/cur — Выводит текущий список отслеживаемых каналов.
/settings — Выводит текущий список настроек.
Невозможно загрузить файл ..., так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170.
+ CategoryInfo : Ошибка безопасности: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess
-
Откройте PowerShell от имени администратора.
-
Введите команду:
Set-ExecutionPolicy RemoteSigned
# На вопрос "Вы хотите изменить политику выполнения?"
# ответьте A (Да для всех).