Ответы пользователя по тегу Telegram
  • Как при новом заказе Woocommerce отправлять сообщения в Viber, WhatsApp, Telegram?

    @javedimka
    Хочу сока
    Сейчас каждый второй СМС агрегатор умеет отправлять сообщения в вайбер, ватсап и телеграм. Тебе остается найти того кто тебя устраивает, купить пак сообщений, и при каждом заказе дёргать соответствующую ссылку.
    Ответ написан
    Комментировать
  • Как прикрепить декораторы в цикле?

    @javedimka
    Хочу сока
    Можно просто почитать как работают декораторы и что есть синтаксический сахар
    async def handler(event):
            word = event.message.to_dict()['message']
            if (word[:18] == "Код подтверждения:"):
                print(word)
    
    for client in clients:
        handler = client.on(events.NewMessage)(handler)
    Ответ написан
    Комментировать
  • Как сделать так что бот реагировал только на текст?

    @javedimka
    Хочу сока
    У строк есть метод .isalpha() который возвращает True если в строке все символы являются символами алфавита и в строке есть хотя бы один символ.
    ''.isalpha()  # False
    '  '.isalpha()  # False
    '!@#'.isalpha()  # False
    'abc'.isalpha()  # True
    '123'.isalpha()  # False
    'abc123'.isalpha()  # False
    'абв'.isalpha()  # True
    'абв123'.isalpha()  # False

    Советую перейти по ссылке и посмотреть на другие, такие же замечательные, методы строк.
    Ответ написан
    Комментировать
  • Как задать название функции для register_next_step_handler?

    @javedimka
    Хочу сока
    Ничего не понял, но наверное как-то так
    >>> def heyfunc():
    ...     print('hey')
    ...     
    >>> def supfunc():
    ...     print('sup')
    ...     
    >>> funcdict = {'heyfunc': heyfunc, 'supfunc': supfunc}
    >>> f_name = input()
    hey
    >>> next_func = funcdict.get(f_name+'func')
    >>> next_func
    <..function heyfunc at 0x10926d268..>
    >>> next_func()
    hey

    Кстати, если хочется упороться, то можно сделать декоратор:
    card_funcs = {}
    
    def register_cf(card_func):
        '''register card function'''
        card_funcs[card_func.__name__] = card_func
        return card_func
    
    @register_cf
    def card_func1():
        print('Running card1')
    
    @register_cf
    def card_func2():
        print('Running card2')
    
    @register_cf
    def card_func3():
        print('Running card3')
        
    if __name__ == '__main__':
        print('running funcs from registry:')
        for fn, fobj in card_funcs.items():
            print(fn, '->', fobj)
            fobj()
    
    -----
    running funcs from registry:
    card_func3 -> <..function card_func3 at 0x1069ae9d8..>
    Running card3
    card_func2 -> <..function card_func2 at 0x1071ea9d8..>
    Running card2
    card_func1 -> <..function card_func1 at 0x10db190d0..>
    Running card1

    Не надо словарь хардкодить + удобно расширять
    Ответ написан
    1 комментарий