You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-31 15:24:23 +03:00
Add Room.getJoinedMembers helper. UX tweaks to example.
This commit is contained in:
@ -22,7 +22,7 @@ var rl = readline.createInterface({
|
|||||||
terminal: false
|
terminal: false
|
||||||
});
|
});
|
||||||
rl.on('line', function(line) {
|
rl.on('line', function(line) {
|
||||||
if (line.indexOf("enter ") === 0 && !viewingRoom) {
|
if (line.indexOf("/enter ") === 0 && !viewingRoom) {
|
||||||
var roomIndex = line.split(" ")[1];
|
var roomIndex = line.split(" ")[1];
|
||||||
viewingRoom = roomList[roomIndex];
|
viewingRoom = roomList[roomIndex];
|
||||||
if (viewingRoom.getMember(myUserId).membership === "invite") {
|
if (viewingRoom.getMember(myUserId).membership === "invite") {
|
||||||
@ -44,6 +44,9 @@ rl.on('line', function(line) {
|
|||||||
else if (line === "/members" && viewingRoom) {
|
else if (line === "/members" && viewingRoom) {
|
||||||
printMemberList();
|
printMemberList();
|
||||||
}
|
}
|
||||||
|
else if (line === "/help") {
|
||||||
|
printHelp();
|
||||||
|
}
|
||||||
else if (viewingRoom) {
|
else if (viewingRoom) {
|
||||||
matrixClient.sendTextMessage(viewingRoom.roomId, line).done(function() {
|
matrixClient.sendTextMessage(viewingRoom.roomId, line).done(function() {
|
||||||
console.log('\x1B[2J'); // clear console
|
console.log('\x1B[2J'); // clear console
|
||||||
@ -59,6 +62,7 @@ rl.on('line', function(line) {
|
|||||||
matrixClient.on("syncComplete", function() {
|
matrixClient.on("syncComplete", function() {
|
||||||
roomList = matrixClient.getRooms();
|
roomList = matrixClient.getRooms();
|
||||||
printRoomList();
|
printRoomList();
|
||||||
|
printHelp();
|
||||||
});
|
});
|
||||||
|
|
||||||
// print incoming messages.
|
// print incoming messages.
|
||||||
@ -80,12 +84,19 @@ function printRoomList() {
|
|||||||
for (var i = 0; i < roomList.length; i++) {
|
for (var i = 0; i < roomList.length; i++) {
|
||||||
console.log(
|
console.log(
|
||||||
"[%s] %s (%s members)",
|
"[%s] %s (%s members)",
|
||||||
i, roomList[i].name, roomList[i].currentState.getMembers().length
|
i, roomList[i].name, roomList[i].getJoinedMembers().length
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
console.log("Enter a room by typing 'enter <index>', e.g. 'enter 5'");
|
}
|
||||||
console.log("Leave a room by typing '/exit'.");
|
|
||||||
console.log("Show a room member list by typing '/members'");
|
function printHelp() {
|
||||||
|
console.log("Global commands:");
|
||||||
|
console.log(" '/help' : Show this help.");
|
||||||
|
console.log("Room list index commands:");
|
||||||
|
console.log(" '/enter <index>' Enter a room, e.g. '/enter 5'");
|
||||||
|
console.log("Room commands:");
|
||||||
|
console.log(" '/exit' Return to the room list index.");
|
||||||
|
console.log(" '/members' Show the room member list.");
|
||||||
}
|
}
|
||||||
|
|
||||||
function printMessages() {
|
function printMessages() {
|
||||||
@ -119,8 +130,8 @@ function printMemberList() {
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
});
|
});
|
||||||
console.log(viewingRoom.name);
|
console.log("Membership list for room \"%s\"", viewingRoom.name);
|
||||||
console.log(new Array(viewingRoom.name.length + 1).join("-"));
|
console.log(new Array(viewingRoom.name.length + 28).join("-"));
|
||||||
viewingRoom.currentState.getMembers().forEach(function(member) {
|
viewingRoom.currentState.getMembers().forEach(function(member) {
|
||||||
if (!member.membership) {
|
if (!member.membership) {
|
||||||
return;
|
return;
|
||||||
@ -128,7 +139,10 @@ function printMemberList() {
|
|||||||
var membershipWithPadding = (
|
var membershipWithPadding = (
|
||||||
member.membership + new Array(10 - member.membership.length).join(" ")
|
member.membership + new Array(10 - member.membership.length).join(" ")
|
||||||
);
|
);
|
||||||
console.log("%s :: %s", membershipWithPadding, member.name);
|
console.log(
|
||||||
|
"%s :: %s (%s)", membershipWithPadding, member.name,
|
||||||
|
(member.userId === myUserId ? "Me" : member.userId)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,6 +45,12 @@ utils.inherits(Room, EventEmitter);
|
|||||||
return member;
|
return member;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Room.prototype.getJoinedMembers = function() {
|
||||||
|
return utils.filter(this.currentState.getMembers(), function(m) {
|
||||||
|
return m.membership === "join";
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add some events to this room's timeline. Will fire "Room.timeline" for
|
* Add some events to this room's timeline. Will fire "Room.timeline" for
|
||||||
* each event added.
|
* each event added.
|
||||||
|
Reference in New Issue
Block a user