• Как получить список всех групп/каналов в которых находится пользователь Telegram?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    https://github.com/LonamiWebs/Telethon
    https://docs.telethon.dev/en/stable/concepts/entit...
    from telethon import TelegramClient, utils
    
    # config
    api_id = 'id'
    api_hash = 'hash'
    phone = 'phone'
    
    client = TelegramClient('session_name', api_id, api_hash)
    
    async def main():
        # authentication
        await client.start(phone)
        
        # get group and channel list
        dialogs = await client.get_dialogs()
    
        # print group and channel data
        for dialog in dialogs:
            if dialog.is_group or dialog.is_channel:
                print(f"{dialog.name}: {dialog.id}")
    
    # start
    client.loop.run_until_complete(main())
    Ответ написан
    4 комментария
  • Как сделать проверку написал ли что-то человек в бота, либо нажал на кнопку?

    SoreMix
    @SoreMix
    yellow
    1. Отказываемся от глобальных переменных в любом виде.
    2. Разделяем декораторы для того чтобы понимать что происходит в коде
    3. Используем register_next_step_handler, который для этого и создан.

    Я тут начал писать решение, но удалил, подумав, а зачем так запутанно?

    # Я бы закинул все обработчики кнопок в свои хэндлеры (с call аналогичено)
    
    @bot.message_handler(func=lambda m: m.text and m.text == 'Zeptat se✏️')
    def handle_user_question(message):
        bot.send_message(message.chat.id, 'Напишите сюда Ваш вопрос. Менеджер свяжется с Вами.')
        bot.send_message(manager, 'С вами свяжется пользователь URL')
        bot.register_next_step_handler(message, proccess_user_question)
    
    def proccess_user_question(message):
        # здесь проверяем что пришло, реальный вопрос или нажали кнопку
        if message.text and message.text in ['Zeptat se✏️', 'Více s soukromé komunitě', 'Platba ']:
            # просто вызываем нужную функцию, которые описали выше, как пример:
            if message.text == 'Zeptat se✏️':
                return handle_user_question(message)
    
        # а дальше уже если все проверки на клаву пришли, то обрабатываем как реальный вопрос
        bot.send_message(manager, 'Вопрос от URL:')
        bot.forward_message(manager, message.chat.id, message.message_id)
        bot.send_message(message.chat.id, 'Ваш вопрос отправлен')


    ИМХО лишние здесь всякие вот эти инлайн кнопки которые не несут функционал, только путают. Вот и всё стихотворенье
    Ответ написан
    1 комментарий
  • Как записать данные в переменную PHP и вызывать их в любом участке кода?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Как записать данные в переменную PHP и вызывать их в любом участке кода?

    Ответ на этот вопрос содержится в нем самом.
    Надо записать в переменную, а потом вызвать её в любом участке кода.
    При этом если вы сами же не записали данные в переменную, то вызывать её потом бесполезно.

    в одном из блоков if записываю данные в переменную. Проблема в том, что когда я пытаюсь вызвать его в другом блоке elseif - она выводиться пустая


    А вот этот вопрос говорит о том, что вы, видимо, даже не понимаете, как работают конструкции if и else. Что сам принцип этих конструкций состоит в том, что если выполнилась одна ветка, то по определению другие выполняться не будут.

    Поскольку вы не удосужились написать, какая именно переменная вызывает проблему, я предполагаю, что речь о $channelUsername. Учитывая, что она передается по ссылке, то дело не в том, что она "перезаписывается". А в том, что её попросту неоткуда взять, если в $message лежит число
    Ответ написан
    Комментировать