Задать вопрос
  • Как забанить человека с пробелом в нике?

    Vindicar
    @Vindicar
    RTFM!
    Либо ник в кавычки, либо сделай mention вместо просто ника, это тоже работает.
    Ответ написан
    Комментировать
  • Почему пишет NameError: name 'message' is not defined?

    Vindicar
    @Vindicar
    RTFM!
    def callback_inline(call):
    У функции нет ни параметра message, ни локальной переменной message. А дальше у тебя идёт обращение к такой переменной по имени message - message.chat.id.
    Ответ написан
  • Как сделать чтобы бот правильно распознал цифры на скриншоте?

    Vindicar
    @Vindicar
    RTFM!
    Сделай столько скриншотов, чтобы был полный набор цифр. Вытащи каждую цифру отдельно (если можешь определить их позицию), потом просто пробуй вычитать из изображения неизвестной цифры эталонный образец каждой цифры. Где разница ближе всего к 0, там и правильный ответ.
    Ответ написан
    Комментировать
  • Есть ли способ отследить состояние Windows приложения из Python?

    Vindicar
    @Vindicar
    RTFM!
    Есть ещё извращённый способ - использовать WinAPI, чтобы найти в окне приложения тот элемент управления, на котором рендерится сообщение о завершении работы, и периодически опрашивать его текст.
    Смотри функции API EnumWindows(), EnumChildWindows() и GetWindowText().
    Чтобы вызывать API функции из скрипта на питоне - стандартный модуль ctypes в помощь.
    Ответ написан
    Комментировать
  • Каким способом удалить шум на картинке?

    Vindicar
    @Vindicar
    RTFM!
    Максимум что тут можно сделать - пройтись алгоритмом connected component и отсеять все компоненты, у которых слишком маленькая площадь. Но и это повредит текст, например, удалит точки на i.
    Ответ написан
    Комментировать
  • Какой декоратор отработал @dp.callback_query_handler или @dp.message_handler?

    Vindicar
    @Vindicar
    RTFM!
    Сделать отдельную функцию, чтобы у каждой был свой декоратор. Общую часть можно вынести в третью функцию, без декоратора, и вызывать её самостоятельно.
    Ответ написан
    Комментировать
  • Выдает ошибку "TypeError: 'module' object is not subscriptable" что делать?

    Vindicar
    @Vindicar
    RTFM!
    Что такое config? Судя по сообщению об ошибке, это модуль, т.е. где-то выше у тебя import config. Что ты пытался этим сделать?

    Ну и да, пусть бот проверяет id отправителя на совпадение с твоим.
    Ответ написан
  • Почему сообщение высылается не в тот канал в который нужно?

    Vindicar
    @Vindicar
    RTFM!
    > ctx.send
    И впрямь, почему? Может, потому что ты говоришь боту отправить его туда?
    Если надо отправлять в channel, то channel.send().
    Ответ написан
    Комментировать
  • Команда временного мьюта не работает - в чем проблема?

    Vindicar
    @Vindicar
    RTFM!
    Ну во-первых, imported but unused - это предупреждение, а не ошибка. Учи разницу. Тебе IDE указывает, что импортированный модуль time не используется, а переменная time тут ни причём.
    Во-вторых, ты указал *, time: int, reason=None - discord.py рекомендует указываь не более одного параметра после *, это означает "всё, что дальше - записать в этот параметр, не разбивая на слова". Если параметров более одного, то не очень понятно, что куда записывать.
    В-третьих, приводи полный текст ошибки, а также вставь отладочный print() в начало функции, чтобы понять, запускается ли она вообще.
    В-последних, if можно здорово сократить, вынеся общие части "за скобки".
    Ответ написан
    Комментировать
  • Как запустить python код, при переходе на сайт?

    Vindicar
    @Vindicar
    RTFM!
    Запускать питон код на твоём сервере? Напиши маленький сервис на flask или django, и обращайся к нему с помощью JS на веб-странице. Разумеется, коду будет доступен только сервер, на котором он исполняется, а не машина пользователя.

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

    Vindicar
    @Vindicar
    RTFM!
    Я не работал с PyQT, но предложу догадку: ты создал новый объект QPixmap(), а как о нём узнает твоё окно, точнее, его родитель QMainWindow?
    Ответ написан
    Комментировать
  • Как объеденить Ubuntu и windows 10 в локальную сеть?

    Vindicar
    @Vindicar
    RTFM!
    Вопрос: доступ по SSH откуда?
    Если с ноута на стационарный комп, то проблем должно быть минимум:
    1. Убедиться, что трафик ходит между компом и ноутом (интерфейсы подняты, адреса и подсети выбраны корректно).
    2. Убедиться, что SSH сервер слушает соответствующий адрес (ну или слушает 0.0.0.0).
    Роутер в этой схеме никак не участвует.

    Если же нужен SSH доступ изнутри сети роутера, но не с ноута, то тут дело сложнее. Помимо вышеуказанного:
    3. Ноут должен либо делать port forwarding на стационарный комп, либо делать bridge для двух сетей - wi fi и кабель.

    А если нужен доступ извне сети роутера, то дело ещё усложняется:
    4. Роутеру нужен внешний IP, на который можно постучаться.
    5. Роутер должен делать port forwarding для выбранного порта для SSH на ноут.

    Без конкретики (точная решаемая задача, схема сети, конфиги приложений, список проброшенных портов) тут ничего не посоветовать.
    Ответ написан
    Комментировать
  • Как работает бинарный оператор & в python?

    Vindicar
    @Vindicar
    RTFM!
    Этот оператор может быть перегружен, а потому имеет разную семантику для разных типов данных.
    Для множеств этот оператор возвращает их пересечение.
    Ты можешь добавить поддержку этого оператора в свой класс, объявив магический метод __and__().
    Ответ написан
    2 комментария
  • Как найти геометрическую прогрессию в списке?

    Vindicar
    @Vindicar
    RTFM!
    Составь новый список, в котором каждый элемент - это частное* двух соседних элементов исходного списка.
    Если в новом списке будет несколько одинаковых** элементов подряд, то в исходном списке соответствующие элементы формируют геометрическую прогрессию.

    *Не забываем про деление на ноль! Может потребоваться отдельная проверка.

    **Не забывай про ограниченную точность чисел с плавающей точкой. Сравнивать такие числа лучше не как обычно, a == b, а с помощью конструкции вида abs(a - b) <= E, где ты задаёшь в E желаемую точность (например, 0.000001).
    Ответ написан
    Комментировать
  • Почему код выдает ошибку?

    Vindicar
    @Vindicar
    RTFM!
    Передаваемые значения для execute() должны быть завёрнуты в кортеж, т.е.
    execute('INSERT INTO foo VALUES (%s, %s)', ('bar', 'baz'))

    Ну и да, проверь синтаксис SQL-запроса.
    Ответ написан
    Комментировать
  • Как написать следующую логику на питоне?

    Vindicar
    @Vindicar
    RTFM!
    Как всегда, разбить задачу на меньшие.
    1. Получить список имён папок. См. модули pathlib или os.path, а также функции glob.glob() или os.walk().
    2. Разбить имя папки на компоненты - дату и время. str.split() в помощь.
    3. Разбить компоненты на отдельные части - месяц, день, год, час, минуту. То же самое, str.split()
    4. Преобразовать каждый компонент в целое число, расположить их в одном кортеже в порядке убывания: (год, месяц, день, час, минута). Такие кортежи можно сравнивать напрямую, т.е. (1, 2, 3, 4, 5) будет больше чем (1, 2, 3, 4, 4).
    5. Шаги 2-4 заворачиваешь в функцию, которая и возвращает полученный кортеж.
    6. Пропускаешь список папок из п. 1 через функцию max() с параметром key. В key передашь твою функцию из шага 5, это будет критерий сравнения элементов списка. Функция вернёт тебе "наибольший" элемент, а с учётом критерия из п. 4 это будет имя папки с наиболее поздними датой и временем.
    7. PROFIT
    Код набросай сам. Как использовать упомянутые функции, читай в официальной документации.
    Ответ написан
  • Как отметить пользователей с определенной ролью?

    Vindicar
    @Vindicar
    RTFM!
    1. Получить объект гильдии
    2. Получить у него объект роли
    3. Обратиться к свойству mention роли
    Ответ написан
  • Python выдаёт ошибку: SyntaxError: invalid syntax что делать?

    Vindicar
    @Vindicar
    RTFM!
    Строкой выше не закрыта скобка.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы дискорд бот на python воспринимал ещё одно сообщение после if?

    Vindicar
    @Vindicar
    RTFM!
    Не очень понятно, что ты хочешь. Но тебе нужно решить:
    а) Или у тебя последовательность сообщений не важна, тогда вопрос стоит только в формулировании правильных условий.
    б) Или у тебя последовательность сообщений важна, тогда нужно для каждого пользователя помнить, на каком месте последовательности он остановился. Эту информацию придётся хранить самому.

    Есть, конечно, вариант с wait_for() (если у тебя discord.py а не что-то другое), но он тоже не из простых.
    Ответ написан
  • Как поставить цикл while на паузу с помощью keyboard?

    Vindicar
    @Vindicar
    RTFM!
    Yvesik, ну если я верно понимаю API keyboard, твой скрипт должен работать. Вставь отладочный print() в цикл для проверки, ну и небольшой time.sleep() (миллисекунд так 50-100) может не помешает...
    Правда, есть потенциальная проблемка, не связанная с твоим вопросом.
    Метод press() посылает сигнал "клавиша нажата и удерживается". Он НЕ посылает последующий сигнал "клавиша отпущена".
    Поэтому зацикливать его довольно-таки бессмысленно, после первого нажатия приложение может не отвечать на последующие, пока не получит сигнал "W отпущена". Если тебе нужно спамить нажатия W, а не держать кнопку, то нужно было смотреть в сторону send().
    Ответ написан
    Комментировать