responseHandler.js 2.8 KB

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