From c798bd7797ef724609dd12613882f842532068be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=97=D0=B0=D0=B6=D0=B8=D0=B3=D0=B8=D0=BD=20=D0=91=D0=BE?= =?UTF-8?q?=D0=B3=D0=B4=D0=B0=D0=BD=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5?= =?UTF-8?q?=D0=B5=D0=B2=D0=B8=D1=87?= Date: Mon, 5 Dec 2022 17:31:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D0=B8=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bot.ts | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/src/bot.ts b/src/bot.ts index 02f66ee..3af831f 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -1,14 +1,8 @@ import { Bot } from "grammy"; const bot = new Bot(`${process.env.BOT_TOKEN}`); - -const sqlite3 = require("sqlite3"); -const db = new sqlite3.Database(process.env.DB_PATH) - -function newPerson(values: string){ - console.log("В таблицу people вносятся данные: " + `${values}`); - db.run(`INSERT INTO people(per_name, per_email) VALUES (${values});`); -} +import { Database } from "sqlite3"; +const database = new Database(`${process.env.DB_PATH}`) @@ -21,20 +15,24 @@ bot.command("start", (ctx) => { bot.command("help", (ctx) => { ctx.reply( - "Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения\\. Но если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде: `/register \"[полное имя]\", \"[электропочта]\"`", + "Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения\\. Но если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь в формате SQL по команде: `/register \"[полное имя]\", \"[электропочта]\"`", { parse_mode: "MarkdownV2" }, ); }); bot.command("register", (ctx) => { - if (ctx.match != '') { - newPerson(`${ctx.match}`); - } else { - ctx.reply( - "Данная команда требует аргументы, введённые в формате `\"[полное имя]\", \"[электропочта]\"`\\. Например: `/register \"Зажигин Богдан Алексеевич\", \"za.boal@vk.com\"`", - { parse_mode: "MarkdownV2" } - ); - } + // В ctx.match берутся аргументы команды /register и используются как данные вводимые в таблицу + database.run(`INSERT INTO people(per_name, per_email) VALUES (${ctx.match})`, (error) => { + if (error == null) { + ctx.reply(`Регистрация прошла успешно`) + } else { + // Отправить «сухую» ошибку пользователю + ctx.reply( + `Регистрация не удалась, SQLite сообщает об ошибке: «\`${error}\`»\\. Вы можете запросить трактовку и рекомендации у @zaboal`, + { parse_mode: "MarkdownV2" } + ); + } + }); });