JFD7BGS3ANIPYT4DPN3TKDKGGKGTUHUU5LU35JRMV3KDTNHAEW5AC WLL4E42SFAI3H32VDWYQBO3UQCVPENKOKPQ4MFN5HXLAKK7ROCHAC QJQPPSN5XHBV7JCHNWSMSYAMI3SPA7AH6YBT6RZHM6VILD3EFBWAC LEUDWZBM5Y6V5SCI4RYV5D5DB6PI3QSAZLAIKM5AWLOWIBBY52IAC 7VX7XI4E76UTOIIJTPA3KMGP2RLYHPIXQKYX5ODHK6KPNBMF4K5AC F7UEAPOJLX43J32QD6JJ4YABOZLMQR2THHL6BGFTPSYZ35XQJSQAC S4P2B3FPF57HPHTIAYGMPCVKB7573IB5ZBKNXVBTB6ICCPF55WNQC QL6XMZVF4SF7IRDMR2EYCPVTBMO6XMNE3RHFKFFD7HYFVLZNPT5QC X7NNYKN2IL2YDYVTULO5ZGZOGLJGBXXZBZD2E36FQDAXLCKMAKIQC O774NWA2NLE34RNFCQAYXU2QVRVTPVW6O7KWXOUTCS35CX4EY4HQC K4DRWAY72CGDTYJ52KGZFEZDO5HHXOYRIYR5L2SHXXUF3BPNOWTAC AM6J7DCX4WUM42ZO37VBOO7NX773WEPG7QYUUBSLSOUPEFXH4VOAC ZMJSFPLI2KQY7HW3KODWOLXNX5SYZ6EELP2XTDVW4XGCZRHFEBJQC 5C6575AV4JOMVQL4N6W76DMERCIE6TYIEK4GUMFOPMNZKPESYDGAC IFIPQDY4PK33J6ZG23UM72GJER33DCJEWYEV2PDJSA6P2SIXVSNAC ZFTQHHBQPTGLWIJ6NO7LEA6HAVWWL2QWSX4MYVJSC4MQ6SHPC53AC AH7QOBSNSTHCXGUHNUS2GOVJIAZPJSYP5DAQZ74GEH5UHG7I5YLAC B5EQK6YSRS2YL3C4MXWCOUDYDEOB46LXAZNRCSXC7STIME7W6JQAC SW3QAH77K7K2DB6HYIMH7737GL6KUOZELFLWGZWF7AY66ZTLM7LQC JXKG67IHVGVO7WJFPTFZI4WJ54Q3BMIAQQKH4DAZP4HABHEVQI3AC SEUEBLXEQOFJNM2KAA26Q6EX64IIMUCL44HIYWBKTWY34GENXRSQC LJZEEQHTC6TPCTB4XMXWTKQMGT4X4FU7YQWAGAGF644ULSSRGZPAC 3CWGLJPBNZCCMZELC64VKGORTTDU5RY2ABF6DKRWS5FURPIG5PWQC K7K3EWO4H75J63G3IREKSPGBVBF6LFZHD4WRKGQTWUYTYGHWQ22QC P5UC3WC22YVZLV3A2PPZ54MZABW66GHGMH7RCVTK5HDTG6FWFZUQC D745BHIMRZ4U6UASGNEPR6PAAWAGPMY5CH572UYVGAG6CH4FMURQC pub fn (mut self Actor) room_alias(room_name string) ?string {if room_name.starts_with('#') {ret, code := self.call_get('directory/room/' + urllib.path_escape(room_name)) ?
struct RoomAliasResultRoom {pub:room_id string}struct RoomAliasResultNotFound {}pub fn (mut self Actor) room_alias(room_alias string) ?&RoomAliasResult {if room_alias.starts_with('#') {ret, code := self.call_get('directory/room/' + urllib.path_escape(room_alias)) ?
if added_room_id := self.matrix.room_alias(room) {match self.join_request_matrix(room, added_room_id) {.saved {msg = 'matrix room $room ($added_room_id) added'go self.sync_rooms()
if alias_result := self.matrix.room_alias(room) {match alias_result {matrix.RoomAliasResultRoom {match self.join_request_matrix(room, alias_result.room_id) {.saved {msg = 'matrix room $room ($alias_result.room_id) added'go self.sync_rooms()}.already_joined {msg = 'matrix room $room already added'}}
added_room_id := self.matrix.room_alias(room) or { room }self.leave_request(chat.System.matrix, network, added_room_id)msg = 'matrix room $room removed'
if alias_result := self.matrix.room_alias(room) {match alias_result {matrix.RoomAliasResultRoom {self.leave_request(chat.System.matrix, network, alias_result.room_id)msg = 'matrix room $room removed'}else {}}} else {}
if room_id := self.matrix.room_alias(room.id) {println('sync_rooms: joining $room_id')_, code := self.matrix.join(room_id) or {println('matrix.join fail $err')continue}if code == 200 {self.matrix.joined_rooms.add(room)self.admin_say('matrix: room $room joined')} else if code == 403 {println('sync_rooms: not invited to $room.name')
if alias_result := self.matrix.room_alias(room.id) {match alias_result {matrix.RoomAliasResultRoom {println('sync_rooms: joining $alias_result.room_id')_, code := self.matrix.join(alias_result.room_id) or {println('matrix.join fail $err')continue}if code == 200 {self.matrix.joined_rooms.add(room)self.admin_say('matrix: room $room joined')} else if code == 403 {println('sync_rooms: not invited to $room.name')}}matrix.RoomAliasResultNotFound {println('sync_rooms: matrix room $room unknown/no alias')}