Набросал меню

This commit is contained in:
2026-01-03 00:14:52 +03:00
parent 2d9b696ef5
commit c0b94c48c7
5 changed files with 41 additions and 5 deletions

View File

@@ -5,6 +5,7 @@
"": {
"name": "me-tg-bot",
"dependencies": {
"@grammyjs/menu": "^1.3.1",
"grammy": "^1.39.2",
},
"devDependencies": {
@@ -17,6 +18,8 @@
},
},
"packages": {
"@grammyjs/menu": ["@grammyjs/menu@1.3.1", "", { "peerDependencies": { "grammy": "^1.31.0" } }, "sha512-HJslY/n76T1Ar5qDDhNtjLs+PpcrlB9aGsXu3CJHLt147DC3K3lpiRvRW/Xh9/x9hqYVw7KKbnvsQXVgzoU81Q=="],
"@grammyjs/types": ["@grammyjs/types@3.23.0", "", {}, "sha512-D3jQ4UWERPsyR3op/YFudMMIPNTU47vy7L51uO9/73tMELmjO/+LX5N36/Y0CG5IQfIsz43MxiHI5rgsK0/k+g=="],
"@types/bun": ["@types/bun@1.3.5", "", { "dependencies": { "bun-types": "1.3.5" } }, "sha512-RnygCqNrd3srIPEWBd5LFeUYG7plCoH2Yw9WaZGyNmdTEei+gWaHqydbaIRkIkcbXwhBT94q78QljxN0Sk838w=="],

View File

@@ -1,11 +1,16 @@
import { Bot } from 'grammy';
import { cmdStart, cmdHelp } from './src/commands';
import { menu } from './src/menu';
const bot = new Bot(process.env.TOKEN);
bot.use(menu);
bot.command('start', cmdStart);
bot.command('help', cmdHelp);
bot.command('menu', async (ctx) => {
await ctx.reply('🛣️ Навигация', { reply_markup: menu });
});
bot.on('message', (ctx) => ctx.reply('Got another message!'));
bot.start();

View File

@@ -17,6 +17,7 @@
"typescript": "^5"
},
"dependencies": {
"@grammyjs/menu": "^1.3.1",
"grammy": "^1.39.2"
}
}

View File

@@ -1,12 +1,13 @@
function cmdStart(ctx) {
ctx.reply(
[
'🪪 Александр.',
'🗿 Шеф в любой сфере IT.',
'💪🏻 Программирование, разработка игр, механика, электрика, электроника, 3D печать и лазерная резка.',
'💼 Сайт: https://iiiypuk.me/',
'🪪 Александр',
'🗿 Шеф в любой сфере IT\\.',
'💪🏻 Программирование, разработка игр, механика, электрика, электроника, 3D печать и лазерная резка\\.',
'💼 Сайт: https://iiiypuk\\.me/',
'\n🧢 Вызови /menu для получения большей информации',
].join('\n'),
{ parseMode: 'MarkdownV2' },
{ parse_mode: 'MarkdownV2' },
);
}

26
src/menu.ts Normal file
View File

@@ -0,0 +1,26 @@
import { Menu } from '@grammyjs/menu';
const menuSkills = (ctx) => {
ctx.reply(
[
'💪🏻 \*Скиллы*\n',
'⌨️ *Языки программирования:*',
'`C/C++`, `Python`, `JavaScript`, `TypeScript`, `Crystal`',
'\n⛑ \*Администрирование:\*',
'`Arch`, `Ubuntu`, `nginx`',
'\n>Раздел в процессе написания\\.\\.\\.',
'\n🕙 Обновлено: 2 Jan 2026',
].join('\n'),
{ parse_mode: 'MarkdownV2' },
);
};
const menu = new Menu('main')
.text('💪🏻 Скиллы', menuSkills)
.row()
.text('👔 Не нажимай', (ctx) => {
ctx.reply('Я же просил не нажимать :)');
})
.row();
export { menu };