add votes
This commit is contained in:
parent
d07ade36a3
commit
0c06617685
7
json/votes.json
Normal file
7
json/votes.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"275416286": 10000,
|
||||||
|
"805814188": 1000,
|
||||||
|
"1045983457": 2500,
|
||||||
|
"1458518723": 3000,
|
||||||
|
"5193964398": 5000
|
||||||
|
}
|
54
rpg.js
54
rpg.js
@ -55,6 +55,60 @@ rpg.use(async (ctx, next) => {
|
|||||||
await next(); // Передаем управление следующему middleware
|
await next(); // Передаем управление следующему middleware
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const votesFile = path.join(__dirname, '/json/votes.json');
|
||||||
|
|
||||||
|
// Функция для загрузки данных из JSON
|
||||||
|
function loadVotes() {
|
||||||
|
if (!fs.existsSync(votesFile)) return {};
|
||||||
|
return JSON.parse(fs.readFileSync(votesFile, 'utf8'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Функция для сохранения данных в JSON
|
||||||
|
function saveVotes(votes) {
|
||||||
|
fs.writeFileSync(votesFile, JSON.stringify(votes, null, 2), 'utf8');
|
||||||
|
}
|
||||||
|
|
||||||
|
rpg.command('offer', async (ctx) => {
|
||||||
|
try {
|
||||||
|
const args = ctx.message.text.split(' ').slice(1);
|
||||||
|
const amount = parseInt(args[0]);
|
||||||
|
|
||||||
|
if (!amount || amount <= 0) {
|
||||||
|
return await ctx.reply('❌ Введите корректную сумму (например: /offer 5000)');
|
||||||
|
}
|
||||||
|
|
||||||
|
let votes = loadVotes();
|
||||||
|
votes[ctx.from.id] = amount; // Обновление суммы пользователя
|
||||||
|
saveVotes(votes);
|
||||||
|
|
||||||
|
return await ctx.reply(`✅ Вы предложили сумму: ${amount}₽`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
return await ctx.reply('❌ Произошла ошибка при обработке команды.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
rpg.command('voteinfo', async (ctx) => {
|
||||||
|
if (ctx.from.id != 275416286) return;
|
||||||
|
|
||||||
|
let users = await UserModel.findAll({ attributes: ['telegram_id', 'username'] });
|
||||||
|
let userMap = Object.fromEntries(users.map(user => [user.telegram_id, user.username || `ID: ${user.telegram_id}`]));
|
||||||
|
|
||||||
|
let votes = loadVotes();
|
||||||
|
if (Object.keys(votes).length === 0) {
|
||||||
|
return await ctx.reply('🔹 Пока никто не предложил сумму.');
|
||||||
|
}
|
||||||
|
|
||||||
|
let total = Object.values(votes).reduce((sum, amount) => sum + amount, 0);
|
||||||
|
let details = Object.entries(votes)
|
||||||
|
.map(([id, amount]) => `👤 ${userMap[id] || `ID: ${id}`}: ${utils.spaces(amount)}₽`)
|
||||||
|
.join('\n');
|
||||||
|
|
||||||
|
await ctx.replyWithHTML(`📊 <b>Общий банк:</b> ${utils.spaces(total)}₽\n\n${details}`);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
rpg.action('rpg_profile', async (ctx) => {
|
rpg.action('rpg_profile', async (ctx) => {
|
||||||
const telegramId = ctx.from.id;
|
const telegramId = ctx.from.id;
|
||||||
|
|
||||||
|
3
votes.json
Normal file
3
votes.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"275416286": 7000
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user