HIRCSAI6D4EEV57CQCFIOCHXT4FUSABC4J46ER2GQY7IED3P6ZRQC FMITFZMDZ5E5DL7RX5KPFGWFQUUTEDHR36UYB6IVELFL6G7P2QYQC S6GE7VUHYD7MG4ROJRX6HMEOS6CJZM7AC45W4ELVMHUCA2EJQMSQC KRJGUGDLL5WDLR6KLDQCIP5354L7ROGLRSF2YLI7KWMPQGN4JEPAC S4P2B3FPF57HPHTIAYGMPCVKB7573IB5ZBKNXVBTB6ICCPF55WNQC MHH6QV5QBHBYPWSQMV7IAU5CJQPYZQUEJT7PIR3BPWWJJ7S5MPUAC BO5VKP6Z3GNEZN2RKCS4MSUYM77L3KSOJAFGZO4GPDPSZAHQ7PSQC 3ZE4YIXX3UAKYLD2EJSIX2DPHFUOF3TOUKBPHG4UKX4UOP7DPSEQC TJNT6TZFQXLU6TR23YNGDDXTB57ICLZMNHXOC5NT636YWGGEPW6QC YLSNKGUDSJN3S37GCAHLNBIK22PVZNLFFLMFGM533XGZ56FVHLZQC SX4IAP27IQ7B5QFX74GKQYRX4IJSJTZ4CLH7EPFSJWATV7LVXR4AC NLJ46AR34RLPF6A5XTBTQU72LDYPCZONUVXFI4ZYFTWI2JVJJDNAC GJG4W23FRRNBABPBTE57FMXQDVEN67TA5QVES6JBUS6RVEJSYTZAC V7HS237PBWI3JIA2FKGHVZ6CXT2BFE6VMXGZSJD7RGD6A3U2ISGQC 5X6GHU7OPRGKRGT5PJBQOJMP3AFMM4HZQ47X5EH7DDXCTCWA6LIQC E56QHKOALQCK7UGAJ6UNNZYTVUTSKLV25KYTPUQYMQWVDI6JIUCAC 66SL4FZVO2A5G5QC5TNKJIEK2NOJBIAULY66LTRYNTA2FAZQ4APQC 4NHACREOMGXYM2LG72ZE4QFU4UFCIFWCZXGLSCOYJ3KTUV2K33OQC 7XX4PZDK3I6YFLATBWJ7EINM2YBXEL4AQBOLHIP6IXFEEHJB5MLQC 7MLJEICDGSP5GMTO7MRQY5SFBLEROD6LDGKBTGHSIHJVB42ZXVMAC DB2BCHT5GXNQ3JXQXWMDFNXIO7OVEQMVY34SHTAWSJS47N67YTIQC 42VXBMHQX5RDOVPY5LTQMJ3PGOEFGONBBHFWTSYIKHVMPN2IZQYAC ZQE5UGGBKZRNI6ASUNOWVP4URLC7IHAWBO4RRACWLNS6OX2KQZVQC ZMAZUHFHJOW2GSUH5SUDXRG4STQ6PQHWYGZIZHEJCN73PSNQOAAQC LNGUDOUQK35O5IIUHSVJ5LW54JA7QNMNCJGQNYWPRDUSK6R4XCLQC M5GXUK5HZE7HPLWQ33T73CXRJITOUJAO6T6F6QWTYYL7NLWFYA3AC IAS75T3RE4KGP26ILCNZG5G52DZPV7XACR7PJUYVJACQUVH5J4HAC VSXY63RCAE4WDARTVOW6YDD6VPMRBNASRD73R4UMZDAAQX7MAVTAC F7UEAPOJLX43J32QD6JJ4YABOZLMQR2THHL6BGFTPSYZ35XQJSQAC match irc_m {irc.PrivMsg {println(irc_m.one_line())if irc_m.message.starts_with('!') {room := if irc_m.channel == irc_m.network.nick {irc_m.nick[1..].split('!')[0]} else {irc_m.channel}self.command(chat.System.irc, irc_m.network.hostname, room,irc_m.message[1..])} else {// repeat in matrixchat.say(self.out_chan, chat.System.matrix, 'room', irc_m.message)}}irc.Connect {self.sync_rooms()}}
self.irc_do(irc_m)
fn (mut self Main) irc_do(irc_m irc.Payload) {match irc_m {irc.PrivMsg {println(irc_m.one_line())if irc_m.message.starts_with('!') {room := if irc_m.channel == irc_m.network.nick {irc_m.nick[1..].split('!')[0]} else {irc_m.channel}self.command(chat.System.irc, irc_m.network.hostname, room, irc_m.message[1..])} else {// repeat in matrixsystem, room := self.room_match(chat.System.irc, irc_m.channel)chat.say(self.out_chan, system, room, irc_m.message)}}irc.Connect {self.sync_rooms()}}}
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.rooms.len rooms. $self.irc.networks.len irc networks connected.'
pub fn (mut self Main) room_match(network chat.System, room_name string) (chat.System, string) {other_system, other_room := match network {.irc {chat.System.matrix, room_name}.matrix {chat.System.irc, room_name}}return other_system, other_room}