901 __tostring = function (self) |
901 __tostring = function (self) |
902 return "MUC room <"..self.room.jid..">"; |
902 return "MUC room <"..self.room.jid..">"; |
903 end; |
903 end; |
904 }; |
904 }; |
905 |
905 |
906 function def_env.muc:room(room_jid) |
906 local function check_muc(jid) |
907 local room_name, host = jid_split(room_jid); |
907 local room_name, host = jid_split(jid); |
908 if not hosts[host] then |
908 if not hosts[host] then |
909 return nil, "No such host: "..host; |
909 return nil, "No such host: "..host; |
910 elseif not hosts[host].modules.muc then |
910 elseif not hosts[host].modules.muc then |
911 return nil, "Host '"..host.."' is not a MUC service"; |
911 return nil, "Host '"..host.."' is not a MUC service"; |
912 end |
912 end |
|
913 return room_name, host; |
|
914 end |
|
915 |
|
916 function def_env.muc:create(room_jid) |
|
917 local room, host = check_muc(room_jid); |
|
918 return hosts[host].modules.muc.create_room(room_jid); |
|
919 end |
|
920 |
|
921 function def_env.muc:room(room_jid) |
|
922 local room_name, host = check_muc(room_jid); |
913 local room_obj = hosts[host].modules.muc.rooms[room_jid]; |
923 local room_obj = hosts[host].modules.muc.rooms[room_jid]; |
914 if not room_obj then |
924 if not room_obj then |
915 return nil, "No such room: "..room_jid; |
925 return nil, "No such room: "..room_jid; |
916 end |
926 end |
917 return setmetatable({ room = room_obj }, console_room_mt); |
927 return setmetatable({ room = room_obj }, console_room_mt); |