B5EQK6YSRS2YL3C4MXWCOUDYDEOB46LXAZNRCSXC7STIME7W6JQAC VUU7P2MXSNQIJFZTGKBNP3ZVL47VBLAKNQB35MSPT6MOEDBLBD4AC S4P2B3FPF57HPHTIAYGMPCVKB7573IB5ZBKNXVBTB6ICCPF55WNQC DB44ZP7WEBTVG2VE22AT3WEOV7BAKSTKWSLAAQJ22PCS2ELDK5SAC FMITFZMDZ5E5DL7RX5KPFGWFQUUTEDHR36UYB6IVELFL6G7P2QYQC 4DHN3FJ7YPSEPXXU2LCTLKGCAKH6RLGLTYFN2P6XTZJDPR5SFJMAC W2UG5LCJVKYGQU2ZBRIVWYY3YA4EIWKJLAJDLVAJAN5C6TRQMESAC PFE537UQPEHTZAMPKTXNTJF6Z56PA2LQNAQHEOVTD2ZQRTFUTJKAC 6L2PHVBOCBBAYDUP4WX2DUEOPDHE5SP5M3MUORP5DNO63CJZULXAC SSXL34RI3VDNBMJNHXBNORVQ7QQ2CTPXIXUNTUUMFA224DOAAKMQC W2M2UMQWCG5K3MYSCAJJADB7FGYAM4ODV6BEBAEBPM7J3ZJCHCBAC JFLKJBID7LCJ7KIIYBWTQZT3TO2WSZHRKRCZTHUXBMS5PTBRZYZAC 55NYCTVRAG7AFJJGNOKSB6NFFNWG5DOMCNZS2JM6EV6MUWCTD2JQC HTHDQRSJV4WVGIM53GR7JGIRZACMIZDI5UMJ522QFI3ZCX5K56GQC 4NHACREOMGXYM2LG72ZE4QFU4UFCIFWCZXGLSCOYJ3KTUV2K33OQC ENRR7LLIYI4SGOFMKYHLYCQEQOZVYUKCSHPXBOBN23QIPE6CPLSAC K7K3EWO4H75J63G3IREKSPGBVBF6LFZHD4WRKGQTWUYTYGHWQ22QC AH7QOBSNSTHCXGUHNUS2GOVJIAZPJSYP5DAQZ74GEH5UHG7I5YLAC 4SYFUW4ODJBXFYH357E7K7YIPVVHQ3ALIJBFUXAHPBPLWFYL3DDQC id: cols[0]name: cols[1]
id: cols[0]name: cols[1]}}pub fn rooms_subtract(rooms_a []&Room, rooms_b []&Room) []&Room {mut missing := []&Room{}for room in rooms_a {if rooms_contains(rooms_b, room) {} else {missing << room}}return missing}pub fn rooms_contains(rooms []&Room, looking Room) bool {for room in rooms {if room.id == looking.id {println('FOUND')return true}
// self.room_state(rooms[0])self.room_messages(self.rooms[0])self.room_say(self.rooms[0], 'irc bridge started. homeserver $self.host')self.conn_state = ConnState.connected
if self.rooms.len > 0 {// self.room_state(rooms[0])self.room_messages(self.rooms[0])self.room_say(self.rooms[0], 'irc bridge started. homeserver $self.host')}
pub fn (mut self Actor) joined_rooms() ?[]Room {resp := self.call_get('joined_rooms') or { return []Room{} }return resp['joined_rooms'].arr().map(Room{ id: it.str() })
pub fn (mut self Actor) joined_rooms() ?[]&Room {resp := self.call_get('joined_rooms') or { return []&Room{} }return resp['joined_rooms'].arr().map(&Room{ id: it.str() })
println('sync_rooms: db_rooms $db_rooms')j_rooms := self.matrix.joined_rooms() or {panic('joined_rooms fail') }println('sync_rooms: joined_rooms $j_rooms')for row in self.db.select_all('matrix_rooms') {println(row)if room_id := self.matrix.room_alias(row[1]) {if room := self.matrix.find_room(room_id) {println('sync_rooms: $room.id/$room.name is already known')} else {println('sync_rooms: joining $room_id ')self.matrix.join(room_id)}
println('sync_rooms: matrix db_rooms $db_rooms')j_rooms := self.matrix.joined_rooms() or { panic('joined_rooms fail') }println('sync_rooms: matrix joined_rooms $j_rooms')needs_to_join := matrix.rooms_subtract(db_rooms, j_rooms)println('sync_rooms: matrix needs_to_join $needs_to_join')for room in needs_to_join {println(room)if room_id := self.matrix.room_alias(room.name) {println('sync_rooms: joining $room_id')self.matrix.join(room_id)