Василий Банников, по умолчанию в X включён xauth, который не позволяет работать с сокетом X-сервера прямым коннектом без авторизации. Нужно или авторизацию выключать, или разбираться, как получить доступ к ключу (честно говоря, не изучал, как это работает и насколько хорошо защищено).
YOKARAMANE, в чём глубокий смысл global в этих функциях?
В этом коде обработчик реагирует только на текст "text" (выводит сообщение и в переменную text записывает id сообщения) и на "s" (выводит сообщение, а потом регистрирует следующий обработчик). Думаю, планировалось не это, правда?
Asriel, не думаю что есть готовый, хотя если найти полностью работающий метод скачивания оттуда файлов, то написать такого бота несложно. Но, опять же, для разовой задачи проще скачать и выложить руками, чем воевать с написанием работоспособного бота.
Asriel, это довольно странное условие, и да, реально такой бот, сделанный не для мелких личных нужд, долго не проживёт, так как яндексу это не может понравиться.
Anisimov1123,
guild.fetch_members - это функция, её надо вызывать, причём, поскольку она асинхронная, вызывать с await. И зачем аргумент members у обработчика команды?
Anisimov1123, ну вот переменная guild равна None. Не нужно наивно копипастить найденный код, надо понимать, что за ним стоит.
Например, если сообщение делается по команде с сервера, то текущий сервер можно взять из переменной ctx.guild (ctx - переменная контекста, передаваемая в обработчик команды).
Например, если речь идёт о конкретном сервере, у которого известен id, то смотрим в доке, как получить объект Guild по известному значению guild_id.
mcjohnyx, нет, как раз в питоновом модуле sqlite3 делать commit не нужно! Кроме случая, когда автокоммит отключен явным образом. Посмотри в доку, там всё это написано.
Не в SQL, а в конкретной базе данных с конкретными настройками. Про это, конечно, все подумали в первую очередь, но питоновый модуль sqlite3 по умолчанию коннектится с автокоммитом (в отличие от самой библиотеки libsqlite3), его надо явно отключать в случае необходимости.
AirronBark, я не могу сходу сказать, что тут может не работать, но несколько замечаний есть.
Зачем тут with self.connection? Можно просто вызывать execute от курсора, который уже инициализирован в конструкторе класса.
Не надо колонки в таблице называть русскими буквами. Ничего полезного это не даёт, а проблемы создать - это пожалуйста.
Кавычки в базах данных используются для строковых литералов. Sqlite очень вольготно к ним относится (в отличие от других баз), но это может приводить к неоднозначностям на пустом месте. Например: UPDATE mytable SET 'col1'='col2' - это присвоить col1 значение в колонке col2 или строку 'col2'?