-
Notifications
You must be signed in to change notification settings - Fork 0
/
bot.js
121 lines (103 loc) · 4.88 KB
/
bot.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
const venom = require('venom-bot');
const fs = require('fs');
const sqlite3 = require('sqlite3').verbose();
//const queries = require('./dbFunciones.js');
// Abrir una conexión con la base de datos
let db = new sqlite3.Database('futbot.db');
// Crear las tablas de la aplicacion si no existen
db.serialize(() => {
db.run('CREATE TABLE IF NOT EXISTS partidos (idpartido INTEGER PRIMARY KEY, fecha TEXT, lugar TEXT, hora TEXT, cantjugadores INTEGER)');
db.run('CREATE TABLE IF NOT EXISTS jugadores (idjugador INTEGER PRIMARY KEY, nombre TEXT, apellido TEXT, telefono TEXT, idwhatsapp TEXT, club TEXT, fechaNac TEXT, arquero TEXT, defensa TEXT, delantero TEXT, titular TEXT)');
db.run('CREATE TABLE IF NOT EXISTS equipos (idequipo INTEGER PRIMARY KEY, idpartido INTEGER, equipo TEXT, idjugador1 INTEGER, idjugador2 INTEGER, idjugador3 INTEGER, idjugador4 INTEGER, idjugador5 INTEGER, idjugador6 INTEGER, idjugador7 INTEGER, idjugador8 INTEGER, idjugador9 INTEGER, idjugador10 INTEGER, idjugador11 INTEGER)');
db.run('CREATE TABLE IF NOT EXISTS resultados (idresultado INTEGER PRIMARY KEY, idpartido INTEGER, idequipo INTEGER, goles INTEGER)');
db.run('CREATE TABLE IF NOT EXISTS configuracion (idconfig INTEGER PRIMARY KEY, dia TEXT, horario TEXT, cancha TEXT, cantjug INTEGER, equipoA TEXT, equipoB TEXT, capitanTel TEXT)');
});
venom
.create()
.then((client) => {
client.onMessage((message) => {
if (message.body.startsWith('/partido')) {
// Parseo de message para obtener detalles del partido creado.
const match = parseMatchDetails(message.body);
console.log(message.body);
console.log(match);
console.log(message.sender.id);
console.log(message.from);
let fecha = match.date
let hora = match.time
let lugar = match.location
let cantjugadores = match.players
insertarPartido(fecha, lugar, hora, cantjugadores);
client.sendText(message.from, `Partido creado: ${match.date}, ${match.location}, ${match.time}, ${match.players} jugadores.`);
} else if (message.body.startsWith('/configuracion')) {
// Parseo de message para obtener detalles del partido creado.
const config = parseConfigDetails(message.body);
console.log(message.body);
console.log(config);
console.log(message.sender.id);
console.log(message.from);
let dia = config.fdia
let horario = config.fhorario
let cancha = config.fcancha
let cantjug = config.fcantjug
let equipoA = config.fequipoA
let equipoB = config.fequipoB
let capitanTel = config.fcapitanTel
console.log(equipoB);
db.all('SELECT * FROM configuracion', (err, rows) => {
if (err) {
console.error(err.message);
} else {
console.log(rows);
}
});
db.all('SELECT * FROM partidos', (err, rows) => {
if (err) {
console.error(err.message);
} else {
console.log(rows);
}
});
db.run('INSERT INTO configuracion (dia, horario, cancha, cantjug, equipoA, equipoB, capitanTel) VALUES (?, ?, ?, ?, ?, ?, ?)', [dia, horario, cancha, cantjug, equipoA, equipoB, capitanTel], function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Se creo la configuracion correctamente dia ${dia} ${horario} hs en ${cancha} de ${cantjug} jugadores, equipoA:${equipoA}, equipoB:${equipoB}, capitanTel:${capitanTel}`);
client.sendText(message.from, `Se creo la configuracion correctamente dia ${dia} ${horario} hs en ${cancha} de ${cantjug} jugadores, equipoA:${equipoA}, equipoB:${equipoB}, capitanTel:${capitanTel}`);
});
db.close();
}
});
})
.catch((error) => {
console.log(error);
});
/////////////////////////// FUNCIONES PARSEO Y SQL ///////////////////////////////////////
function parseMatchDetails(message) {
const parts = message.split(' ');
const date = parts[1];
const location = parts[2];
const time = parts[3];
const players = parseInt(parts[4]);
return { date, location, time, players };
}
function parseConfigDetails(message) {
const parts = message.split(' ');
const fdia = parts[1];
const fhorario = parts[2];
const fcancha = parts[3];
const fcantjug = parseInt(parts[4]);
const fequipoA = parts[5];
const fequipoB = parts[6];
const fcapitanTel = parts[7];
return { fdia, fhorario, fcancha, fcantjug, fequipoA, fequipoB, fcapitanTel };
}
function insertarPartido(fecha, lugar, hora, cantjugadores) {
db.run('INSERT INTO partidos (fecha, lugar, hora, cantjugadores) VALUES (?, ?, ?, ?)', [fecha, lugar, hora, cantjugadores], function (err) {
if (err) {
return console.error(err.message);
}
console.log(`Se ha insertado el partido el ${fecha} ${hora} en ${lugar} de ${cantjugadores} jugadores`);
});
db.close();
}