Skip to content

Commit fb94205

Browse files
committed
fix reconnect
1 parent c2615c2 commit fb94205

8 files changed

+40
-27
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,5 @@ typings/
6161
.next
6262

6363
# npm lockfile (using yarn)
64-
package-lock.json
64+
package-lock.json
65+
.DS_Store

index.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,14 @@ const handle = (req, res) => res.end('hit');
55
const server = http.createServer(handle);
66
server.listen(process.env.PORT || 5000);
77

8-
//require('./src/examples');
98
require('./src/calendar');
109
require('./src/invite');
1110
require('./src/help');
1211

12+
setTimeout(() => {
13+
if (bot.getStatus() !== 'started') {
14+
process.exit(1);
15+
}
16+
}, 21000);
1317
bot.start();
18+

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"PiterJS"
2828
],
2929
"dependencies": {
30+
"axios": "^0.19.0",
3031
"bbot": "^1.4.0",
3132
"ics": "^2.13.2",
3233
"moment": "^2.24.0",
@@ -52,6 +53,7 @@
5253
"debug": "ndb index.js",
5354
"mocha": "mocha",
5455
"test": "nyc mocha",
56+
"test:report": "nyc --reporter=lcov --reporter=text-summary mocha",
5557
"test:codecov": "codecov"
5658
}
5759
}

src/calendar.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const transporter = nodemailer.createTransport({
1717
});
1818

