commit
This commit is contained in:
parent
b770a5dbe8
commit
b0de760de9
@ -80,13 +80,13 @@ class Database {
|
|||||||
let prevtasks = 0;
|
let prevtasks = 0;
|
||||||
try {
|
try {
|
||||||
await client.query('BEGIN');
|
await client.query('BEGIN');
|
||||||
let res = await client.query('SELECT * FROM qr_view WHERE task < $1 AND group_id = $2', [task, team]);
|
let res = await client.query('SELECT * FROM qr_view WHERE task = $1 AND group_id = $2', [task-1, team]);
|
||||||
prevtasks = res.rowCount;
|
prevtasks = res.rowCount;
|
||||||
await client.query('COMMIT');
|
await client.query('COMMIT');
|
||||||
} finally {
|
} finally {
|
||||||
client.release();
|
client.release();
|
||||||
}
|
}
|
||||||
return prevtasks === task - 1;
|
return prevtasks > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getTeam(user) {
|
async getTeam(user) {
|
||||||
@ -107,7 +107,11 @@ class Database {
|
|||||||
let client = await this.pool.connect();
|
let client = await this.pool.connect();
|
||||||
try {
|
try {
|
||||||
await client.query('BEGIN');
|
await client.query('BEGIN');
|
||||||
|
//add completion if not exists
|
||||||
|
let res = await client.query('SELECT * FROM qr_completion WHERE group_id = $1 AND task = $2', [team, task]);
|
||||||
|
if(res.rowCount === 0) {
|
||||||
await client.query('INSERT INTO qr_completion (group_id, task) values ($1,$2)', [team, task]);
|
await client.query('INSERT INTO qr_completion (group_id, task) values ($1,$2)', [team, task]);
|
||||||
|
}
|
||||||
await client.query('COMMIT');
|
await client.query('COMMIT');
|
||||||
} finally {
|
} finally {
|
||||||
client.release();
|
client.release();
|
||||||
|
31
index.js
31
index.js
@ -32,9 +32,13 @@ bot.start(async (ctx) => {
|
|||||||
await database.addCompletion(team.id, task.id - 1);
|
await database.addCompletion(team.id, task.id - 1);
|
||||||
let pTask = await database.getTask(task.id - 1);
|
let pTask = await database.getTask(task.id - 1);
|
||||||
await bot.telegram.sendMessage(-879242326, "Команда " + team.team_name + " получила задание " + task.short_name + "(" + task.id + ") и закончила задание " + pTask.short_name + "(" + (task.id - 1) + ")");
|
await bot.telegram.sendMessage(-879242326, "Команда " + team.team_name + " получила задание " + task.short_name + "(" + task.id + ") и закончила задание " + pTask.short_name + "(" + (task.id - 1) + ")");
|
||||||
|
if (code === "freead") {
|
||||||
|
await ctx.reply(task.id + ") \n" + task.task_text, Telegraf.Extra.markup((m) => m.inlineKeyboard([[m.callbackButton("Проверить выполнение", "check")]])));
|
||||||
|
} else {
|
||||||
await ctx.reply(task.id + ") \n" + task.task_text);
|
await ctx.reply(task.id + ") \n" + task.task_text);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.command("top", async (ctx) => {
|
bot.command("top", async (ctx) => {
|
||||||
@ -47,12 +51,37 @@ bot.command("top", async (ctx) => {
|
|||||||
await ctx.reply(message);
|
await ctx.reply(message);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
bot.action("check", async (ctx) => {
|
||||||
|
bot.telegram.getChatMember("@ks54_op5", ctx.from.id).then(async (member) => {
|
||||||
|
if(member.status === "left") {
|
||||||
|
await ctx.answerCbQuery("Вы не состоите в @ks54_op5");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bot.telegram.getChatMember("@studsovet_ks54", ctx.from.id).then(async (mem) => {
|
||||||
|
if (mem.status === "left") {
|
||||||
|
await ctx.answerCbQuery("Вы не состоите в @studsovet_ks54");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let team = await database.getTeam(ctx.from.id);
|
||||||
|
if (team == null) return;
|
||||||
|
await bot.telegram.sendMessage(-879242326, "Команда " + team.team_name + " завершила прохождение квеста!");
|
||||||
|
await ctx.editMessageText("Поздравляем с прохождением QR квеста! Вы можете спускаться к Деду Морозу.")
|
||||||
|
}).catch(async (err) => {
|
||||||
|
await ctx.answerCbQuery("Вы не состоите в @studsovet_ks54");
|
||||||
|
});
|
||||||
|
}).catch(async (err) => {
|
||||||
|
await ctx.answerCbQuery("Вы не состоите в @ks54_op5");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
bot.on('text', async (ctx) => {
|
bot.on('text', async (ctx) => {
|
||||||
switch (ctx.session.state) {
|
switch (ctx.session.state) {
|
||||||
case "register": {
|
case "register": {
|
||||||
let group = ctx.message.text;
|
let group = ctx.message.text;
|
||||||
await database.registerQRTeam(group, ctx.from.id);
|
await database.registerQRTeam(group, ctx.from.id);
|
||||||
await ctx.reply("Группа зарегистрирована.\nГде обитают допуски?");
|
await ctx.reply("Группа зарегистрирована.\nЛиса на девятом небе отдыхает, найдёшь ли ты её?");
|
||||||
ctx.session.state = undefined;
|
ctx.session.state = undefined;
|
||||||
await bot.telegram.sendMessage(-879242326, "Группа " + group + " зарегистрирована by <a href=\"tg://user?id=" + ctx.from.id + "\">" + ctx.from.first_name + "</a>", {parse_mode: "HTML"});
|
await bot.telegram.sendMessage(-879242326, "Группа " + group + " зарегистрирована by <a href=\"tg://user?id=" + ctx.from.id + "\">" + ctx.from.first_name + "</a>", {parse_mode: "HTML"});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user