Короче ребзя, не могу третий день реализовать идейку... Директория: папка accounts = тут лежит admin.session и admin.json от telegam telethon аккаунта admin.py = тут прописаны данные админа (на этом аккаунте уже стоит админка в чате) # admin.py admin_data = { "admin_id": 84884848 # ID админа "channel_link": "https://t.me/+" # Ссылка на канал-донор } Код # admin.py admin_data = { "admin_id": 84884848 # ID админа "channel_link": "https://t.me/+" # Ссылка на канал-донор } main.py = основной скрипт messages.txt = настройки по сообщениям url chat.txt = здесь приватная-тг-ссылка на которой подписывается аккаунт-админ админ-аккаунт подключается, все окей, но почему то не хочет работать, в чате он стоит как админ со всеми галочками, какую идею я не могу реализовать : 1. админ-аккаунт (связка admin.session и admin.json) должны при запуске (после подключения к ******, это все реализовано уже), изменить настройки чата на : Управление группой - Разрешения - Отправка сообщений - Включить/открыть возможность для участников Управление группой - Разрешения - Отправка сообщений - Фотографии - Включить/открыть возможность для участников 2. когда в messages.txt попадается строка (там все уже реализовано, образно) когда находится строка содержащая "admin:/c/263103*****5/2" аккаунт-админ должен сделать репост этого поста не показывая свое имя/без "Переслано" (репост "Без автора, с подписями") 3. когда закончились сообщения у меня в main.py реализовано "logger.error(f"Нет больше сообщений для отправки!")" , в этом случае аккаунт-админ должен снова изменить настройки чата на : Управление группой - Разрешения - Отправка сообщений - Выключить/закрыть возможность для участников Управление группой - Разрешения - Отправка сообщений - Фотографии - Выключить/закрыть возможность для участников Таким образом должен быть простой цикл : - подключение админ-аккаунта к ****** - проверка на подписки (на чат и канал-донор с которого будут репоститься посты) - открыть возможность писать в чат всем + отправлять фото - переслать все нужные посты записаны в messages.txt в формате "admin:/tme/c/263103*****5/2" - когда все посты пересланы закрыть возможность писать в чат всем + отправлять фото Но реализовать у меня не получается, был бы благодарен за помощь - нужно помочь только в реализации : - открытия чата всем + отправки фото - чтобы main.py понимал что если в messages.txt есть строчка "admin:me/c/263103*****5/2" то нужно сделать скрытый репост этого поста из ссылки - когда сообщения закончились в messages.txt, закрыть возможность писать в чат всем + отправлять фото Все остальное готово, только это реализовать не могу... Был бы благодарен за помощь
async def change_chat_permissions(client, url_chat): try: # Получаем информацию о чате chat = await client.get_entity(url_chat) # Определяем права для участников чата permissions = ChatAdminRights( post_messages=True, # Разрешить отправку сообщений (включает фото и медиа) edit_messages=False, # Запрещаем редактирование сообщений delete_messages=False, # Запрещаем удаление сообщений pin_messages=False, # Запрещаем прикрепление сообщений change_info=False, # Запрещаем изменение информации manage_call=True # Разрешаем управление голосовыми вызовами ) # Получаем список администраторов, если они есть admins = await client.get_participants(chat, filter=ChannelParticipantsAdmins) # Убедимся, что это супер-группа if chat.megagroup: for admin in admins: await client(EditAdminRequest(chat, admin.id, permissions)) logger.info(f"Права для участника {admin.id} успешно обновлены в чате {chat.title}.") logger.info(f"Права чата {chat.title} обновлены.") else: logger.warning(f"Чат {chat.title} не является супер-группой.") except Exception as e: logger.error(f"Ошибка изменения прав в чате {url_chat}: {str(e)}") Python async def change_chat_permissions(client, url_chat): try: # Получаем информацию о чате chat = await client.get_entity(url_chat) # Определяем права для участников чата permissions = ChatAdminRights( post_messages=True, # Разрешить отправку сообщений (включает фото и медиа) edit_messages=False, # Запрещаем редактирование сообщений delete_messages=False, # Запрещаем удаление сообщений pin_messages=False, # Запрещаем прикрепление сообщений change_info=False, # Запрещаем изменение информации manage_call=True # Разрешаем управление голосовыми вызовами ) # Получаем список администраторов, если они есть admins = await client.get_participants(chat, filter=ChannelParticipantsAdmins) # Убедимся, что это супер-группа if chat.megagroup: for admin in admins: await client(EditAdminRequest(chat, admin.id, permissions)) logger.info(f"Права для участника {admin.id} успешно обновлены в чате {chat.title}.") logger.info(f"Права чата {chat.title} обновлены.") else: logger.warning(f"Чат {chat.title} не является супер-группой.") except Exception as e: logger.error(f"Ошибка изменения прав в чате {url_chat}: {str(e)}") В чем ошибка может быть?
Использовать EditBannedRequest с ChatBannedRights для управления разрешениями чата Добавить корректную обработку ссылок формата "admin:/c/..." для пересылки Реализовать параметр drop_author=True при пересылке сообщений