Работающая версия с подключённой БД
This commit is contained in:
parent
a10eb7e3fa
commit
bd423007f5
6 changed files with 60 additions and 21 deletions
17
dockerfile
Normal file
17
dockerfile
Normal file
|
@ -0,0 +1,17 @@
|
|||
FROM node:lts-buster-slim
|
||||
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY src/package.json .
|
||||
|
||||
RUN npm install
|
||||
COPY src/app.js .
|
||||
|
||||
|
||||
# Требуемые переменные окружения
|
||||
# Токен бота Telegram от бота @BotFather
|
||||
ENV BOT_TOKEN=""
|
||||
# Путь к базе данных внутри контейнера, монтируется из файловой системы хоста
|
||||
ENV DB_PATH="./dbase.db"
|
||||
|
||||
CMD npm run start
|
16
docs/readme.md
Normal file
16
docs/readme.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Бот в Telegram для трудоустройства
|
||||
|
||||
Бот основан на фреймворке [Telegraf](https://www.npmjs.com/package/telegraf) под Telegram API для NodeJS. Предназначен для запуска в контейнере Docker, файл сборки можно видеть под названием `dockerfile`. Главный метод запуска проекта — через bash файл `start.sh` от имени администратора.
|
||||
|
||||
На данный момент бот поддерживает только команду `/start`, отвечая на неё подсказкой для пользователя на последующие действия. Но с одной командой делать то и нечего.
|
||||
|
||||
|
||||
## Запуск
|
||||
|
||||
Для запуска требуются 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
|
||||
```
|
||||
|
21
src/app.js
Normal file
21
src/app.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database(process.env.DB_PATH, sqlite3.OPEN_READWRITE);
|
||||
|
||||
const { Telegraf } = require('telegraf');
|
||||
const bot = new Telegraf(process.env.BOT_TOKEN);
|
||||
|
||||
|
||||
bot.command("start", (ctx) => { // Команда инициации диалога, инструктирование первых шагов
|
||||
ctx.reply("Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения. Если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде /register.")
|
||||
});
|
||||
|
||||
bot.launch();
|
||||
|
||||
|
||||
// Нормальная остановка работы проекта
|
||||
process.once('SIGINT', () => {
|
||||
bot.stop('SIGINT');
|
||||
});
|
||||
process.once('SIGTERM', () => {
|
||||
bot.stop('SIGTERM');
|
||||
});
|
17
src/main.js
17
src/main.js
|
@ -1,17 +0,0 @@
|
|||
const { Telegraf } = require('telegraf');
|
||||
const bot = new Telegraf(process.env.BOT_TOKEN);
|
||||
|
||||
bot.command("start", (ctx) => // Команда инициации диалога, инструктирование первых шагов
|
||||
ctx.reply("Список доступных команд доступен по кнопке слева от поля ввода сообщения. Если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде /register.")
|
||||
)
|
||||
|
||||
bot.command("register", (ctx) => // Команда регистрации в схеме базы данных организационной структуры
|
||||
ctx.reply("Это команда регистрации. Она пока не работает.")
|
||||
)
|
||||
|
||||
|
||||
bot.launch();
|
||||
|
||||
// Нормальная остановка работы бота
|
||||
process.once('SIGINT', () => bot.stop('SIGINT'));
|
||||
process.once('SIGTERM', () => bot.stop('SIGTERM'));
|
|
@ -1,14 +1,13 @@
|
|||
{
|
||||
"name": "bot-telegram_employment_in_zaboal-s_it-studio",
|
||||
"version": "0",
|
||||
"description": "Бот в Telegram для трудоустройства соискателей в ИТ-студию Зажигина",
|
||||
"author": "Богдан Зажигин <za.boal@vk.com>",
|
||||
"main": "main.js",
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"start": "node main.js"
|
||||
"start": "node app.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"sqlite": "4.1.2",
|
||||
"sqlite3": "5.1.2",
|
||||
"telegraf": "4.11.2"
|
||||
}
|
||||
}
|
3
start.sh
Normal file
3
start.sh
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Запуск
|
||||
docker build . -t zaboal/bot-telegram_employment;
|
||||
docker container run -v /home/zaboal/work/organizations/zazhigin-s_it-studio/databases/local_organizational-structure.db:/usr/src/app/dbase.db zaboal/bot-telegram_employment
|
Loading…
Add table
Reference in a new issue