K4DRWAY72CGDTYJ52KGZFEZDO5HHXOYRIYR5L2SHXXUF3BPNOWTAC S322OPKX7PXH63364D4SUFMR4VTWHJLZRSB7TK7YVEZHC4MFK2DAC ZC73RDIWLPNSCHDT35Z3TW5V6YANEVPPTYWLATPGCTYY3DCR2SEAC 3IVQISZYB5OP4LHWWDFFM5EXFJNHCKP4Q5VCAPRGRCKFP6RTK3WAC YLSNKGUDSJN3S37GCAHLNBIK22PVZNLFFLMFGM533XGZ56FVHLZQC VDRC3JXJMIYZ65PDFUBKHJGMKWIBFGYU4WPF43OOXHKTL2UBFKEAC M6OET34YASLXAXZ33UTDM5R26YZOIYC2BIGMCAQIVVKAHVWTHOPQC 4DHN3FJ7YPSEPXXU2LCTLKGCAKH6RLGLTYFN2P6XTZJDPR5SFJMAC BXLMOKJKVWRCNSJSD6L4RFON2IHEWB7J42QRYWN7M45XP22752YAC QWIXQSP22VFGDT23HBBOAHSCPQBWYJHBDD3SDECPB6J6WWKKYLLAC N5EIST2VUX7VCGRCPSLZDTCKZJ5R7WN7C25YYUNUJDDWVBGVTW5AC S4P2B3FPF57HPHTIAYGMPCVKB7573IB5ZBKNXVBTB6ICCPF55WNQC 6L2PHVBOCBBAYDUP4WX2DUEOPDHE5SP5M3MUORP5DNO63CJZULXAC MMSDEJK2BQO6CF6JG3OBDSKMQPIVWWM7BMZH6HIBDHVAVZ5JDAEQC FMITFZMDZ5E5DL7RX5KPFGWFQUUTEDHR36UYB6IVELFL6G7P2QYQC JY3V7EV6X6EJH2QANLNO3S3YXZMGEW53BCIPFNVXSKZFUBSXHCAAC AETEUT6ER7MJXNYTBH5RHUT5URSRWNBJPXU2CA4URLSNAZYMWPIAC D745BHIMRZ4U6UASGNEPR6PAAWAGPMY5CH572UYVGAG6CH4FMURQC 55NYCTVRAG7AFJJGNOKSB6NFFNWG5DOMCNZS2JM6EV6MUWCTD2JQC 7Z22HWWDWKUZCOQFEWOJN64BJ5M33AYQ2GEJMHP3UV2OXJIH3BCAC QSVSWWLVNUZKM4O3ORKON6IOHME5NI5U5UJ2GB7VIMJUUGH2VTDAC N37MFXWU4ZPJYWW2PSMBRBJ6BPO4QYRO4F5IIWM22Z2ZKQRVNYAQC DB44ZP7WEBTVG2VE22AT3WEOV7BAKSTKWSLAAQJ22PCS2ELDK5SAC HA7HWWCWLZNJVHU7BI4IL5HTT26V44HJKDRZHXMT5AN6B7NH7N6AC W2UG5LCJVKYGQU2ZBRIVWYY3YA4EIWKJLAJDLVAJAN5C6TRQMESAC HXFMZ33TZUVH43HSHN2QEBFDW6APDJLFG7BNWS7AYVOPZBARUV7QC ENRR7LLIYI4SGOFMKYHLYCQEQOZVYUKCSHPXBOBN23QIPE6CPLSAC QL6XMZVF4SF7IRDMR2EYCPVTBMO6XMNE3RHFKFFD7HYFVLZNPT5QC HOTNNU7JNR57KX2CXXD5QKT5XB43UWZUCMOIJKCX4JDYCCXF62XAC N343WEHJUDTRJLKLMJUOTJN5DTP2YYOZKC5SJJZOPJYBAZY3CNBAC P5UC3WC22YVZLV3A2PPZ54MZABW66GHGMH7RCVTK5HDTG6FWFZUQC 6X33AHGPVP35T5LN6D6Q55LRVRIBGVCI3INVWFCFJ62DVK6YNMRAC 7755FHS7ZTG4YGJNFYAONWSWSM636WOWFRISDKQU2AOJHN6ZVMBAC X6OO4RRZO4VNXDK3YDFUNKMJLRUTMR7TYTLJUVKC6RDY3VU67PAQC IAS75T3RE4KGP26ILCNZG5G52DZPV7XACR7PJUYVJACQUVH5J4HAC HIRCSAI6D4EEV57CQCFIOCHXT4FUSABC4J46ER2GQY7IED3P6ZRQC 526F5RML2DYJ6Y5R3A6FD5QKQ57NYONRBJMOXGR4WVEF6I6IAEHAC SX4IAP27IQ7B5QFX74GKQYRX4IJSJTZ4CLH7EPFSJWATV7LVXR4AC B5EQK6YSRS2YL3C4MXWCOUDYDEOB46LXAZNRCSXC7STIME7W6JQAC 3CWGLJPBNZCCMZELC64VKGORTTDU5RY2ABF6DKRWS5FURPIG5PWQC K7K3EWO4H75J63G3IREKSPGBVBF6LFZHD4WRKGQTWUYTYGHWQ22QC GOQKAC5U66BDKPV2O7XALAHBW3UWJOM6SGOV3T4455NN52MJUSPAC matrix_host string = 'homeserver.example'as_token string = 'fixme'as_port int = 9090rpc_port int = 8099admin_room string
matrix_host string = 'homeserver.example'matrix_owner stringas_token string = 'fixme'as_port int = 9090rpc_port int = 8099admin_room string
conn_state ConnStatelast_say time.Timerooms []Roomwhoami string
conn_state ConnStatelast_say time.Timejoined_rooms Roomswhoami string}struct Rooms {pub mut:rooms []Room
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')
if self.joined_rooms.len() > 0 {if room := self.joined_rooms.dm(self.owner) {self.room_say(room, 'irc bridge started. homeserver $self.host')}
pub fn (mut self Actor) join(room_id string) string {self.call(http.Method.post, 'rooms/$room_id/join', '') or {}return ''
pub fn (mut self Actor) join(room_id string) ?(map[string]json2.Any, int) {return self.call(http.Method.post, 'rooms/$room_id/join', '')
pub fn (mut self Actor) room_name(room_id string) ?string {println('room_name: searching $self.rooms.len rooms')for mut room in self.rooms {println('room_name comparing $room.id to $room_id')if room.id == room_id {return room.name}}return error('room_name not in room list')}
}pub fn (mut self Rooms) replace(rooms []&Room) {self.rooms.clear()// VBUG self.rooms << roomsfor r in rooms {self.rooms << r}}pub fn (mut self Rooms) add(room Room) {self.rooms << room}pub fn (mut self Rooms) delete(room_id string) {}pub fn (mut self Rooms) len() int {return self.rooms.len}pub fn (mut self Rooms) dm(user string) ?Room {return self.rooms[0]}pub fn (mut self Rooms) find_room(room_id string) ?Room {for room in self.rooms {if room.id == room_id {return room}}return error('room \"$room_id\" not found')}pub fn (mut self Rooms) room_name(room_id string) ?string {println('room_name: searching $self.rooms.len rooms')for mut room in self.rooms {println('room_name comparing $room.id to $room_id')if room.id == room_id {return room.name}}return error('room_name not in room list')
mut msg := '$self.matrix.host is $self.matrix.conn_state in $self.matrix.rooms.len rooms. $self.irc.networks.len irc networks connected.'
mut msg := '$self.matrix.host is $self.matrix.conn_state in $self.matrix.joined_rooms.len() rooms. $self.irc.networks.len irc networks connected.'