Ответы пользователя по тегу Python
  • Как сделать текст который можно скопировать при нажатии?

    i3a4em
    @i3a4em
    Используй client.parse_mode = 'markdown' (для telethon. Что у тебя за либа - я не знаю)
    Ответ написан
    5 комментариев
  • Можно ли в телеграм боте создать отдельный чат?

    i3a4em
    @i3a4em
    Возможно ли с Api telegram создавать новый чат для двух пользователей?

    Да, Но тебе нужно client api. Боты не умеют создавать чаты. Смотри в сторону Telethon.
    Но вариант со ссылкой лучше. Так не заблочат аккаунт
    Ответ написан
    Комментировать
  • Как проверить оплату от пользователя и вывести после этого текст в телеграмм боте?

    i3a4em
    @i3a4em
    Как можно сделать так, чтобы бот проверял оплату и после этого выводил текст

    Бот никак не проверит оплату. Юмани и телеграм это два разных сервиса. Изучай апи юмани и смотри как они предлагают это делать. А затем отправляй сообщение

    или переадресовывал на другой сайт

    В телеграме нет редиректов. Забудь о переадресации
    Ответ написан
    Комментировать
  • Как сравнить две строки?

    i3a4em
    @i3a4em
    Зависит от содержания строк. Опираясь на строки в твоем примере - можно почистить регуляркой
    import re
    
    def clear(string):
        return re.sub(r'\W', '', string)
    
    print(clear('LEMUR-2-KAREN_B') == clear('LEMUR 2 KAREN_B'))
    >>> True
    Ответ написан
    1 комментарий
  • Как установить новую библиотеку в pycharm?

    i3a4em
    @i3a4em
    Если с pip не дружишь - можно так
    62a20d06c0f8f818235720.png
    Ответ написан
    Комментировать
  • Как писать моноширинным шрифтом через бота тг?

    i3a4em
    @i3a4em
    Как вариант
    parse_mode=“Markdown2”
    text=“_text_”
    Ответ написан
    Комментировать
  • Как из строки удалить конкретное слово?

    i3a4em
    @i3a4em
    import re
    text = 'sometimes i want delete some from this text some'
    string = re.sub(r'\ssome$|some\s', '', text)
    print(string)
    Ответ написан
    3 комментария
  • Как правильно реализовать систему уведомлений по времени в python?

    i3a4em
    @i3a4em
    А в чем проблема в том же event-loop проверять базу на наличие обновлений?
    Да и celery вполне подойдет
    Ответ написан
    Комментировать
  • Как отправть большой текст от бота пользователю?

    i3a4em
    @i3a4em
    await message.answer(
        'Какой вопрос у вас возник?\n' \
        'Если у вас вопрос по обучению нажмите на кнопку \n' \
        'Если же у вас проблемы с ботом или возникла ошибка нажмите'
        )
    Ответ написан
  • Как поменять user-agent на telethon?

    i3a4em
    @i3a4em
    Opentele
    Ответ написан
    Комментировать
  • Telethon (TelegramClient) - как подставить значение переменной в (Please enter your phone (or bot token): )?

    i3a4em
    @i3a4em
    Если проблема с "Please enter your phone (or bot token): " в случае блокировки аккауна, можешь сделать await client.start('0')
    Но это сработает если есть файл активной сессии или StringSession
    В остальных случаях просто передавай номер телефона

    client = TelegramClient(phone=xxxxxxxxxx)

    Для получения кода можно передать функцию, которая его вернет

    def code_callback():
        while True:
            #ждем код
            return code
    
    await client.start(phone=phone,  code_callback=code_callback)
    Ответ написан
    Комментировать
  • Как получить информацию о юзерах тг канала?

    i3a4em
    @i3a4em
    participants в вашем случае - сопрограмма. Если нужен результат ее выполнения, то ее нужно ожидать. Если вы заглядывали в доки telethon, то должны были заметить ссылки на доки asyncio.
    Это делается так
    participants = await client...
    Но я бы не использовал asyncio на вашем месте. Или предварительно изучил бы документацию.
    Ответ написан
  • Как спарсить товар?

    i3a4em
    @i3a4em
    1. Получите сырые данные для парсинга вы можете, используя библиотеку requests
    На выходе получите html исходник страницы.
    2. Спарсить данные из html можно с помощью регулярных выражений
    В большинстве случаев этого вам должно хватить.
    Регулярки, конечно, сложная тема для новичка. Но раз уж взялись писать парсер, то без них ну совсем никак
    Ответ написан
    4 комментария
  • Как после срабатывания функции-хендлера в telegram bot получить следующее сообщение?

    i3a4em
    @i3a4em
    Я в таких случаях в бд ставлю флаг ожидания данных с указанием типа (допустим это поле waitdata).
    При получении каждого сообщения проверяю наличие этого флага.
    Примерно так
    @dp.message_handler(content_types=['text'])
    async def echo(message: types.Message):
        # если мы чего-то ждем от пользователя
        if user.waitdata:
            # если ждем город
            if user.waitdata == "city':
                #Следующее сообщение можно считать городом
                # сохраняем город

    (Это не рабочий код, а пример. Перепишите под себя)
    Ответ написан
    Комментировать
  • Как узнать баланс btc кошелька?

    i3a4em
    @i3a4em
    Да, есть лучший вариант. Для начала гуглите что такое мнемоническая фраза. Выяснив, что множеством кошельков там и не пахнет - проверяете баланс одного единственного. Как получить ключ из мнемонической фразы - в гугле инфы навалом (в тч на python). Зачем по приватному ключу получаете баланс с помощью bit например. Уверен, что это и есть ваш "быстрый" вариант.
    Искренне надеюсь, что вас не коснулась лихорадка по поиску чужих кошельков перебором фраз. Если это так - не тратьте свое время. Это худший способ для такой (и без того безуспешной) цели
    Ответ написан
  • Как ввести в командную строку текст через бота в телеграме?

    i3a4em
    @i3a4em
    client.start() может принимать сопрограмму как аргумент. Я использую это как раз так как вы описываете.
    Кода под рукой нет, но я попробую
    async def GetCode(self, timeout):
            while not self.code and timeout > int(time.time()):
                self.project = await self.getDB()
                bot_last_message = self.project.bot_last_message.split(":")
                if bot_last_message:
                    message_type = bot_last_message[0]
                    if message_type == "telegram_code":
                        telegram_code = bot_last_message[2]
                        self.code = telegram_code
                        await self.clear_bot_last_message()
                        return self.code
    
                await asyncio.sleep(1)
            return None
    
    client.start(phone, code_callback=self.GetCode)

    сначала получаем phone от бота, затем создаем клиента и ждем код. Как только он появится в базе, сопрограмма GetCode завершится и client.start продолжит выполнение

    bot_last_message выглядит так: telegram_code:phone:code
    Ответ написан
  • Как вернуть кнопки при после нажатия кнопки "Очистить"?

    i3a4em
    @i3a4em
    Ваше объяснение не совсем понятное но я попробую.
    Для начала нужно:
    - ̶П̶е̶р̶е̶с̶т̶а̶т̶ь̶ ̶и̶с̶п̶о̶л̶ь̶з̶о̶в̶а̶т̶ь̶ ̶к̶и̶р̶и̶л̶л̶и̶ц̶у̶ ̶в̶ ̶и̶м̶е̶н̶а̶х̶ ̶п̶е̶р̶е̶м̶е̶н̶н̶ы̶х̶
    - Выяснить что означают символы "<" и ">" и больше их не путать
    - Хотя бы бегло пролистать документацию и выяснить, что place_forget() работает только для виджетов, установленных с помощью place()

    Не буду особо вникать, так как с tkinter работать не приходилось. Но если вопрос только в скрытии/отображении, то вот пример:

    from tkinter import *
    import time
    
    root = Tk()
    root.geometry('600x300')
    
    max_len = 25
    var = StringVar()
    
    def clear1():
        entry.delete("0","end")
        metka['text'] = ''
    
        
    def close():
        root.destroy()
    
    def metka1():
        pole= entry.get()
        metka.config(text = '' + pole)
     
    def add_num(text):
        entry.insert(0,text)
        
    def limitsize(*args):
        s = var.get()
        
        if len(s) > max_len:
            metka_hide.place_forget()
        else:
            metka_hide.place(x = 204, y = 120)
    
    
    var.trace_variable("w", limitsize)
    
    
    entry = Entry(root, width = 45, textvariable=var)
    entry.pack()
    
    
    metka = Label()
    metka.pack()
    
    metka_hide = Label( bg = 'red', width = 30,height = 7)
    metka_hide.pack()
    
    b3 = Button(metka_hide,text='3',width=25,command = lambda:add_num("3"))
    b3.pack()
    
    b7 = Button(metka_hide,text='-7',width=25,command = lambda:add_num("-7"))
    b7.pack()
    
    b304 = Button(metka_hide,text='304',width=25,command = lambda:add_num("304"))
    b304.pack()
    
    b3691 = Button(metka_hide,text='3691',width=25,command = lambda:add_num("3691"))
    b3691.pack()
    
    metka_hide.place(x = 204, y = 120)
    
    bcopy = Button( text='Дублировать',width=25,command = metka1)
    bcopy.pack()
    
    bclose = Button(root,text='Закрыть',width=25,command = close)
    bclose.pack()
    
    bclear = Button(root,text='Очистить',width=25,command=clear1)
    bclear.pack()
    
    root.mainloop()


    Надеюсь смысл изменений в вашем коде понятен.
    Ответ написан
  • Как получить ID пользователя вступившего в приватную группу по invite ссылке созданной ботом?

    i3a4em
    @i3a4em
    Раз уж Вы не соизволили указать используемую библиотеку, то приведу пример из первой, которую вспомнил.

    @bot.message_handler(content_types=['new_chat_members'])
    def new_chat_members(message):
        bot.send_message(message.from_user.id, "какая-то чертовски важная инфа")


    Если, как ты утверждаешь
    Блок на отправку сообщения ботом пользователю снимается...

    То это будет работать

    И, пожалуйста, указывай:
    - Реальную сложность вопроса (не лично для тебя а в целом для IT сообщества) при его публикации.
    - Библиотеки, которые используешь.
    - Минимальный воспроизводимый пример кода.

    Эти моменты оказывают колоссальное влияние при принятии решения об ответе на вопрос.
    Ответ написан
    Комментировать
  • Как получить username пользователя, зная его телефон?

    i3a4em
    @i3a4em
    Так работать не будет.
    Сначала ты должен добавить номер в тел книгу с помощью InputPhoneContact.
    Затем используй GetContactsRequest для получения сущностей
    Ответ написан
    Комментировать
  • Как запустить код на библиотеке selenium_stealth без монитора?

    i3a4em
    @i3a4em
    chrome_options = Options()
    chrome_options.headless = True # Это отключит режим отображения окна браузера
    driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
    У меня работает на ubuntu 18. Полет нормальный
    Ответ написан
    Комментировать