Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- const config = require('./config');
- const TeamSpeakClient = require("node-teamspeak");
- const tsRoom = new TeamSpeakClient(config.ip_ts3);
- const mysql = require('mysql');
- const pool = mysql.createPool({
- connectionLimit: 100,
- host: '',
- user: '',
- password: '',
- database: ''
- });
- console.log('Start [TS3] Script!');
- pool.getConnection(function(err, connection) {
- console.info('[TS3] mySQL connected!');
- });
- function tsConnect (start) {
- tsRoom.send("login", { client_login_name: config.client_login_name, client_login_password: config.client_login_password}, (err, response, rawResponse) => {
- if(err){
- return console.error('TS3 connection failed:', err);
- }
- console.log('[TS3] Connection to the TS3 server is successful!');
- tsRoom.send("use", { sid: 1}, (err, response, rawResponse) => {
- if(err){
- return console.error('TS3 use failed:', err);
- }
- start();
- });
- });
- }
- function tsCheckUsers() {
- tsRoom.send("clientlist", (err, response) => {
- if (err) {
- return console.error('TS3 clientlist failed:', err);
- }
- let getList = response;
- for(var i = 0; i < getList.length; i++){
- let getClid = getList[i].clid;
- tsRoom.send("clientinfo", {clid: getClid}, (err, response) => {
- var getUserInfo = response;
- getUser(getUserInfo);
- });
- }
- });
- }
- function getUser(getUserInfo) {
- let getUserID = getUserInfo.client_unique_identifier;
- let getUserName = getUserInfo.client_nickname;
- let getUserTime = getUserInfo.client_idle_time;
- pool.query(`SELECT COUNT(client_unique_identifier) AS UserID, timeOnline
- FROM users WHERE client_unique_identifier = '${getUserID}'
- GROUP BY timeOnline`, (err, rows, fields) => {
- let UserIN = rows.length;
- if(UserIN == 0 || UserIN == ''){
- console.log('Юзера нету в БД ', getUserName, '|', getUserID);
- pool.query(`INSERT into users SET client_unique_identifier = '${getUserID}',
- nickname = '${getUserName}',
- points = '0',
- timeOnline = '${getUserTime}',
- accrued = '0'`,
- (err, rows, fields) =>{
- if (err) {
- return console.error('mysql_failed:', err);
- }
- console.log('User added ', getUserName, '|', getUserID);
- });
- } else {
- console.log('Юзер существует в БД', getUserName, '|', getUserID);
- for(var i = 0; i < rows.length; i++){
- let getDBTime = rows[i].timeOnline;
- let UpdateTime = getUserTime - getDBTime;
- console.log('newTime', UpdateTime, '| getTimeTS', getUserTime, '| getDBTime', getDBTime, '| USER', getUserName);
- /*pool.query(`UPDATE users SET client_unique_identifier = '${getUserID}',
- timeOnline = '${getUserTime}'`, (err, rows, fields) => {
- if (err) {
- return console.error('mysql_failed:', err);
- }
- });*/
- }
- }
- });
- }
- tsConnect(tsCheckUsers)
- tsRoom.on('error', (err) => {
- console.log('[TS3] Connection error. Connection is broken.');
- console.log(err);
- });
- tsRoom.on('close', () => {
- console.log('[TS3] Connection is broken.');
- });
- tsRoom.on('quit', (err) => {
- if(err){
- console.log(err);
- } else {
- console.log('[TS3] Connection is broken.');
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement