База данных кое-как заполняется
This commit is contained in:
parent
baf2e2561a
commit
f81fb60969
8 changed files with 58 additions and 43 deletions
|
@ -1,15 +1,5 @@
|
|||
# Бот в Telegram для трудоустройства
|
||||
# Бот в Telegram для управления Личным кабинетом в ИТ-студии Зажигина
|
||||
|
||||
Бот написан на TypeScript с помощью фреймворка [Grammy](https://www.npmjs.com/package/grammy) для Telegram API. Предназначен для запуска в контейнере Docker, файл сборки можно видеть под названием `dockerfile`. Главный метод запуска проекта — через файл Bash скрипта `start.sh` от имени администратора.
|
||||
Бот описан в [`src/bot.ts`](../src/index.ts) на [TypeScript](https://www.typescriptlang.org/docs "Документация TypeScript") с помощью фреймворка [Grammy](https://grammy.dev/guide "Документация Grammy") над [Telegram Bot API](https://core.telegram.org/bots/api "Документация Telegram Bot API"). Предназначен для запуска в контейнере [Docker](https://docs.docker.com/reference "Документация Docker") через [NodeJS](https://nodejs.org/api/ "Документация NodeJS"), файл сборки можно видеть под названием [`src/dockerfile`](../src/dockerfile). Главный метод запуска проекта — через файл [Bash](https://www.gnu.org/software/bash/manual/bash.html "Документация Bash") скрипта [`start.sh`](../start.sh) от имени администратора.
|
||||
|
||||
На данный момент бот поддерживает только команду «`/start`» и «`/register`», отвечая первой подсказкой для пользователя на последующие действия, а на вторую, тем что команда ещё в действительности свои функции не выполняет.
|
||||
|
||||
|
||||
## Запуск бота
|
||||
|
||||
Для запуска требуются 2 переменных окружения: `BOT_TOKEN`, токен бота Telegram получаемый от [BotFather](https://t.me/BotFather), и `DB_PATH`, путь к базе данных на хосте. `BOT_TOKEN` указывается в `dockerfile` на 13-й строке после «`ENV BOT_TOKEN=`», а `DB_PATH` в `start.sh` на 3-й после «…`-v`» и до «`:`…».
|
||||
|
||||
Затем нужно запустить файл `start.sh` от имени администратора:
|
||||
```bash
|
||||
sudo bash start.sh
|
||||
```
|
||||
Официально запускается от имени [@emp_zaboal_bot](https://emp_zaboal_bot.t.me) и администрируется [Богданом](https://zaboal.t.me). Руководство по запуску описано в [`docs/start.md`](start.md).
|
8
docs/start.md
Normal file
8
docs/start.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
## Запуск бота
|
||||
|
||||
Для запуска требуются 2 переменных окружения: `BOT_TOKEN`, токен бота Telegram получаемый от [BotFather](https://t.me/BotFather), и `DB_PATH`, путь к базе данных на хосте. `BOT_TOKEN` указывается в [`src/dockerfile`](../src/dockerfile) на 13-й строке после «`ENV BOT_TOKEN=`», а `DB_PATH` в [`start.sh`](../start.sh) на 3-й после «…`-v`» и до «`:`…».
|
||||
|
||||
Затем нужно запустить файл [`start.sh`](../start.sh) от имени администратора:
|
||||
```bash
|
||||
sudo bash start.sh
|
||||
```
|
41
src/bot.ts
Normal file
41
src/bot.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
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});`);
|
||||
}
|
||||
|
||||
|
||||
|
||||
bot.command("start", (ctx) => {
|
||||
ctx.reply(
|
||||
"Вы можете ознакомиться с тем как использовать данного бота по команде `/help`",
|
||||
{ parse_mode: "MarkdownV2" }
|
||||
);
|
||||
});
|
||||
|
||||
bot.command("help", (ctx) => {
|
||||
ctx.reply(
|
||||
"Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения\\. Но если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде: `/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" }
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
bot.start();
|
|
@ -5,7 +5,7 @@ WORKDIR /usr/src/app
|
|||
COPY package.json .
|
||||
|
||||
RUN npm install
|
||||
COPY index.ts .
|
||||
COPY bot.ts .
|
||||
|
||||
|
||||
# Требуемые переменные окружения
|
||||
|
|
25
src/index.ts
25
src/index.ts
|
@ -1,25 +0,0 @@
|
|||
import { Bot } from "grammy";
|
||||
const bot = new Bot(`${process.env.BOT_TOKEN}`);
|
||||
|
||||
|
||||
|
||||
bot.command("start", (ctx) => {
|
||||
ctx.reply("Вы можете ознакомиться с тем как использовать данного бота по команде /help");
|
||||
});
|
||||
|
||||
bot.command("help", (ctx) => {
|
||||
ctx.reply(
|
||||
"Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения\\. Если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде: `/register [полное имя] <[электропочта]>`",
|
||||
{ parse_mode: "MarkdownV2" },
|
||||
);
|
||||
});
|
||||
|
||||
bot.command("register", (ctx) => {
|
||||
ctx.reply("Данная команда на данный момент не работает, никого нигде не регистрирует. Данная функция ещё в разработке");
|
||||
if (ctx.match != '') {
|
||||
ctx.reply(`Вы дали команде аргументы: ${ctx.match}`);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
bot.start();
|
|
@ -2,13 +2,14 @@
|
|||
"name": "bot-telegram_zaboal-employment",
|
||||
"version": "0.0.1",
|
||||
"description": "Бот в Telegram для трудоустройства в ИТ-студию Зажигина.",
|
||||
"main": "index.ts",
|
||||
"main": "bot.ts",
|
||||
"scripts": {
|
||||
"start": "ts-node index.ts"
|
||||
"start": "ts-node bot.ts"
|
||||
},
|
||||
"author": "Зажигин Богдан Алексеевич <za.boal@vk.com>",
|
||||
"dependencies": {
|
||||
"grammy": "1.12.0"
|
||||
"grammy": "1.12.0",
|
||||
"sqlite3": "5.1.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ts-node": "^10.9.1",
|
||||
|
|
0
src/sqlite.ts
Normal file
0
src/sqlite.ts
Normal file
2
start.sh
2
start.sh
|
@ -1,3 +1,3 @@
|
|||
# Сборка и запуск контейнера Docker
|
||||
docker build src -t bot-telegram_zaboal-employment;
|
||||
docker run bot-telegram_zaboal-employment;
|
||||
docker run -v /home/zaboal/work/organizations/zazhigin-s_it-studio/databases/local_organizational-structure.db:/usr/src/app/dbase.db bot-telegram_zaboal-employment;
|
Loading…
Add table
Reference in a new issue