Matrix-IRC
Tarvisiko sillata IRCNet-kanava Matrixiin "paremmalla tavalla" eli plumbaamalla? Plumbaamalla saat kanavalle admin-oikeudet Matrixin puolelle josta on riemua joissain tilanteissa.
Homma on vähän kimuranttia mutta näillä ohjeilla pitäisi onnistua.
Ennakkotiedot
Tarvitset seuraavat tiedot:
- IRC-siltabotin mxid - IRCNetissä @ircnet:irc.snt.utwente.nl
- Oma mxid - @sina:palvelin.org
- IRC-kanavan nimi - #esimerkki
- IRC-käyttäjän nick, jolla on opit #esimerkki -kanavalla - opin_nick
- Matrix-kanavan id - Alkaa huutomerkillä ja löytyy Element Webistä kanavan asetuksista Advanced | Internal room ID: !paLjOnKirJAimiA:palvelin.fi
Valmistelu
- Luo Matrix-kanava ellei ole jo. ÄLÄ laita päästä päähän-salausta päälle.
- Luo IRC-kanava, ellei ole jo liittymällä siihen. Huolehdi että sinulla (tai avustajallasi) on op-status kanavalla.
- Kutsu IRC-siltabotti Matrix-kanavalle - Matrixissa /invite @ircnet:irc.snt.utwente.nl
- Botti EI liity kanavalle vielä. Voit silti tehdä seuraavan kohdan.
- Aseta IRC-siltabotille riittävät oikeudet Matrixissa (PL99 riittää): /op @ircnet:irc.snt.utwente.nl 99
- Aseta Matrix-kanavalle "Change permissions"-oikeus vaatimaan tason 99, jos haluat että silta voi asettaa IRC-puolen opit moderaattoreiksi.
- JOS IRC-kanava on invite only (+i), kutsu IRC-siltabotti sinne: IRCissä /invite SNTMatrixBot
Siltaus
Työkalu, jolla siltaus onnistuu löytyy sivulta https://l4mrh4x0r.me/plumb-irc/ (lähdekoodi)
Anna työkalulle IRC-kanava, Matrix-kanavan ID, IRC-opin nick ja oma Matrix-tunnuksesi. Työkalu sanoo "Link request posted" jos tiedot ovat oikein.
Vaihtoehto: Siltaus JSON-pyynnöllä
Voit vaihtoehtoisesti tehdä siltauspyynnön curlilla jos se tuntuu hauskemmalta tai työkalu ei jostain syystä toimi.
Tee seuraavanlainen curl-komento (kirjoita vaikka tekstieditorissa ja copypastea terminaaliin):
curl --location --request POST 'https://matrix-irc.snt.utwente.nl/ircnet/provision/link' --header 'Content-Type: application/json' --data-binary '{ "remote_room_server": "irc.snt.utwente.nl", "remote_room_channel": "#esimerkki", "matrix_room_id": "!paLjOnKirJAimiA:palvelin.fi", "op_nick": "opin_nick", "user_id": "@sina:palvelin.org" }'
Vahvistus
Siltabotti kysyy nyt opin_nick-käyttäjältä IRC:ssä yksityisviestissä:
<SNTMatrixBot> @sina:palvelin.org has requested to bridge 'Kanavan nimi' (https://matrix.to/#/#kanava:palvelin.org) with #esimerkki on this IRC network. Respond with 'yes' or 'y' to allow, or simply ignore this message to disallow. You have 600 seconds from when this message was sent.
Vastaa: yes
Silta on nyt valmis! Jos on ongelmia, kysele IRCNet-sillan kanavalla #ircnet:utwente.io
Lopuksi
Tässä vaiheessa on varsinkin uudella kanavalla hyvä varmistaa että kanava on salainen +s ja vain opit voivat vaihtaa topicin +t. Lisäksi kannattaa asettaa reop-lista +R jotta opit eivat katoa IRCin puolella. Huomaa että Matrix-sillan luomilla IRCNet-käyttäjillä on uniikki pysyvä IPv6-osoite, eli sitä voi käyttää reop-listalla.
Sano IRC-käyttäjänä:
/mode #esimerkki +st +R *!matrixuuser@2001:xxx:yyy:zzz:0:0:0:xxxx +R *!ircuuseri@palvelin.fi
IRC-silta OSAA seurata kanavapäivitystä. Jos päivität kanavan uuteen versioon, silta tunnistaa sen ja käyttäjät tulevat automaattisesti kanavalle. Tämä tosin tapahtuu vasta kun käyttäjä sanoo jotakin tai silta käynnistetään uudelleen.
Tee näin ja tässä järjestyksessä:
- Hanki opit IRC-kanavalla oikealla IRC-käyttäjällä.
- Perusta uusi Matrix-kanava
- Pura silta (katso kohta Sillan purkaminen)
- Siltaa uusi kanava
- Tee tombstone vanhalle kanavalle osoittamaan uuteen
Huom! Jos et pura siltaa ennen plumbausta, silta jää elämään kahdelle kanavalle eikä sitä saa vanhalta omatoimisesti pois. Tämä lienee bugi IRC-sillassa.
Sillan purkaminen
Sillan pitäisi purkautua kun viimeinen Matrix-käyttäjä poistuu kanavalta.
Jos haluat purkaa sillan ja säilyttää Matrix-kanavan, tee seuraavasti (Esimerkki IRCNetissä):
- Selvitä Matrix-kanavan ID (Advanced | Internal room ID)
- Selvitä IRC-kanavan nimi IRC-verkossa
- Varmista että sinulla on op-status IRC-kanavalla.
- Avaa viestiyhteys integraatiobotille (IRCNetissä @ircnet:irc.snt.utwente.nl) ja katso sen kotipalvelin (IRCNetissä irc.snt.utwente.nl)
- Anna komento integraatiobotille:
!unlink !kanavanIdJossaPaljonKirjaimia:palvelin.fi irc.snt.utwente.nl #kanava
Heisenbridge
Heisenbridge on vaihtoehtoinen IRC-silta, jota käytetään joko henkilökohtaisena puppet-siltana tai relaybottina.
Heisenbridgejä EI ole julkisesti käytettävissä, se käytännössä pitää asentaa omalle kotipalvelimelle.
Relaysillan plumbaus
- Lisää kyseessä oleva IRC-verkko Heiseniin
- Luo uusi Matrix-kanava tarvittaessa, ei salausta
- Selvitä Matrix-kanavan ID (Advanced | Internal room ID)
- Sano verkon huoneessa: plumb !kanavanIdJossaPaljonKirjaimia:palvelin.fi #kanava
IRC-sillan luomaa portaalikanavaa ei voi epäsillata !unlink-komennolla, vaan täytyy tehdä uusi kanava:
- Perusta uusi Matrix-huone, ei salausta
- Siirrä kaikki muut sillat uuteen huoneeseen
- Kutsu vanhan huoneen Matrix-käyttäjät uuteen huoneeseen (ÄLÄ käytä tombstonea!)
- Poista vanhan huoneen aliakset ja lisää ne uuteen huoneeseen
- Poista vanha huone spaceista joissa se on, lisää uusi tilalle
- Merkkaa vanha huone jotenkin vanhaksi. Vaihda huoneen nimi vaikka Vanha: (Huoneen nimi)
- Plumbaa uusi huone Heisenbridgellä (kts ylempi otsikko)
Huomaa että vanhalle kanavalle pääsee liittymään yhä toisen IRC-sillan kautta. Näin liittyvät käyttävät näkyvät irkkaajina Matrixin kautta.
Helpotusta irkkaajille
Heisenbridge on ns. relaybot, eli sillä on yksi yhteys irkkiin ja se välittää usean käyttäjän viestit tämän yhden botin kautta:
<botti> <kayttaja> Morjensta!
IRC-clientteihin saa skriptejä, joilla botin osuus kadotetaan näkyvistä: