Загрузка...

Помощь в Python Telethon

Тема в разделе Python создана пользователем TelegramTrust 14 апр 2025. 100 просмотров

Загрузка...
  1. TelegramTrust
    TelegramTrust Автор темы 14 апр 2025 5 12 июн 2021
    Короче ребзя, не могу третий день реализовать идейку...

    Директория:
    папка accounts = тут лежит admin.session и admin.json от telegam telethon аккаунта
    admin.py = тут прописаны данные админа (на этом аккаунте уже стоит админка в чате)
    Код
    # 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" аккаунт-админ должен сделать репост этого поста не показывая свое имя/без "Переслано" (репост "Без автора, с подписями")

    [IMG]

    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, закрыть возможность писать в чат всем + отправлять фото

    Все остальное готово, только это реализовать не могу... Был бы благодарен за помощь :ehh:
     
    14 апр 2025 Изменено
  2. TelegramTrust
    TelegramTrust Автор темы 14 апр 2025 5 12 июн 2021
    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)}")
    В чем ошибка может быть?
     
  3. gurhgrihfehi
    Использовать EditBannedRequest с ChatBannedRights для управления разрешениями чата
    Добавить корректную обработку ссылок формата "admin:/c/..." для пересылки
    Реализовать параметр drop_author=True при пересылке сообщений
     
Top
JavaScript error: