responseHandler.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. const fh = require('./funtionsHandler');
  2. var handler = new fh();
  3. var db;
  4. handler.registerDefault(function (data, server, returnNotAdd) {
  5. console.log("Default");
  6. var frame = {};
  7. frame.date = data.date || new Date();
  8. if(typeof(data.players) == "number"){
  9. frame.players = data.players;
  10. }else if(data.players && data.players.length >= 0){
  11. frame.players = data.players.length;
  12. }
  13. if(typeof(data.maxplayers) == "number"){
  14. frame.maxplayers = data.maxplayers;
  15. }
  16. if(returnNotAdd){
  17. return frame;
  18. }
  19. if(frame.maxplayers && frame.players >= 0){
  20. db.traffic.create({
  21. server: server,
  22. maxplayers: frame.maxplayers,
  23. players: frame.players
  24. }, {
  25. include: [{
  26. model: db.server,
  27. as: 'server'
  28. }]
  29. });
  30. }
  31. });
  32. handler.registerQuery("game-server-query", function (data, server, returnNotAdd) {
  33. var frame = {};
  34. frame.traffic = {};
  35. frame.date = data.date || new Date();
  36. if(typeof(data.players) == "number"){
  37. frame.traffic.players = data.players;
  38. }else if(data.players && data.players.length >= 0){
  39. frame.traffic.players = data.players.length;
  40. frame.players = data.players;
  41. }
  42. if(typeof(data.maxplayers) == "number"){
  43. frame.traffic.maxplayers = data.maxplayers;
  44. }
  45. if(typeof(data.password) == "boolean"){
  46. frame.password = data.password;
  47. }
  48. if(typeof(data.map) == "string"){
  49. frame.map = data.map;
  50. }
  51. if(returnNotAdd){
  52. return frame;
  53. }
  54. if(frame.traffic.maxplayers && frame.traffic.players >= 0){
  55. db.traffic.create({
  56. createdAt: frame.date,
  57. serverId: server,
  58. maxplayers: frame.traffic.maxplayers,
  59. players: frame.traffic.players
  60. });
  61. }
  62. });
  63. handler.registerQuery("teamspeak-query", function (data, server, returnNotAdd) {
  64. var frame = {};
  65. frame.traffic = {};
  66. frame.date = data.date || new Date();
  67. if(data.virtualserver_maxclients){
  68. frame.traffic.maxplayers = data.virtualserver_maxclients;
  69. }
  70. if(data.virtualserver_clientsonline){
  71. frame.traffic.players = data.virtualserver_clientsonline;
  72. }
  73. if(data.virtualserver_password && data.virtualserver_password !== "undefined"){
  74. frame.password = true;
  75. }
  76. if(data.virtualserver_name){
  77. frame.name = data.virtualserver_name;
  78. }
  79. if(data.clients){
  80. var arr = [], unknown = [];
  81. data.clients.forEach(function (el) {
  82. if(el.indexOf("Unknown from ") === 0){
  83. unknown.push({
  84. name: el
  85. });
  86. }else{
  87. arr.push({
  88. name: el
  89. });
  90. }
  91. });
  92. arr.sort();
  93. arr.forEach(function (el) {
  94. unknown.push(el);
  95. });
  96. frame.players = unknown;
  97. }
  98. if(returnNotAdd){
  99. // DO NOT USE server BEFORE, it could be undefined!!!
  100. return frame;
  101. }
  102. if(frame.traffic.maxplayers && frame.traffic.players >= 0){
  103. db.traffic.create({
  104. serverId: server,
  105. createdAt: frame.date,
  106. maxplayers: frame.traffic.maxplayers,
  107. players: frame.traffic.players
  108. });
  109. }
  110. });
  111. module.exports = function (gdb) {
  112. db = gdb;
  113. return handler;
  114. };