mirror of
https://github.com/cloudmaker97/Discord-Captcha-Verification.git
synced 2025-12-06 09:58:34 +00:00
70 lines
No EOL
2.5 KiB
JavaScript
70 lines
No EOL
2.5 KiB
JavaScript
const sqlite3 = require('sqlite3').verbose();
|
|
const { resolve } = require('path');
|
|
class Database {
|
|
constructor() {
|
|
this.db = new sqlite3.Database(resolve(__dirname, '../../database.sqlite'), (err) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
} else {
|
|
console.log('Connected to the database');
|
|
}
|
|
});
|
|
|
|
this.db.run('CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, discord_id TEXT, discord_guild_id TEXT, ip TEXT, timestamp INTEGER)');
|
|
this.db.run('CREATE TABLE IF NOT EXISTS attempts (id INTEGER PRIMARY KEY, discord_id TEXT, discord_guild_id TEXT, ip TEXT, timestamp INTEGER, reason TEXT)');
|
|
}
|
|
|
|
async addAttempt(discordId, discordGuildId, ip, reason) {
|
|
return new Promise((resolve, reject) => {
|
|
this.db.run('INSERT INTO attempts (discord_id, discord_guild_id, ip, timestamp, reason) VALUES (?, ?, ?, ?, ?)', [discordId, discordGuildId, ip, Date.now(), reason], (err) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
async addUser(discordId, discordGuildId, ip) {
|
|
return new Promise((resolve, reject) => {
|
|
this.db.run('INSERT INTO users (discord_id, discord_guild_id, ip, timestamp) VALUES (?, ?, ?, ?)', [discordId, discordGuildId, ip, Date.now()], (err) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve();
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
async ipUsedInLastDay(ip) {
|
|
return new Promise((resolve, reject) => {
|
|
this.db.get('SELECT * FROM users WHERE ip = ? AND timestamp >= ?', [ip, Date.now() - 86400000], (err, row) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve(row !== undefined);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
async isUserVerified(discordId, discordGuildId) {
|
|
return new Promise((resolve, reject) => {
|
|
this.db.get('SELECT * FROM users WHERE discord_id = ? AND discord_guild_id = ?', [discordId, discordGuildId], (err, row) => {
|
|
if (err) {
|
|
reject(err);
|
|
} else {
|
|
resolve(row !== undefined);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
getDatabase() {
|
|
return this.db;
|
|
}
|
|
}
|
|
|
|
module.exports = new Database(); |