WALTERXO / telegram-grabber

Бот позволяет пересылать весь контент с любого telegram канала на ваш
https://t.me/k_slavv
72 stars 27 forks source link

Telegram Grabber v2.4 2024

Телеграм Граббер v2.4 2024

Бот позволяет пересылать весь контент с любого telegram канала на ваш канал без упоминания автора канала. Также есть возможность заменить ссылки и упоминания в постах на ваши

Подписывайтесь на наш телеграм канал: https://t.me/my_grab (exe версия есть в Telegram группе, вступайте)

RoadMap

Используемые библиотеки

Всё тестировалось на Python 3.11

Для работы бота необходимо установить библиотеки.

Библиотека aiogram:

pip install aiogram==2.25.1

(Если в будущем предложит обновить библиотеку aiogram, то не нужно. Всё работает только на версии 2.25.1)

Библиотека telethon:

pip install telethon

В данный момент всё стабильно работает на последней версии библиотеки telethon (1.33)

Библиотека httpx: (proxy для работы Chat GPT)

pip install httpx

Как запустить

  1. Создать телеграм-бота. Для этого нужно написать боту BotFather и следовать инструкциям. После этого сохраните токен бота.
  2. Получить api_id, api_hash. Сделать это можно на сайте my.telegram.org. Инструкция: https://www.youtube.com/watch?v=JBDnmEhvgac
  3. Задать переменные api_id, api_hash, bot_token и my_id в файле config.py. Также заполните id технического канала (Смотреть 6 пункт)

image

my_id брать в Get My ID отсюда (отправить в бот любое сообщение, он выдаст ваш id):

image

Запустить бота командой:

python main.py

При первом запуске нужно ввести НОМЕР ТЕЛЕФОНА (НЕ ТОКЕН) и код, который придёт в telegram

Пример использования:

  1. Переходим в telegram бот, который создали в начале. Вводим команду "/start", нажимаем "Добавить канал" и вводим id канала, с которого нужно брать контент. id нужного канала можно узнать переслав любое сообщение с канала в бот (пример id для каналов: -1001009232144) Get My ID image

Можно вводить и username через "@", но через id стабильнее работает. Если через id не получается вводим @username

  1. Добавляем канал, на который должны будут приходить сообщения. Для этого жмём "Добавить канал-получатель". Бот, в котором мы всё это вводим, обязательно должен быть администратором этого канала.
  2. Обязательно указываем соответсвие между каналами (это пригодится когда добавите несколько каналов-источников и несколько каналов-получателей, при этом хотите чтобы публикации из определённых каналов приходили на конкретные каналы) написав id канала-источника и id канала-получателя через пробел командой /set_channel_mapping (Пример: /set_channel_mapping -100123132890 -1000932314321).
  3. После этого перезагружаем код либо вручную закрыв и открыв компилятор кода (стабильнее всего), в котором работаем, либо по кнопке "Перезагрузить бота" (не стабильно). Теперь все новые сообщения будут приходить на ваш канал.
  4. Также вам доступна команда

    /last_messages ко-во сообщений или all, если все

Она отправляет последние сообщения на ваш канал. Если добавили несколько каналов-источников, а последние сообщения нужны только с одного канала, то напишите

/last_messages id канала источника ко-во сообщений
  1. Режим модерации. При активации режима модерации все сообщения будут приходить сначала на ваш технический канал, в котором вы можете их редактировать, удалять и публиковать:

image

image

Для его работы создаём новый пустой канал и вводим id этого канала в technical_channel_id в файле config.py. (получить id можно по аналогии как с остальными каналами). Не забываем назначить бота администратором технического канала.

Если вы отредактировали сообщение, то нажимайте на "Отредактировано" чтобы оно обновилось в хранилище. Возможный баг: когда в техническом канале скапливается большое количество сообщений, то при нажатии на "Отправить" может зависать. Чтобы всё заработало нажимаем на "Отредактировано", а потом "Отправить".

Также есть возможность заменять все ссылки и упоминания, которые публикуются на каналах на ваши. В файле config.py замените на нужные вам

image

Рерайт текста с Chat GPT. В режиме модерации есть кнопка "Рерайт текста". Для её работы заполняем proxy_url и openai_api_key в файле config.py. proxy_url должны быть формата HTTP или HTTPS. Если у вас прокси с логином и паролем, то в настройках прокси ставьте авторизацию по вашему ip. Даже если прокси HTTPS, то тут всё равно должно быть http: image

openai_api_key берётся на сайте openai https://platform.openai.com/api-keys при наличии бюджета в https://platform.openai.com/usage . При отсутствии прокси и openai_api_key, то оставьте эти данные пустыми, либо за покупкой можно обратиться ко мне.

Подписывайтесь на наш телеграм канал: https://t.me/my_grab

Список доступных команд:

Если хотите поддержать проект

ЮMoney: 410011379451106

Карта МИР: 2204120200078646

Буду очень благодарен!