UNPKG

3.38 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
108
109interface Array {
110 unique(): any[];
111 contains(v): boolean;
112 remove(item: any): boolean;
113}
114
115Array.prototype.unique = function () {
116 var arr = [];
117 for (var i = 0; i < this.length; i++) {
118 if (!arr.contains(this[i])) {
119 arr.push(this[i]);
120 }
121 }
122 return arr;
123}
124
125Array.prototype.contains = function (v) {
126 for (var i = 0; i < this.length; i++) {
127 if (this[i] === v) return true;
128 }
129 return false;
130};
131
132Array.prototype.remove = function (item) {
133
134 var index = this.indexOf(item);
135 if (index == -1)
136 return false;
137
138 this.splice(index, 1);
139 return true;
140};
\No newline at end of file