Перевод на TypeScript без поддержки БД
This commit is contained in:
parent
bd423007f5
commit
3443f093e9
7 changed files with 46 additions and 37 deletions
|
@ -1,16 +1,15 @@
|
|||
# Бот в Telegram для трудоустройства
|
||||
|
||||
Бот основан на фреймворке [Telegraf](https://www.npmjs.com/package/telegraf) под Telegram API для NodeJS. Предназначен для запуска в контейнере Docker, файл сборки можно видеть под названием `dockerfile`. Главный метод запуска проекта — через bash файл `start.sh` от имени администратора.
|
||||
Бот написан на TypeScript с помощью фреймворка [Grammy](https://www.npmjs.com/package/grammy) для Telegram API. Предназначен для запуска в контейнере Docker, файл сборки можно видеть под названием `dockerfile`. Главный метод запуска проекта — через файл Bash скрипта `start.sh` от имени администратора.
|
||||
|
||||
На данный момент бот поддерживает только команду `/start`, отвечая на неё подсказкой для пользователя на последующие действия. Но с одной командой делать то и нечего.
|
||||
На данный момент бот поддерживает только команду «`/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
|
||||
```
|
||||
|
||||
```
|
21
src/app.js
21
src/app.js
|
@ -1,21 +0,0 @@
|
|||
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');
|
||||
});
|
|
@ -2,10 +2,10 @@ FROM node:lts-buster-slim
|
|||
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY src/package.json .
|
||||
COPY package.json .
|
||||
|
||||
RUN npm install
|
||||
COPY src/app.js .
|
||||
COPY index.ts .
|
||||
|
||||
|
||||
# Требуемые переменные окружения
|
12
src/index.ts
Normal file
12
src/index.ts
Normal file
|
@ -0,0 +1,12 @@
|
|||
import { Bot } from "grammy";
|
||||
const bot = new Bot(`${process.env.BOT_TOKEN}`);
|
||||
|
||||
|
||||
bot.command("start", (ctx) => {
|
||||
ctx.reply("Список команд доступен в сплывающем меню от знака «/» в поле ввода сообщения. Если Вы ещё не зарегистрированы в системе, сделайте это в первую очередь по команде /register.");});
|
||||
|
||||
bot.command("register", (ctx) => {
|
||||
ctx.reply("Данная команда на данный момент не работает.");});
|
||||
|
||||
|
||||
bot.start();
|
|
@ -1,13 +1,18 @@
|
|||
{
|
||||
"name": "bot-telegram_employment_in_zaboal-s_it-studio",
|
||||
"description": "Бот в Telegram для трудоустройства соискателей в ИТ-студию Зажигина",
|
||||
"author": "Богдан Зажигин <za.boal@vk.com>",
|
||||
"main": "app.js",
|
||||
"name": "bot-telegram_zaboal-employment",
|
||||
"version": "0.0.1",
|
||||
"description": "Бот в Telegram для трудоустройства в ИТ-студию Зажигина.",
|
||||
"main": "index.ts",
|
||||
"scripts": {
|
||||
"start": "node app.js"
|
||||
"start": "ts-node index.ts"
|
||||
},
|
||||
"author": "Зажигин Богдан Алексеевич <za.boal@vk.com>",
|
||||
"dependencies": {
|
||||
"sqlite3": "5.1.2",
|
||||
"telegraf": "4.11.2"
|
||||
"grammy": "1.12.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"ts-node": "^10.9.1",
|
||||
"ts-node-dev": "^2.0.0",
|
||||
"typescript": "^4.7.4"
|
||||
}
|
||||
}
|
14
src/tsconfig.json
Normal file
14
src/tsconfig.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"compilerOptions": {
|
||||
"target": "ES2021",
|
||||
"lib": [
|
||||
"ES2021"
|
||||
],
|
||||
"module": "commonjs",
|
||||
"rootDir": "./",
|
||||
"esModuleInterop": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"strict": true,
|
||||
"skipLibCheck": true
|
||||
}
|
||||
}
|
4
start.sh
4
start.sh
|
@ -1,3 +1,3 @@
|
|||
# Запуск
|
||||
docker build . -t zaboal/bot-telegram_employment;
|
||||
# Сборка и запуск контейнера Docker
|
||||
docker build src -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