v5.8-web
This commit is contained in:
parent
fea61dc362
commit
8f6089b68b
18
bot.js
18
bot.js
@ -241,9 +241,21 @@ bot.hears('🛡️ Test', async (ctx) => {
|
||||
ctx.reply(`🚨 Добро пожаловать в тестовый режим 🚨\nВесь функционал в этом режиме еще не сбалансирован\n`, Markup.inlineKeyboard(buttons));
|
||||
})
|
||||
|
||||
bot.hears('Криминал', async (ctx) => {
|
||||
await ctx.scene.enter('Crime')
|
||||
})
|
||||
bot.command('profile', (ctx) => {
|
||||
return ctx.reply('👤 Ваш профиль:', {
|
||||
reply_markup: {
|
||||
inline_keyboard: [
|
||||
[
|
||||
{
|
||||
text: "Открыть профиль",
|
||||
web_app: { url: "https://cmpfire.ru:3000/profile" }, // Замените на ваш URL
|
||||
},
|
||||
],
|
||||
],
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
bot.hears('промка', async (ctx) => {
|
||||
|
2
index.js
2
index.js
@ -1,4 +1,5 @@
|
||||
require('dotenv').config();
|
||||
|
||||
const sequelize = require('./db'); // Подключение базы данных
|
||||
|
||||
// Настраиваем глобальные переменные (опционально)
|
||||
@ -9,3 +10,4 @@ global.utils = require('./utils');
|
||||
|
||||
// Инициализация бота
|
||||
require('./bot')
|
||||
require('./server'); // Подключение модуля API
|
887
package-lock.json
generated
887
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -12,11 +12,15 @@
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@faker-js/faker": "^9.3.0",
|
||||
"body": "^5.1.0",
|
||||
"body-parser": "^1.20.3",
|
||||
"dotenv": "^16.4.7",
|
||||
"error-stack-parser": "^2.1.4",
|
||||
"express": "^4.21.2",
|
||||
"fs": "^0.0.1-security",
|
||||
"node-schedule": "^2.1.1",
|
||||
"nodemon": "^3.0.1",
|
||||
"parser": "^0.1.4",
|
||||
"pg": "^8.6.0",
|
||||
"pg-hstore": "^2.3.3",
|
||||
"pm2": "^5.3.0",
|
||||
|
65
public/index.html
Normal file
65
public/index.html
Normal file
@ -0,0 +1,65 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Профиль</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
.profile {
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.profile h1 {
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
.profile p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
</style>
|
||||
<script src="https://telegram.org/js/telegram-web-app.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="profile">
|
||||
<h1 id="username">Загрузка...</h1>
|
||||
<p>Уровень: <span id="level">—</span></p>
|
||||
<p>Опыт: <span id="exp">—</span> / <span id="expToNextLevel">—</span></p>
|
||||
<p>Баланс: <span id="money">—</span> ₽</p>
|
||||
<p>Дом: <span id="house">—</span></p>
|
||||
<p>Машина: <span id="car">—</span></p>
|
||||
<p>Телефон: <span id="mobile">—</span></p>
|
||||
</div>
|
||||
<script>
|
||||
// Telegram WebApp API
|
||||
const tg = window.Telegram.WebApp;
|
||||
|
||||
// Получаем ID пользователя
|
||||
const userId = tg.initDataUnsafe.user.id;
|
||||
|
||||
// Загружаем данные профиля
|
||||
fetch(`/profile/${userId}`)
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
document.getElementById('username').textContent = data.username;
|
||||
document.getElementById('level').textContent = data.level;
|
||||
document.getElementById('exp').textContent = data.exp;
|
||||
document.getElementById('expToNextLevel').textContent = data.expToNextLevel;
|
||||
document.getElementById('money').textContent = data.money;
|
||||
document.getElementById('house').textContent = data.house;
|
||||
document.getElementById('car').textContent = data.car;
|
||||
document.getElementById('mobile').textContent = data.mobile;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('Ошибка загрузки профиля:', err);
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
8
rpg.js
8
rpg.js
@ -21,14 +21,6 @@ const {
|
||||
StolenCardsModel,
|
||||
WorldModel,
|
||||
PropertyModel,
|
||||
AFKPropertyModel,
|
||||
BusinessModel,
|
||||
BlockModel,
|
||||
EnterpriseModel,
|
||||
WarehouseModel,
|
||||
TruckModel,
|
||||
ResourcePriceModel,
|
||||
SkillsModel,
|
||||
DailyModel,
|
||||
logs
|
||||
} = global.config
|
||||
|
30
server.js
Normal file
30
server.js
Normal file
@ -0,0 +1,30 @@
|
||||
const express = require('express');
|
||||
const app = express();
|
||||
const { UserModel, PropertyModel, expToUp } = global.config;
|
||||
|
||||
// Настраиваем сервер для выдачи статических файлов
|
||||
app.use(express.static('public'));
|
||||
|
||||
// Эндпоинт для получения данных профиля
|
||||
app.get('/profile/:id', async (req, res) => {
|
||||
const id = req.params.id;
|
||||
const user = await UserModel.findByPk(id);
|
||||
const property = await PropertyModel.findByPk(id);
|
||||
|
||||
if (!user) return res.status(404).send({ error: 'Пользователь не найден' });
|
||||
|
||||
res.send({
|
||||
username: user.username,
|
||||
level: user.level,
|
||||
exp: user.exp,
|
||||
expToNextLevel: expToUp[user.level],
|
||||
money: user.money,
|
||||
house: property.house ? property.house.name : "Бездомный",
|
||||
car: property.car1 ? property.car1.name : "Пешком",
|
||||
mobile: property.mobile ? property.mobile.name : "Нет",
|
||||
});
|
||||
});
|
||||
|
||||
// Запуск сервера
|
||||
const PORT = process.env.PORT || 3000;
|
||||
app.listen(PORT, () => console.log(`Сервер запущен на порту ${PORT}`));
|
Loading…
Reference in New Issue
Block a user