Advertisement
Guest User

Untitled

a guest
Feb 13th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. const config = require('./config');
  4. const TeamSpeakClient = require("node-teamspeak");
  5. const tsRoom = new TeamSpeakClient(config.ip_ts3);
  6. const mysql = require('mysql');
  7.  
  8. const pool = mysql.createPool({
  9.     connectionLimit: 100,
  10.     host: '',
  11.     user: '',
  12.     password: '',
  13.     database: ''
  14. });
  15.  
  16. console.log('Start [TS3] Script!');
  17.  
  18. pool.getConnection(function(err, connection) {
  19.     console.info('[TS3] mySQL connected!');
  20. });
  21.  
  22. function tsConnect (start) {
  23.     tsRoom.send("login", { client_login_name: config.client_login_name, client_login_password: config.client_login_password}, (err, response, rawResponse) => {
  24.         if(err){
  25.             return console.error('TS3 connection failed:', err);
  26.         }
  27.         console.log('[TS3] Connection to the TS3 server is successful!');
  28.         tsRoom.send("use", { sid: 1}, (err, response, rawResponse) => {
  29.             if(err){
  30.                 return console.error('TS3 use failed:', err);
  31.             }
  32.             start();
  33.         });
  34.     });
  35. }
  36.  
  37.  function tsCheckUsers() {
  38.     tsRoom.send("clientlist", (err, response) => {
  39.         if (err) {
  40.             return console.error('TS3 clientlist failed:', err);
  41.         }
  42.         let getList = response;
  43.    
  44.         for(var i = 0; i < getList.length; i++){
  45.             let getClid = getList[i].clid;
  46.             tsRoom.send("clientinfo", {clid: getClid}, (err, response) => {
  47.                 var getUserInfo = response;
  48.                      getUser(getUserInfo);
  49.             });
  50.         }
  51.     });
  52. }
  53.  
  54. function getUser(getUserInfo) {
  55.     let getUserID = getUserInfo.client_unique_identifier;
  56.     let getUserName = getUserInfo.client_nickname;
  57.     let getUserTime = getUserInfo.client_idle_time;
  58.    
  59.      pool.query(`SELECT COUNT(client_unique_identifier) AS UserID, timeOnline  
  60.                     FROM users WHERE client_unique_identifier = '${getUserID}'
  61.                     GROUP BY timeOnline`, (err, rows, fields) => {
  62.             let UserIN = rows.length;
  63.             if(UserIN == 0 || UserIN == ''){
  64.                 console.log('Юзера нету в БД ',  getUserName, '|', getUserID);
  65.                 pool.query(`INSERT into users SET client_unique_identifier = '${getUserID}',
  66.                                                     nickname = '${getUserName}',
  67.                                                     points = '0',
  68.                                                     timeOnline = '${getUserTime}',
  69.                                                     accrued = '0'`,
  70.                 (err, rows, fields) =>{
  71.                     if (err) {
  72.                         return console.error('mysql_failed:', err);
  73.                     }
  74.                         console.log('User added ',  getUserName, '|', getUserID);
  75.                 });
  76.             } else {
  77.                 console.log('Юзер существует в БД',  getUserName, '|', getUserID);
  78.                 for(var i = 0; i < rows.length; i++){
  79.                     let getDBTime = rows[i].timeOnline;
  80.                     let UpdateTime = getUserTime - getDBTime;
  81.                     console.log('newTime', UpdateTime, '| getTimeTS', getUserTime, '| getDBTime', getDBTime, '| USER', getUserName);
  82.                     /*pool.query(`UPDATE users SET client_unique_identifier = '${getUserID}',
  83.                                         timeOnline = '${getUserTime}'`, (err, rows, fields) => {
  84.                                 if (err) {
  85.                                     return console.error('mysql_failed:', err);
  86.                                 }
  87.                     });*/
  88.                    
  89.                 }
  90.             }
  91.     });
  92. }
  93.  
  94. tsConnect(tsCheckUsers)
  95.  
  96. tsRoom.on('error', (err) => {
  97.     console.log('[TS3] Connection error. Connection is broken.');
  98.     console.log(err);
  99. });
  100.  
  101. tsRoom.on('close', () => {
  102.     console.log('[TS3] Connection is broken.');
  103. });
  104.  
  105. tsRoom.on('quit', (err) => {
  106.     if(err){
  107.         console.log(err);
  108.     } else {
  109.         console.log('[TS3] Connection is broken.');
  110.     }
  111. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement