Skip to content

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

Notifications You must be signed in to change notification settings

WALTERXO/telegram-grabber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram Grabber v2.4 2024

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

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

RoadMap

  • 02.01.24 Добавил инлайн-меню, режим модерации, перезагрузку бота из онлайн меню, добавление каналов без команд (по нажатию на инлайн-меню), обновил инструкцию

  • 10.01.24 Добавил возможность добавлять каналы по @username; Задал версию клиента при авторизации для решения возможной проблемы с вылетом на всех устройствах

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

  • 11.01.24 Внедрение Chat GPT - в режиме модерации добавил кнопку "Рерайтинг текста" (Работает только с одиночными сообщениями, если отправляется альбом, то кнопки не будет (возможно добавлю в будущем)). Текст по нажатию на кнопку должен будет переписать Chat GPT для создания уникальной публикации.

  • 12.01.24 Добавил запрет на все команды(/) для пользователей, чьи id не совпадают с my_id из config.py

  • 21.01.24 Исправил проблему при которой не пересылались сообщения, в которых есть превью; Починил соответствия; Добавил кнопку "Показать соответствия" в инлайн-меню; Исправил баг с частью нерабочих кнопок инлайн-меню

Планируется:

  • Добавление блэклиста слов для игнорирования рекламных публикаций

  • Добавить замену текста, в котором встроена ссылка (сейчас заменяется только ссылка)

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

Всё тестировалось на 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.

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, то оставьте эти данные пустыми, либо за покупкой можно обратиться ко мне.

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

  • /start - Начало работы с ботом
  • /help - Получить список доступных команд
  • /add_channel - Добавить канал для работы
  • /remove_channel - Удалить канал из списка
  • /list_channels - Показать список добавленных каналов
  • /add_destination_channel - Добавить канал-получатель
  • /remove_destination_channel - Удалить канал-получатель из списка
  • /list_destination_channels - Показать список каналов-получателей
  • /set_channel_mapping - Установить соответствие между каналами
  • /last_messages (ко-во сообщений или all, если все) - Отправить последние сообщения с каналов

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

ЮMoney: 410011379451106 Карта МИР: 2204120200078646

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages