KerMan_KSP,
server_id INT - '{guild.id}'
Почему в целое поле кладёшь строку? Я же сказал, замени форматирование строк на плейсхолдеры, они сами позаботятся о типах и экранировании.
Далее, ты как, с основами реляционных БД знаком вообще? Если нет, ознакомься. Иначе будешь собирать грабли.
id уникальный для всех записей в таблице? Тогда id INT имеет смысл сделать PRIMARY KEY. Тогда можно будет избавиться от запроса SELECT, использовав синтаксис INSERT OR IGNORE INTO ...
Какой мессенджер?
Какая библиотека?
Что конкретно непонятно - как сделать обработку события "юзер оставил реакцию"? Как создать канал?
Какой код есть на настоящий момент?
Телепаты в отпуске, так что дополни вопрос (вопрос, а не ответ на комментарий!).
VP_Font, выводишь юникодную строку, но почему-то в кодировке вроде windows1251. Перекодируй.
(Я бы перекодировал сам, но тебе хватило ума вставить текст картинкой).
Сергей Горностаев, ну обычного школьника это отпугнёт. А так, понятно что любую защиту можно обойти. Как всегда, вопрос в соотношении ресурсов на защиту и взлом.
> database.add_row
Т.е. дело скорее всего не в socket.io, а в базе данных. Что за движок используется? Есть ли какая-либо библиотека посредник (потому что интерфейс не очень-то похож на типовой питоний интерфейс БД)? Как представлено поле message (тип данных, collate)?
Также можно для надёжности проверить, что json['text'] - это именно строка, через isinstance(json['text'], str). Но я думаю, это условие выполняется. В таком случае дело в том, что БД/обёртка над БД либо не переваривает юникод, либо предпочитает, чтобы ей передавали уже закодированный bytes.
Приведи код, минимально воспроизводящий проблему (не забудь про форматирование).
Также укажи используемые версии ПО, так как до 2.0 у socket.io были известные проблемы с юникодом.
pt3n4ik_3, bot.polling() читает события, приходящие от сервера Телеграм, и вызывает твои обработчики для подходящих событий.
Поэтому любое непойманное исключение в обработчики так или иначе всплывёт в bot.polling().
Александр, как ошибка вам говорит (простым английским), у тебя где-то в запросе косяк. Лишняя закрывающая скобка, похоже.
И да, по видосикам учиться обычно даже сложнее чем по толковому тексту.
Hikanosu, Что насчёт DELETE?
Потому что fetchall() реально имеет смысл только для SELECT.
И честно, я не очень понимаю смысл функции __query(). Она вносит целую кучу неэффективностей: тут и соединение каждый раз, тут и fetchall(), который может аукнуться если выбрано много данных...
Почему не создать соединение единожды в начале работы бота, и не использовать его?
server_id INT - '{guild.id}'
Почему в целое поле кладёшь строку? Я же сказал, замени форматирование строк на плейсхолдеры, они сами позаботятся о типах и экранировании.
Далее, ты как, с основами реляционных БД знаком вообще? Если нет, ознакомься. Иначе будешь собирать грабли.
id уникальный для всех записей в таблице? Тогда id INT имеет смысл сделать PRIMARY KEY. Тогда можно будет избавиться от запроса SELECT, использовав синтаксис INSERT OR IGNORE INTO ...