1919
const parseMeet = msg => {
20-
msg = msg.replace('!meet', '');
20+
msg = msg.replace('!meeting', '');
2121
msg = msg.replace(process.env.BOT_NAME, '');
2222
let {date, rexp} = parseDateFromString(msg);
2323
if (date.isBefore(moment().subtract(10, 'minutes'))) {
@@ -141,7 +141,7 @@ const initMeet = async b => {
141141
*Date:* ${date}
142142
*Organizer:* ${meet.org.name}
143143
*Invites:* ${meet.invites.map(v => (v.name ? v.name : v.email)).join(' ')}
144-
\`!meet create\` - to create`);
144+
\`!meeting create\` - to create`);
145145
} catch (err) {
146146
b.envelope.write(`Error: ${err.message}`);
147147
}
@@ -154,7 +154,6 @@ const createMeet = async b => {
154154
} = b.message;
155155
if (id in meetings) {
156156
const { title, date, url, org, invites } = { ...meetings[id] };
157-
console.log(meetings[id]);
158157
const dd = moment(date);
159158
const data = {
160159
start: [
@@ -195,7 +194,7 @@ const createMeet = async b => {
195194
html: `<p>Invite to ${data.title} from ${data.organizer.name}</p>`,
196195
attachments: [{ filename: 'invite.ics', content: event }]
197196
};
198-
const info = await transporter.sendMail(msg);
197+
await transporter.sendMail(msg);
199198
b.envelope.write(`_Meeting was sended!_ Waiting you at ${date}`);
200199
} catch (err) {
201200
b.envelope.write('Error: sending email');
@@ -208,7 +207,7 @@ const createMeet = async b => {
208207
b.respond();
209208
};
210209

211-
bot.global.direct(/!meet/, async b => {
210+
bot.global.direct(/!meeting/, async b => {
212211
const {
213212
user: {
214213
room: { type }
@@ -218,7 +217,7 @@ bot.global.direct(/!meet/, async b => {
218217
if (type !== 'd') {
219218
return;
220219
}
221-
if (/!meet\screate/.test(text)) {
220+
if (/!meeting\screate/.test(text)) {
222221
createMeet(b);
223222
} else {
224223
initMeet(b);

src/help.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ const bot = require('bbot');
33
function help(b) {
44
b.respond(`*Commands:*
55
\`!invite invite@email.dev #channel_name\` - invite user by email to channel (if user already registred invite user to channel)
6-
\`!meet Meetings name (4 Jun 2019 13:00|2019-06-04 13:00|04.06.2019 13:00|04-06-2019 13:00) @user #channel meet@email.dev\` - create meeting
6+
\`!meeting Meetings name (4 Jun 2019 13:00|2019-06-04 13:00|04.06.2019 13:00|04-06-2019 13:00) @user #channel meet@email.dev\` - create meeting
7+
\`!meetup Meetup name (4 Jun 2019 13:00|2019-06-04 13:00|04.06.2019 13:00|04-06-2019 13:00)\` - create new meetup
78
`)
89
}
910

test/calendar.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('calendar.js', () => {
4242
invites: ['@test', '#test', 'test@email']
4343
};
4444
const nm = f(
45-
`${process.env.BOT_NAME} !meet ${m.title} ${m.date} ${m.invites.join(
45+
`${process.env.BOT_NAME} !meeting ${m.title} ${m.date} ${m.invites.join(
4646
' '
4747
)}`
4848
);
@@ -56,7 +56,7 @@ describe('calendar.js', () => {
5656
};
5757
const nm = () =>
5858
f(
59-
`${process.env.BOT_NAME} !meet ${m.title} ${m.date} ${m.invites.join(
59+
`${process.env.BOT_NAME} !meeting ${m.title} ${m.date} ${m.invites.join(
6060
' '
6161
)}`
6262
);
@@ -69,7 +69,7 @@ describe('calendar.js', () => {
6969
invites: []
7070
};
7171
const nm = f(
72-
`${process.env.BOT_NAME} !meet ${m.title} ${m.date} ${m.invites.join(
72+
`${process.env.BOT_NAME} !meeting ${m.title} ${m.date} ${m.invites.join(
7373
' '
7474
)}`
7575
);
@@ -98,15 +98,15 @@ describe('calendar.js', () => {
9898
const f = calendar.__get__('initMeet');
9999
it('init meeting', async () => {
100100
const fq = new FQ(
101-
'!meet Meetings name 4 Jun 2050 13:00 @user #channel meet@email.de'
101+
'!meeting Meetings name 4 Jun 2050 13:00 @user #channel meet@email.de'
102102
);
103103
await f(fq);
104104
expect(fq.result).to.be.a('string').and.equal(`_Meeting:_
105105
*Title:* Meetings name
106106
*Date:* 04 June 2050 13:00
107107
*Organizer:* Test 2
108108
*Invites:* Test 1 meet@email.de
109-
\`!meet create\` - to create`);
109+
\`!meeting create\` - to create`);
110110
});
111111
});
112112
});

test/parseDateFromString.js

+16-12
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,66 @@
11
const { expect } = require('chai');
2-
const moment = require('moment');
32
const parseDateFromString = require('../helpers/parseDateFromString');
43

54
describe('#parseDateFromString()', () => {
6-
it('04 Jun 2019 13:00', () => {
7-
const pd = parseDateFromString('Text 04 Jun 2019 13:00 other text');
5+
it('04 Jun 2019 20:00', () => {
6+
const pd = parseDateFromString('Text 04 Jun 2019 20:00 other text');
87
expect(pd)
98
.to.be.an('object')
109
.to.deep.include({
1110
rexp: /(\d{1,2})\s(\w{3})\s(\d{4})\s(\d{1,2}):(\d{1,2})/i,
1211
format: 'DD MMM YYYY HH:mm'
1312
});
1413
expect(pd).to.be.an.instanceOf(Object);
14+
expect(pd.date.format('YYYY-MM-DD HH:ss')).to.be.equal('2019-06-04 20:00')
1515
});
16-
it('04 June 2019 13:00', () => {
17-
const pd = parseDateFromString('Text 04 June 2019 13:00 other text');
16+
it('04 June 2019 20:00', () => {
17+
const pd = parseDateFromString('Text 04 June 2019 20:00 other text');
1818
expect(pd)
1919
.to.be.an('object')
2020
.to.deep.include({
2121
rexp: /(\d{1,2})\s(\w{4,9})\s(\d{4})\s(\d{1,2}):(\d{1,2})/i,
2222
format: 'DD MMMM YYYY HH:mm'
2323
});
2424
expect(pd).to.be.an.instanceOf(Object);
25+
expect(pd.date.format('YYYY-MM-DD HH:ss')).to.be.equal('2019-06-04 20:00')
2526
});
26-
it('2019-06-04 13:00', () => {
27-
const pd = parseDateFromString('Text 2019-06-04 13:00 other text');
27+
it('2019-06-04 20:00', () => {
28+
const pd = parseDateFromString('Text 2019-06-04 20:00 other text');
2829
expect(pd)
2930
.to.be.an('object')
3031
.to.deep.include({
3132
rexp: /(\d{4})-(\d{1,2})-(\d{1,2})\s(\d{1,2}):(\d{1,2})/i,
3233
format: 'YYYY-MM-DD HH:mm'
3334
});
3435
expect(pd).to.be.an.instanceOf(Object);
36+
expect(pd.date.format('YYYY-MM-DD HH:ss')).to.be.equal('2019-06-04 20:00')
3537
});
36-
it('04-06-2019 13:00', () => {
37-
const pd = parseDateFromString('Text 04-06-2019 13:00 other text');
38+
it('04-06-2019 20:00', () => {
39+
const pd = parseDateFromString('Text 04-06-2019 20:00 other text');
3840
expect(pd)
3941
.to.be.an('object')
4042
.to.deep.include({
4143
rexp: /(\d{1,2})-(\d{1,2})-(\d{4})\s(\d{1,2}):(\d{1,2})/i,
4244
format: 'DD-MM-YYYY HH:mm'
4345
});
4446
expect(pd).to.be.an.instanceOf(Object);
47+
expect(pd.date.format('YYYY-MM-DD HH:ss')).to.be.equal('2019-06-04 20:00')
4548
});
46-
it('04.06.2019 13:00', () => {
47-
const pd = parseDateFromString('Text 04.06.2019 13:00 other text');
49+
it('04.06.2019 20:00', () => {
50+
const pd = parseDateFromString('Text 04.06.2019 20:00 other text');
4851
expect(pd)
4952
.to.be.an('object')
5053
.to.deep.include({
5154
rexp: /(\d{1,2}).(\d{1,2}).(\d{4})\s(\d{1,2}):(\d{1,2})/i,
5255
format: 'DD.MM.YYYY HH:mm'
5356
});
5457
expect(pd).to.be.an.instanceOf(Object);
58+
expect(pd.date.format('YYYY-MM-DD HH:ss')).to.be.equal('2019-06-04 20:00')
5559
});
5660
it('No date', () => {
5761
expect(() => parseDateFromString('Text other text')).to.throw(Error, 'Invalid date');
5862
});
59-
it('Wrong date 20.20.2019 13:00', () => {
63+
it('Wrong date 20.20.2019', () => {
6064
expect(() => parseDateFromString('Text 20.20.2019 other text')).to.throw(Error, 'Invalid date');
6165
});
6266
});

test/utils/fakeQuery.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ module.exports = function fakeQuery(text, id = 2) {
66
write: wr
77
};
88
this.message = {
9-
user: { id },
9+
user: { id, room: { type: 'd' } },
10+
room: { type: 'd' },
1011
text
1112
};
1213
return this;

0 commit comments

Comments
 (0)