• Как сделать поиск по таблице SQLite3 по нескольким столбцам?

    @Alexa2007
    Создай отдельный файл и мучай оттуда базу данных, потому как и длинный запрос и лямбды выскакивают.. Вникать не охота.. Уменьши количество кода до трех строк и будет видно
  • Как сравнить айди человека который нажал на инлайн кнопку?

    @Alexa2007
    По моему есть ахренительный бот, а ты смотришь на код и .......
  • Как спарсить все артикулы со страницы с бесконечным скроллом на Beautifulsoup + Selenium?

    @Alexa2007
    Сергей Карбивничий, Как-то пытался с помощью Beautifulsoup парсить инстаграм, и могу сказать, что вы меня раззадорили:
    Во первых, если есть возможность парсить страницы добавляя "?page=1" , то использование Selenium только усложняет этот процесс (time.sleep(2))
    А вот использование супа можно запустить в многопоточности:
    import requests
    from multiprocessing.dummy import Pool as ThreadPool 
    
    url = 'https://upakovka-spb.ru/category/2-odnorazovaya-posuda/11-kontyeynyery/?page='
    urls = [url+str(i) for i in range(1,4)]
    print(urls)
    
    def get_url(url):
        r = requests.get(url)
        print(r)
    
    pool = ThreadPool(4) 
    results = pool.map(get_url, urls)
    pool.close() 
    pool.join()


    И если скролить, через некоторое время закончится оперативка, и кроме парсера, зависнет еще и компьютер.


    А вот инсту парсил только Selenium (Страница блогера) и скролил около трёх тысяч постов. И заметил то, что браузер на котором паразитирует Selenium самостоятельно выгружает лишнюю инфу. Ведь не гоже для хорошего браузера положить комп одной страницей
  • Проблема с PyQt5, как пофиксить ошибку?

    @Alexa2007
    Куча ошибок :))
    Я не знаю что такое amount и программа в этом месте падает. Но для работоспособности я просто поставил число двадцать и всё пошло.. Дальше наверное сам....
    import sys
    import os
    from PyQt5.QtCore import pyqtSlot
    from PyQt5.QtWidgets import *
    #from PyQt5.uic import loadUi
    from PyQt5 import QtWidgets, uic
    import random, string
    import time
    
    class p_main(QtWidgets.QMainWindow):
      def __init__(self):
        super(p_main, self).__init__()
        uic.loadUi("uno.ui", self)
        self.pushButton.clicked.connect(self.gen)
    
      def gen(self):
        value = 1                #Это надо вернуть на место
        while value <= 20: #amount:
            code = "https://discord.gift/" + ('').join(random.choices(string.ascii_letters + string.digits, k=16))
            value += 1
            self.label.setText(code)
    
    app = QApplication(sys.argv[:1])
    wind = p_main()
    wind.show()
    sys.exit(app.exec_())
  • Парсинг сайта. в какую сторону копать?

    @Alexa2007
    Ну а какой-то код ... даже тот что не работает
  • Как сделать timer на python с проверкой(pytelegrambotapi)?

    @Alexa2007
    Хаха.. Я как раз этим и занимался. А ты говоришь что глупый..
    Допиливай дальше сам. Но идея у тебя есть. Время лучше писать в json
    А с метода в метод прыгать можно вот так:
    https://github.com/eternnoir/pyTelegramBotAPI/blob...

    import time
    @bot.message_handler(func=lambda message: message.text == "zadanie")
    def zd(message): 
    
        buttons = types.ReplyKeyboardMarkup()
        buttons.add('OK')
    
        bot.send_message(message.chat.id,"Посмотри видео 30 сек", reply_markup=buttons)
        #тут записываешь  время в файл time.time()
        bot.register_next_step_handler(msg,uzhe)
        bot.enable_save_next_step_handlers(delay=2)
        bot.load_next_step_handlers()
    
    def uzhe(message):
        video = open('/tmp/video.mp4', 'rb')
        bot.send_video(message.chat.id, video, reply_markup=buttons)
    # а тут недо время прочитать
            if int(message.text) - время_из_файла < 30:
                msg = bot.send_message(message.chat.id,'Смотри до конца')
                bot.register_next_step_handler(msg, uzhe)
                #тут записываешь  время в файл time.time()
            else:
                bot.send_message(message.chat.id,'Молодец')


    Ну это так..на скрую руку
  • Как вводить ссылки в mysql?

    @Alexa2007
    возможно и links = '*link*, *link*, *link*, *link*, ... ' необходимо взять в три одинарные кавычки
  • Как сделать timer на python с проверкой(pytelegrambotapi)?

    @Alexa2007
    bot.polling() - вот эта строка НЕ ДАСТ работать НИ ОДНОМУ таймеру
    попробуй через вебхук
    или iogram

    проблема в том что ты хочешь запустить таймер для одного пользователя, а если их будет 10000 и одновременно. Сразу думай в другую сторону. и по любому многопоточность потому как таймером ты ставишь всего бота на паузу
  • Каким образом прикрутить и вытянуть данные из БД в боте?

    @Alexa2007
    Куча модулей которые ретёрнят кучу всего
    if call.data == 'prev':
                pl= b.get_prodacts(b.get_point(ID)[1])
                x = utils.read_user_position(ID,pl[0][4])-1
                if x<0: x=0
                utils.write_user_position(ID,pl[0][4], x )
                bot.delete_message(chat_id=ID, message_id=call.message.message_id)
                bot.send_photo(ID,pl[x][0],'push prev',reply_markup=keyboard)


    def read_user_position(user_id=1, parent = '1'):#Последняя позиция в рубрике
    	with open('user_points.json') as js_file:	#Чтение из JSON
    		js = json.load(js_file)
    		try:
    			return js[user_id][0][parent]
    		except:
    			return 0

    Короче отложи магазин, и создай проэкт рядом.
    Но теперь для юзера, типа нажал кнопку старт
    def new_user(id):
    записать_в_базу()
    записать_в_джейсон()

    А потом слепишь их вместе
  • Почему не работает print?

    @Alexa2007
    fedosacha02, В торопях пишешь код на коленке и тестируешь работу принтами, но со временемм это становится похожим на мусорку в которой ногу сломать можно. Рефакторинг - это удаление неполучившихся закоментированных методов, раздача нормальных имен переменным, распихивание блоков кода по методам, короче навести порядок
  • Почему не работает print?

    @Alexa2007
    fedosacha02, У меня кровь из глаз идёт, когда я смотрю на то, что ты делаешь с базой данных
    Удали всё что с ней связано и используй класс. Или у тебя через строчку ошибки с базой замучают.
    Потрать день два на то чтоб подкрутить класс под свои нужды и проведи рефакторинг бота. Иначе ты этот бот не доделаешь..
  • Почему не работает print?

    @Alexa2007
    Отрабатывае первый декоратор а до второго очередь не доходит

    ###Закоментируй одну строчку
    ##И получишь принт
    #А как выкручиваться думай сам
    #####@bot.message_handler(commands=['start'])
    
    def start_message(message):
        # hello,I'm bot po zametkah
        bot.send_message(message.chat.id, "Привет,я бот по заметках", reply_markup=keyboard1)
    # ДОБАВЛЕНИЕ ИД ЮЗЕРА В ТАБЛИЦУ user_id
    
    @bot.message_handler(commands=['start'])
    def add_in_db_1(message):
        print(message)
        save_user_id = message.from_user.id
        cur.execute(f"INSERT INTO user_id(user) VALUES(?), {save_user_id}")
        conn.commit()