Skip to content

risunya/node-grabber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👐 Node Telegram Grabber v0.0.3

Бот позволяет пересылать контент из любого Telegram-канала в ваши каналы.

Сама программа занимает примерно 150 mb свободного места. Также потребуется рантайм (среда выполнения), который занимает около 100 mb свободного места. Поскольку бот не выполняет ресурсоемких операций, асинхронность и высокая скорость обработки запросов являются ключевыми преимуществами Node.js (например, в сравнении с Python). Если у вас около 10 каналов с новостями, и бот пересылает каждую новость в 3 канала, пиковая нагрузка не превышает 80 mb оперативной памяти. Это позволяет использовать бота в рабочее время, а не выделять для него отдельный сервер.

📍Roadmap

  • Добавить возможность настройки цитирования источника. (#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 — Выводит текущий список настроек.

🪲 Исправление ошибки выполнения скриптов в PowerShell

В ходе настройки бота вы можете поймать подобную ошибку:
Невозможно загрузить файл ..., так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170.
    + CategoryInfo          : Ошибка безопасности: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnauthorizedAccess
Решение:
  1. Откройте PowerShell от имени администратора.

  2. Введите команду:

Set-ExecutionPolicy RemoteSigned

# На вопрос "Вы хотите изменить политику выполнения?" 
# ответьте A (Да для всех).
Теперь скрипты должны запускаться без ошибок.

About

Бот, позволяющий пересылать новости в ваш канал (NodeJS)

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors