Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.08 KB | None | 0 0
  1. const TelegramBot = require('node-telegram-bot-api');
  2. const token = '789884842:AAE_zD2GaM2Cl3hVvkV1b4e3gqbigmVCX1A';
  3. const bot = new TelegramBot(token, {polling: true});
  4. const mysql = require("mysql");
  5. const colors = require("colors");
  6. const con = mysql.createConnection({
  7. host: "localhost",
  8. user: "registro",
  9. password: "reGGistro20",
  10. database: "registro"
  11. });
  12.  
  13. var act = new Array();
  14. var val = new Array();
  15. var mat = new Array();
  16. var vot = new Array();
  17. var vid = new Array();
  18.  
  19. bot.on('message', (msg) => {
  20. console.log(msg.from.username.green + ' : ' + msg.text.magenta);
  21.  
  22.  
  23. const menu = {
  24. reply_to_message_id: msg.message_id,
  25. reply_markup: JSON.stringify({
  26. keyboard: [
  27. ['๐Ÿ”ธ Registra nuovo voto ๐Ÿ”ธ'],
  28. ['โŒ Elimina voto โŒ'],
  29. [''],
  30. ],
  31. })
  32. };
  33. const annulla = {
  34. reply_to_message_id: msg.message_id,
  35. reply_markup: JSON.stringify({
  36. keyboard: [
  37. ['โ›”๏ธ Annulla โ›”๏ธ'],
  38. ],
  39. })
  40. };
  41. const voti = {
  42. reply_to_message_id: msg.message_id,
  43. reply_markup: JSON.stringify({
  44. keyboard: [
  45. ['1', '1,25', '1,50', '1,75'],
  46. ['2', '2,25', '2,50', '2,75'],
  47. ['3', '3,25', '3,50', '3,75'],
  48. ['4', '4,25', '4,50', '4,75'],
  49. ['4', '4,25', '4,50', '4,75'],
  50. ['5', '5,25', '5,50', '5,75'],
  51. ['6', '6,25', '6,50', '6,75'],
  52. ['7', '7,25', '7,50', '7,75'],
  53. ['8', '8,25', '8,50', '8,75'],
  54. ['9', '9,25', '9,50', '9,75'],
  55. ['10'],
  56. ['โ›”๏ธ Annulla โ›”๏ธ'],
  57. ],
  58. })
  59. };
  60.  
  61.  
  62. if (act[msg.from.id] == 1) {
  63. if (msg.text == "/ok") {
  64. bot.sendMessage(msg.chat.id, "Materie registrate", menu);
  65. act[msg.from.id] = undefined;
  66. }
  67. else {
  68. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  69. con.query(sql, function (err, sid) {
  70. var sql = "select * from materie where userid = " + sid[0].id + ";";
  71. con.query(sql, function (err, result) {
  72. if (result.length >= 20) {
  73. val[msg.from.id] = 0;
  74. bot.sendMessage(msg.chat.id, "Limite materie raggiunto. Contatta @FrAgOrDiE");
  75. }
  76.  
  77. function esistente() {
  78. for (i = 0; i < result.length; i++) {
  79. if (result[i].materia == msg.text) {
  80. bot.sendMessage(msg.chat.id, "La materia " + msg.text + " รจ giร  stata aggiunta");
  81. return "1";
  82. }
  83. }
  84. }
  85.  
  86. if (esistente() !== "1") {
  87. if (val[msg.from.id] == undefined) {
  88. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  89. con.query(sql, function (err, sid) {
  90. var sql = "insert into materie (materia, userid) values ('" + msg.text + "', '" + sid[0].id + "');";
  91. con.query(sql);
  92. });
  93. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  94. con.query(sql, function (err, sid) {
  95. var sql = "select * from materie where userid = " + sid[0].id + ";";
  96. con.query(sql, function (err, result) {
  97. var mex = "Aggiunta la materia: " + msg.text + "\n\nMaterie registrate:";
  98. for (i = 0; i < result.length; i++) {
  99. var mex = mex + "\n" + (i + 1) + ". " + result[i].materia;
  100. }
  101. bot.sendMessage(msg.chat.id, mex + "\n\nDigita /ok per interrompere l'aggiunta di materie");
  102. });
  103. });
  104. }
  105. else if (val[msg.from.id] == 0) {
  106. bot.sendMessage(msg.chat.id, "Limite materie raggiunto. Contatta @FrAgOrDiE");
  107. }
  108. }
  109. });
  110. });
  111.  
  112. }
  113. }
  114. else if (act[msg.from.id] == 2) {
  115. if (msg.text == "โ›”๏ธ Annulla โ›”๏ธ") {
  116. bot.sendMessage(msg.chat.id, "Menu principale");
  117. act[msg.from.id] == undefined;
  118. }
  119. else {
  120. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  121. con.query(sql, function (err, sid) {
  122. var sql = "select * from materie where userid = " + sid[0].id + ";";
  123. con.query(sql, function (err, result) {
  124. if (result[parseInt(msg.text, 10) - 1] !== undefined) {
  125. bot.sendMessage(msg.chat.id, "Che voto vuoi aggiungere per la materia \"" + result[parseInt(msg.text, 10) - 1].materia + "\"?", voti);
  126. mat[msg.from.id] = result[parseInt(msg.text, 10) - 1].materia;
  127. act[msg.from.id] = 3;
  128. }
  129. else {
  130. bot.sendMessage(msg.chat.id, "Materia non valida, devi inserire il numero");
  131. act[msg.from.id] = 2;
  132. }
  133. });
  134. });
  135. }
  136. act[msg.from.id] = undefined;
  137. }
  138. else if (act[msg.from.id] == 3) {
  139. if (msg.text == "โ›”๏ธ Annulla โ›”๏ธ") {
  140. bot.sendMessage(msg.chat.id, "Menu principale");
  141. act[msg.from.id] = undefined;
  142. }
  143. else {
  144. if (parseInt(msg.text, 10) <= 10 && isNaN(parseInt(msg.text, 10)) == false && parseInt(msg.text, 10) >=0) {
  145. bot.sendMessage(msg.chat.id, "Aggiunto il voto " + msg.text + " nella materia \"" + mat[msg.from.id] + "\".", menu);
  146. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  147. con.query(sql, function (err, sid) {
  148. var sql = "insert into `voti` (userid, materia, voto) values (" + sid[0].id + ", \"" + mat[msg.from.id] + "\", \"" + msg.text + "\");";
  149. con.query(sql);
  150. var sql = "select * from voti where userid = " + sid[0].id + " and materia = \"" + mat[msg.from.id] + "\";";
  151. con.query(sql, function(err,result) {
  152. var i = 0;
  153. var som = 0;
  154. while (result.length > i) {
  155. var som = som + parseFloat(result[i].voto.replace(/,/g, '.'));
  156. i++;
  157. }
  158. var som = parseFloat(som);
  159. var media = som / result.length;
  160. var sql = "update materie set media = " + media + " where userid = " + sid[0].id + " and materia = \"" + mat[msg.from.id] + "\";";
  161. con.query(sql);
  162. });
  163. });
  164. act[msg.from.id] = undefined;
  165. }
  166. else {
  167. bot.sendMessage(msg.chat.id, "Valutazione non valida");
  168. act[msg.from.id] = 3;
  169. }
  170. }
  171. }
  172. else if (act[msg.from.id] == 4) {
  173. if (msg.text == "โ›”๏ธ Annulla โ›”๏ธ") {
  174. bot.sendMessage(msg.chat.id, "Menu principale");
  175. act[msg.from.id] = undefined;
  176. }
  177. else {
  178. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  179. con.query(sql, function (err, sid) {
  180. var sql = "select * from materie where userid = " + sid[0].id + ";";
  181. con.query(sql, function (err, result) {
  182. if (result[parseInt(msg.text, 10) - 1] !== undefined) {
  183. mat[msg.from.id] = result[parseInt(msg.text, 10) - 1].materia;
  184. var sql = "select * from voti where userid = " + sid[0].id + " and materia = \"" + mat[msg.from.id] + "\";";
  185. con.query(sql, function(err, vot) {
  186. var mex = "";
  187. vid[msg.from.id] = "";
  188. for (i = 0; i < vot.length; i++) {
  189. var mex = mex + "\n" + (i + 1) + ". " + vot[i].voto;
  190. vid[msg.from.id] = vid[msg.from.id] + "," + vot[i].vid;
  191. }
  192. bot.sendMessage(msg.chat.id, "Che voto vuoi eliminare per la materia \"" + result[parseInt(msg.text, 10) - 1].materia + "\"?" + mex + "\nInserisci il numero");
  193. });
  194. act[msg.from.id] = 5;
  195. }
  196. else {
  197. bot.sendMessage(msg.chat.id, "Materia non valida, devi inserire il numero");
  198. act[msg.from.id] = 4;
  199. }
  200. });
  201. });
  202. }
  203. }
  204. else if (act[msg.from.id] == 5) {
  205. if (msg.text == "โ›”๏ธ Annulla โ›”๏ธ") {
  206. bot.sendMessage(msg.chat.id, "Menu principale");
  207. act[msg.from.id] = undefined;
  208. }
  209. else {
  210. if (parseInt(msg.text, 10) < vid[msg.from.id].split(",").length && isNaN(parseInt(msg.text, 10)) == false && parseInt(msg.text, 10) >= 1) {
  211. con.query("delete from voti where vid = " + vid[msg.from.id].split(",")[parseInt(msg.text, 10)]);
  212. bot.sendMessage(msg.chat.id, "Voto eliminato");
  213. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  214. con.query(sql, function (err, sid) {
  215. var sql = "select * from voti where userid = " + sid[0].id + " and materia = \"" + mat[msg.from.id] + "\";";
  216. con.query(sql, function(err,result) {
  217. var i = 0;
  218. var som = 0;
  219. while (result.length > i) {
  220. var som = som + parseFloat(result[i].voto.replace(/,/g, '.'));
  221. i++;
  222. }
  223. var som = parseFloat(som);
  224. var media = som / result.length;
  225. var sql = "update materie set media = " + media + " where userid = " + sid[0].id + " and materia = \"" + mat[msg.from.id] + "\";";
  226. con.query(sql);
  227. });
  228. });
  229. act[msg.from.id] = undefined;
  230. }
  231. else {
  232. bot.sendMessage(msg.chat.id, "Voto non valido, devi inserire il numero", annulla);
  233. }
  234. }
  235. }
  236. else if (act[msg.from.id] == undefined) {
  237. if (msg.text == "/start") {
  238. act[msg.from.id] = 1;
  239. bot.sendMessage(msg.chat.id, "Questo รจ un BOT per la registrazione dei voti scolastici, esso ne calcola la media e ti avvisa sulle insufficienze\nPer iniziare scrivi le materie di cui vuoi segnare i voti e inviale una per volta, quando hai finito digita /ok\n\nBy Manuel Urbano\nNeed help? @FrAgOrDiE");
  240. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  241. con.query(sql, function (err, result) {
  242. if (err) throw err;
  243. if (result.length === 1) {
  244. return;
  245. }
  246. else {
  247. var sql = "insert into utenti (uid, nickname) values ('" + msg.from.id + "', '@" + msg.chat.username + "');";
  248. con.query(sql, function (err, result) {
  249. if (err) throw err;
  250. console.log("Tabelle aggiornate".green);
  251. });
  252. }
  253. });
  254. }
  255. else if (msg.text == "๐Ÿ”ธ Registra nuovo voto ๐Ÿ”ธ") {
  256. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  257. con.query(sql, function (err, sid) {
  258. var sql = "select * from materie where userid = " + sid[0].id + ";";
  259. con.query(sql, function (err, result) {
  260. var mex = "";
  261. for (i = 0; i < result.length; i++) {
  262. var mex = mex + "\n" + (i + 1) + ". " + result[i].materia;
  263. }
  264. bot.sendMessage(msg.chat.id, "Per quale materia vuoi registrare il voto?" + mex + "\nInserisci il numero", annulla);
  265. act[msg.from.id] = 2;
  266. });
  267. });
  268. }
  269. else if (msg.text == "โŒ Elimina voto โŒ") {
  270. var sql = "SELECT id FROM `utenti` WHERE uid = " + msg.from.id + ";";
  271. con.query(sql, function (err, sid) {
  272. var sql = "select * from materie where userid = " + sid[0].id + ";";
  273. con.query(sql, function (err, result) {
  274. var mex = "";
  275. for (i = 0; i < result.length; i++) {
  276. var mex = mex + "\n" + (i + 1) + ". " + result[i].materia;
  277. }
  278. bot.sendMessage(msg.chat.id, "Per quale materia vuoi eliminare il voto?" + mex + "\nInserisci il numero", annulla);
  279. act[msg.from.id] = 4;
  280. });
  281. });
  282. }
  283. }
  284. });
  285. //bot.on('polling_error', (error) => {
  286. // console.log(error); // => 'EFATAL'
  287. //});
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement