Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7a9851b7d | ||
|
|
74a1e29f1b | ||
|
|
b35bcd7dc7 | ||
|
|
189140e1f9 | ||
|
|
6c877c9016 |
20
Dockerfile
Normal file
20
Dockerfile
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
FROM node:10-alpine
|
||||||
|
|
||||||
|
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
|
||||||
|
|
||||||
|
WORKDIR /home/node/app
|
||||||
|
|
||||||
|
COPY ./src/ ./src/
|
||||||
|
COPY ./transcripts/ ./transcripts/
|
||||||
|
COPY package*.json ./
|
||||||
|
|
||||||
|
USER node
|
||||||
|
|
||||||
|
RUN npm config set strict-ssl false
|
||||||
|
RUN npm install
|
||||||
|
RUN npm config set strict-ssl true
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
COPY --chown=node:node . .
|
||||||
|
|
||||||
|
CMD ["npm", "start"]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "safesupport-bot",
|
"name": "private-safesupport-bot",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"description": "Chatbot to manage interactions on Safe Support Chat",
|
"description": "Chatbot to manage interactions on Safe Support Chat",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
20
src/bot.js
20
src/bot.js
@@ -109,11 +109,10 @@ class OcrccBot {
|
|||||||
let chatOffline = true;
|
let chatOffline = true;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const data = await this.client.getGroupUsers(this.config.FACILITATOR_GROUP_ID)
|
const roomMembers = await this.client.getJoinedRoomMembers(this.config.FACILITATOR_ROOM_ID)
|
||||||
const members = data.chunk
|
const members = Object.keys(roomMembers["joined"]);
|
||||||
|
|
||||||
members.forEach(member => {
|
members.forEach(memberId => {
|
||||||
const memberId = member.user_id;
|
|
||||||
const user = this.client.getUser(memberId);
|
const user = this.client.getUser(memberId);
|
||||||
if (
|
if (
|
||||||
user &&
|
user &&
|
||||||
@@ -142,18 +141,17 @@ class OcrccBot {
|
|||||||
this.localStorage.removeItem(`${roomId}-waiting`)
|
this.localStorage.removeItem(`${roomId}-waiting`)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const groupUsers = await this.client.getGroupUsers(this.config.FACILITATOR_GROUP_ID)
|
const facilitatorsRoomMembers = await this.client.getJoinedRoomMembers(this.config.FACILITATOR_ROOM_ID)
|
||||||
const roomMembers = await this.client.getJoinedRoomMembers(roomId)
|
const supportRoomMembers = await this.client.getJoinedRoomMembers(roomId)
|
||||||
|
|
||||||
const roomMemberIds = Object.keys(roomMembers["joined"]);
|
const roomMembersIds = Object.keys(supportRoomMembers["joined"]);
|
||||||
const groupMemberIds = groupUsers["chunk"]
|
const facilitatorsIds = Object.keys(facilitatorsRoomMembers["joined"]);
|
||||||
|
|
||||||
if (!roomMemberIds || !groupMemberIds) return;
|
if (!roomMembersIds || !facilitatorsIds) return;
|
||||||
|
|
||||||
const facilitatorsIds = groupMemberIds.map(f => f.user_id);
|
|
||||||
|
|
||||||
facilitatorsIds.forEach(f => {
|
facilitatorsIds.forEach(f => {
|
||||||
if (!roomMemberIds.includes(f)) {
|
if (!roomMembersIds.includes(f)) {
|
||||||
this.kickUserFromRoom(roomId, f);
|
this.kickUserFromRoom(roomId, f);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user