По какой то причине мою тему в разделе "Софт уже проверяется больше недели" (были создана 18 марта 2024) Были запросы на граббер телеграмм поэтому решил слить Код main py from telethon import TelegramClient, events import traceback from loguru import logger import os from configparser import ConfigParser from settings import * current_file_path = os.path.abspath(__file__) current_directory = os.path.dirname(current_file_path) config = ConfigParser() config.read('config.ini') data = config['DATA'] d_settings = config['device_settings'] api_id, api_hash, phone = int(data['api_id']), data['api_hash'], data['phone'] device_model, system_version, app_version = (d_settings['device_model'], d_settings['system_version'], d_settings['app_version']) client = TelegramClient(phone, api_id, api_hash) def _replace(msg: str) -> str: for old, new in replace_list: msg = msg.replace(old, new) return msg def delete_photos(): file_list = os.listdir() for file_name in file_list: if file_name.endswith('.jpg'): file_path = os.path.join(current_directory, file_name) os.remove(file_path) @client.on(events.NewMessage(chats=source_channels)) async def forward_message(event): logger.info(f'Отправили новое сообщение в канал: {my_channel}') if event.message.media: await client.send_message(my_channel, _replace(event.message.message), file=event.message.media, formatting_entities=event.message.entities) else: await client.send_message(my_channel, _replace(event.message.message), formatting_entities=event.message.entities) try: client.start() logger.info('Граббер работает!') client.run_until_disconnected() except Exception as _ex: with open('log.txt', 'w', encoding='utf-8') as file: file.write(traceback.format_exc()) Python from telethon import TelegramClient, events import traceback from loguru import logger import os from configparser import ConfigParser from settings import * current_file_path = os.path.abspath(__file__) current_directory = os.path.dirname(current_file_path) config = ConfigParser() config.read('config.ini') data = config['DATA'] d_settings = config['device_settings'] api_id, api_hash, phone = int(data['api_id']), data['api_hash'], data['phone'] device_model, system_version, app_version = (d_settings['device_model'], d_settings['system_version'], d_settings['app_version']) client = TelegramClient(phone, api_id, api_hash) def _replace(msg: str) -> str: for old, new in replace_list: msg = msg.replace(old, new) return msg def delete_photos(): file_list = os.listdir() for file_name in file_list: if file_name.endswith('.jpg'): file_path = os.path.join(current_directory, file_name) os.remove(file_path) @client.on(events.NewMessage(chats=source_channels)) async def forward_message(event): logger.info(f'Отправили новое сообщение в канал: {my_channel}') if event.message.media: await client.send_message(my_channel, _replace(event.message.message), file=event.message.media, formatting_entities=event.message.entities) else: await client.send_message(my_channel, _replace(event.message.message), formatting_entities=event.message.entities) try: client.start() logger.info('Граббер работает!') client.run_until_disconnected() except Exception as _ex: with open('log.txt', 'w', encoding='utf-8') as file: file.write(traceback.format_exc()) settings py my_channel = 'https://t.me/for_test321' # Ссылка на собственный канал source_channels = ['https://t.me/ffdafsd', 'https://t.me/ffdafsd'] # Ссылки на чужие каналы replace_list = [(' Топор live', ''), ('Старая запись', 'Новая запись')] # Меняет текст в посте # (' Топор live', '') удаляет надпись # ('Старая запись', 'Новая запись') меняет 'Старая запись' на 'Новая запись' Python my_channel = 'https://t.me/for_test321' # Ссылка на собственный канал source_channels = ['https://t.me/ffdafsd', 'https://t.me/ffdafsd'] # Ссылки на чужие каналы replace_list = [(' Топор live', ''), ('Старая запись', 'Новая запись')] # Меняет текст в посте # (' Топор live', '') удаляет надпись # ('Старая запись', 'Новая запись') меняет 'Старая запись' на 'Новая запись' config.ini [DATA] api_id = api_hash = phone = [device_settings] device_model = Realme 10 system_version = 4.16.30-vxCUSTOM app_version = 4.2.1 Код [DATA] api_id = api_hash = phone = [device_settings] device_model = Realme 10 system_version = 4.16.30-vxCUSTOM app_version = 4.2.1 README 1. Установить python 3.10+ ВАЖНО! При установке нажмите галочку рядом с "pip" 2. Установить нужные библиотеки pip install telethon loguru 3. Заполнить данные в файле settings 4. Заполнить данные в config.ini Получить api_id и api_hash можно по инструкции - https://lavhost.su/telegram-api 5. Включить скрипт Скачать https://mega.nz/file/pvcEXJYY#IG7B_UcskiHVGkcJxXvJSJIfuDB6pfDMYxY0CtCkvI8 Не забудьте подписаться на каналы откуда хотите заимствовать посты За ваши аккаунты ответственности не несу
xxGonzalesxx, отслеживает чужие каналы, если в них появился новый пост то будет кидать в твой канал также есть функция замены текста, чтобы не было чужих ссылок
kot9k, Если в одном посте три фотографии, то каждое фото считается за сообщение Проблема в событиях, мб тебе это поможет