Загрузка...

Помощь в Python Telethon

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

Загрузка...
  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
    gurhgrihfehi 15 апр 2025 Заблокирован(а) 2 3 авг 2024
    Использовать EditBannedRequest с ChatBannedRights для управления разрешениями чата
    Добавить корректную обработку ссылок формата "admin:/c/..." для пересылки
    Реализовать параметр drop_author=True при пересылке сообщений
     
Top