Задать вопрос
  • Можно ли удалить из дерева эту цепочку ходов не перестраивая его заново?

    @TheDigitalMadness
    Программист
    Все элементарно:
    a = {
        '1': 1,
        '2': 2
    }
    
    a.pop('1')
    
    print(a)
    # {'2': 2}
    Ответ написан
    Комментировать
  • Как спарсить сайт с авторизацией через смс?

    @TheDigitalMadness
    Программист
    Вариант 1:

    1) Смотришь, какие реквесты отправляет сайт на сервачок при регистрации
    2) На своем ЯП (удобно использовать Python) повторяешь реквесты
    3) Любым удобным тебе образом читаешь прогой смс. Тебе необходимо знать, кто именно пришлет тебе смс. Попробуй сначала руками авторизоваться, чтобы узнать
    4) Отправляешь реквест с данными из смс (опять же посмотри, какой тебе необходим реквест через сайт)
    5) Сохраняешь респонс. Там должны быть куки с токеном
    6) Парсишь сайт, отправляя в кукисах данный токен

    Вариант 2:
    1) Регаешься руками
    2) Сохраняешь токен
    3) Парсишь сайт, отправляя в кукисах этот токен
    Ответ написан
    Комментировать
  • Поиск куда можно добраться по графу за время?

    @TheDigitalMadness
    Программист
    Присоединяюсь к написанному выше человеком. Если не взвешенный, то идешь алгоритмом BFS, пока расстояние меньше нужного тебе. Если граф взвешенный, то либо алгоритм Дейкстры, если у вас конкретная точка, либо алгоритм Флойда, если вы не знаете, откуда начинать будете. Затем смотрите просто из необходимой вам точки в списке смежности расстояния
    Ответ написан
    Комментировать
  • Как добавить один обработчик на несколько callback data aiogram3?

    @TheDigitalMadness
    Программист
    Не очень понятен вопрос. Я полагаю, вы имели ввиду, как обрабатывать разные колбеки? Вот пример из моего проекта:
    def callback_get(self, call):
            # message = call.message
            user_id = call.from_user.id
            data = str(call.data).split(' ')
            print(data)
    
            menu = data[0]
            if menu == 'MAIN_MY+VACANCIES_MENU':
                # Логика
            elif menu == 'MAIN_MY+VACANCIES_AT+VACANCY_MENU':
                # Логика
            elif menu == 'MAIN_MENU':
                # Логика
            elif menu == 'MAIN_MY+CHATS_MENU':
                database = Database('users.db')
                database.execute(f"SELECT * FROM users WHERE user_id={user_id}")
                user = database.get_result()[0]
    
                if user[3] == menu:
                    database.execute(f"UPDATE users SET menu='MAIN_MY+CHATS_AT+CHAT_MENU' WHERE user_id={user_id}")
    
                    chats_db = Database('chats.db')
                    markup = self.mc.create_back_button_markup()
                    if int(data[2]) == 1:
                        chats_db.execute(f"UPDATE chats SET employer_status=1 WHERE employer_id={user_id} AND id={data[1]}")
    
                        markup = self.mc.create_main_myChats_atChat_menu_markup()
                    elif int(data[2]) == 0:
                        chats_db.execute(f"UPDATE chats SET master_status=1 WHERE master_id={user_id} AND id={data[1]}")
    
                        markup = self.mc.create_back_button_markup()
    
                    self.send_message(user_id, "Перевожу в чат", reply_markup=markup)
                    self.do_send_chats_messages(user_id=user_id, chat_id=int(data[1]))
                else:
                    self.send_message(user_id, """Вы должны находиться в меню "Мои чаты", чтобы использовать данную функцию""")


    Здесь я колбек составляю по одному типу:
    "меню_пользователя(его состояние) команда аргументы", где разделители - пробелы. Правда, в данном случае я использовал pyTelegramBotAPi, поэтому код у вас может немного отличаться, но суть такая же
    Ответ написан
  • Как определить время выполнения запроса post?

    @TheDigitalMadness
    Программист
    Засекаешь time перед запросом. Сам запрос пишешь не await, а .then(response => {}), где в функции смотришь время и вычитаешь из него то, что засекал. Дальше уже саму обработку запроса
    Ответ написан
    Комментировать
  • Can't connect to MySQL server on 'host:3306' (110). Ошибка MySQL, Как решить?

    @TheDigitalMadness
    Программист
    Вам скорее всего вовсе и не нужно использовать сервер. Достаточно у себя на компьютере сделать базу данных и, например, использовать sqlite (почитайте в интернете, как сделать). Сервер нужен для того, чтобы запустить код на постоянку, проблема скорее всего не в нем.
    Ответ написан
    Комментировать
  • Пишу юзерботов. Надо запускать несколько приложений с разными ботами, как это сделать?

    @TheDigitalMadness
    Программист
    используй разные базы данных. Например, ты можешь использовать одинаковые названия баз данных, но в конце добавлять "_номер".

    Либо же вариант гораздо проще и правильнее - после запроса в базу данных, закрывай коннект с ней.

    Объясняю, почему необходимо так сделать: программа не может использовать базу данных, которая уже используется на данный момент другой программой. Поэтому правильно будет закрывать неиспользуемую на данный момент базу данных, а открывать непосредственно перед запросом в нее.
    Ответ написан
  • Потеря связи в боте telebot, в чем могут быть проблемы?

    @TheDigitalMadness
    Программист
    Такая же проблема. Решение простое:
    while True:
        try:
            print('Bot started')
            bot = Bot()
        except Exception as e:
            print('Bot crashed')
            print(e)

    также, можно сделать задержку в except, чтобы бот "успел прийти в себя"

    Изменено: у меня ошибка прошла когда я не стал переключать ноутбук, на котором поставлен бот, в спящий режим. В общем, просто нельзя переводить компьютер в спящий режим
    Ответ написан
    Комментировать
  • Как можно сравнить полученный ботом id пользователя с каждым id из БД SQLite с помощью цикла?

    @TheDigitalMadness
    Программист
    Смотри: у тебя в user_id_massive содержаться id не в цифровом виде, а в кортеже. Тогда, тебе достаточно просто привести message.from_user.id к кортежу
    current_user_id = tuple([message.from_user.id])
    if current_user_id in user_id_massive:
        ....
    Ответ написан
    1 комментарий
  • Как импортировать get_menu_keyboard с keyboards.py?

    @TheDigitalMadness
    Программист
    Дай, пожалуйста, папку, в которой находятся твои файлы. Скорее всего, проблема в том, где эти файлы находятся. Я скопировал твой код, у меня все сработало
    Ответ написан
  • В python начинающий. Не понимаю в чем ошибка именно когда int(input())?

    @TheDigitalMadness
    Программист
    Варианты проблем:
    1) Не установлен / установлен неправильный интерпретатор. 3.12 очень новая версия, может иметь баги. Советую 3.7, как базу / 3.10
    2) Часть кода написана русскими буквами: в ошибке четко сказано, что она в декодировке
    3) Цифры, которыми ты пишешь, из какой-то кодировки, которую не воспринимает питон: опять же ошибка в декодировке.
    Ответ написан
    Комментировать
  • Как переместить каретку на строчку вверх?

    @TheDigitalMadness Автор вопроса
    Программист
    На просторах разноязычного интернета, если так можно выразиться, не нашел другого решения
    Ответ написан
    Комментировать
  • Как мне на движения мыши назначить нажатия кнопок?

    @TheDigitalMadness
    Программист
    Три действия:
    1) Получаешь координаты мыши.
    2) В цикле проверяешь изменение координат
    3) Делаешь нажатие кнопки клавиатуры

    Для отслеживания положения мышки можно использовать библиотеку pyautogui , а для нажатия клавиатуры библиотеку keyboard.

    #определение положения мыши
    import pyautogui as pa
    last_x, last_y = pa.position()
    while True:
        x, y = pa.position()
        if x != last_x or y != last_y:
            pass # проверка, куда передвинулась мышка, действие, которое нужно сделать


    #нажатие клавиш на клавиатуре
    import keyboard as kb
    
    kb.press('кнопка') # вместо кнопки ставите кнопку, которую нужно нажать
    Ответ написан
    Комментировать
  • Какие библиотеки использовать для работы с мышью в играх/майнкрафте?

    @TheDigitalMadness
    Программист
    Как вариант попробуйте mineflayer библиотеку на NODE Js. Она позволяет управлять персонажем в майнкрафт. Довольно простая в освоении библиотека. Гайды советую смотреть английских блогеров, так как рускоязычных не видел нормальных
    Ответ написан
    Комментировать
  • Как имитировать физическое движение мыши?

    @TheDigitalMadness
    Программист
    Не очень понял вопрос. Что вы хотите сделать? Если через pyautogui , то
    import pyautogui as pa
    pa.moveTo(x, y) # x и y координаты на мониторе
    Ответ написан
    Комментировать
  • Discord бот не видит файл "prefix.txt", как решить?

    @TheDigitalMadness
    Программист
    Проверь название файла. Также проверь, если файл типа txt, но в названии ".txt" нету, то и при открытии нужно писать open("prefix", "r")
    Ответ написан