UNPKG

3.57 kBPlain TextView Raw
1/*------------------------*/
2/* Jok Play */
3/* by */
4/* Jok Entertainers */
5/*------------------------*/
6class Helper {
7
8 public static IO;
9
10 static pluginHttp;
11 static pluginSendgrid;
12
13
14 public static SendMail(to: string, subject: string, body: string) {
15
16 try {
17 if (!Helper.pluginSendgrid) {
18 var sendgrid = require('sendgrid');
19 if (sendgrid)
20 Helper.pluginSendgrid = sendgrid(process.env.SENDGRID_USERNAME, process.env.SENDGRID_PASSWORD);
21 }
22 }
23 catch (err) { return; }
24
25 if (!Helper.pluginSendgrid) return;
26
27
28 var sendObject = {
29 to: to,
30 from: 'no-reply@jok.io',
31 subject: subject,
32 text: body
33 };
34
35 var errorSending = (err, json) => {
36 if (err) { return console.error('Sendmail failed', err); }
37 };
38
39 Helper.pluginSendgrid.send(sendObject, errorSending);
40 }
41
42 public static HttpGet(url: string, cb, parseJson = false) {
43
44 try {
45 if (!Helper.pluginHttp) {
46 Helper.pluginHttp = require('http');
47 }
48 }
49 catch (err) { return; }
50
51 if (!Helper.pluginHttp) return;
52
53
54 Helper.pluginHttp.get(url, function (res) {
55
56 var data = '';
57 res.on('data', function (chunk) {
58 data += chunk;
59 });
60
61 res.on('end', function () {
62 // Success Result Callback
63
64 if (parseJson) {
65 try {
66 var oldData = data;
67 data = JSON.parse(data);
68 }
69 catch (err) {
70 // Fail Result Callback
71 cb && cb(false, err.message, oldData);
72 }
73 }
74
75 cb && cb(true, data);
76 });
77
78 }).on('error', function (e) {
79 // Fail Result Callback
80 cb && cb(false, e.message, e);
81 });
82
83 }
84
85 public static ChannelSockets(channel: string): any[] {
86
87 if (!Helper.IO || !Helper.IO.adapter) return;
88
89 var channelClients = Helper.IO.adapter().clients(channel);
90 var result = [];
91
92 for (var id in channelClients) {
93
94 var client_sid = channelClients[id];
95
96 if (!client_sid) continue;
97
98 var socket = Helper.IO.clients[client_sid];
99 if (!socket) continue;
100
101 result.push(socket);
102 }
103
104 return result;
105 }
106
107 public static BuildCommand(command: string, ...params: any[]): string {
108 return JSON.stringify({
109 command: command,
110 params: params
111 });
112 }
113}
114
115
116interface Array {
117 unique(): any[];
118 contains(v): boolean;
119 remove(item: any): boolean;
120}
121
122Array.prototype.unique = function () {
123 var arr = [];
124 for (var i = 0; i < this.length; i++) {
125 if (!arr.contains(this[i])) {
126 arr.push(this[i]);
127 }
128 }
129 return arr;
130}
131
132Array.prototype.contains = function (v) {
133 for (var i = 0; i < this.length; i++) {
134 if (this[i] === v) return true;
135 }
136 return false;
137};
138
139Array.prototype.remove = function (item) {
140
141 var index = this.indexOf(item);
142 if (index == -1)
143 return false;
144
145 this.splice(index, 1);
146 return true;
147};
\No newline at end of file