Matrix-Discord

Linux.fista
Versio hetkellä 17. maaliskuuta 2024 kello 14.53 – tehnyt 193.209.168.1 (keskustelu) (→‎Yksittäisen kanavan siltaus)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

Näin siltaat olemassaolevan Discord-kanavan olemassaolevalle Matrix-kanavalle. Matrix-kanava ei saa olla päästä päähän salattu.

t2bot.io -palvelun avulla

T2bot.io -palvelu tarjoaa kaikille avoimen Discord-sillan jota tässäkin käytetään esimerkkinä. Lisätietoja täältä. Silta ajaa matrix-appservice-discord-siltatoteutusta. Muitakin Discord-siltatoteutuksia on, kts alta.

Tarvittavat tiedot

Discord-puoli

  • Lisää siltabotti kiltaan ja kanavalle linkin avulla. Anna sen pyytämät oikeudet.

Matrix-puoli

  • Kutsu siltabotti kanavalle: /invite @_discord_bot:t2bot.io
  • Sano kanavalla !discord bridge <serverid> <channelid>

Tässä vaiheessa silta kysyy discord-kanavan ylläpitäjältä vahvistuksen. Kun vahvistus on annettu, silta nousee pystyyn.

Kanavan päivitys

Discordsilta EI osaa seurata room upgradea. Eli sano !discord unbridge, potki botti pois Matrix-kanavalta, tee room upgrade ja siltaa uusi kanava uudestaan. (TODO: Varmista oliko näin?)

Mautrix-discord

Sillalle on suht hyvät ohjeet täällä.

Kokonaisen kanavan siltaaminen (relaybot-toiminto)

Lue ohjeet "relaying with webhooks"-kohdasta. Suosittelen tekemään oman Matrix-tunnuksen välitysbotille, jolla siltausta hallitaan. Kutsutaan tässä ohjeessa sitä nimellä relaybot.

Valmistelut

  • Ota silta käyttöön. Sillan komentobottia kutsutaan tässä ohjeessa discordbot-nimellä.
  • Tee discordbotti ohjeiden mukaan ja kutsu se Discord-kiltaan. Anna ohjeiden neuvomat oikeudet.
  • Autentikoidu webhookeilla discordiin (tee relaybot-tunnuksella)

Yksittäisen kanavan siltaus

  • Jos kanavalla on jo vanha Discord-silta, aja se alas (tai tulee karmea ikikiersiö)
  • Liity relaybotilla kanavalle, anna relaybotille Moderator-oikeudet
  • Kutsu discordbot kanavalle (ei vaadi oikeuksia)
  • Selvitä discord-kanavan id. Saa selville discordin käyttöliittymästä jos ei muuten.
  • Sano relaybottina !discord bridge <kanavaid>
  • Discordin pitäisi nyt siltautua
  • Määrittele relaybot-toiminto kanavalle: Sano relaybottina !discord set-relay --create Matrix
  • Voit laskea relaybotin oikeustasoa alemmaksi jos haluat
  • Voit myös poistua relaybotilla kanavalta, mutta (tällä hetkellä) se kutsutaan sinne takaisin kun silta käynnistetään uudestaan.

mx-puppet-discord (Vanhentunut silta jota ei kehitetä, älä käytä)

mx-puppet-discord on monipuolisempi mutta samalla haastavampi siltatoteutus. Siitä ei ole tiedossa julkisia instansseja, joten joudut asentamaan sen omalle kotipalvelimellesi tai käyttämään palvelinta jossa se on (esim hacklab.fi).

Osa sillan dokumentaatiosta on sillan käyttämän kirjaston github-repossa ettei olisi liian helppoa.

Sillan asennus ja konfigurointi

Asenna silta.

Konfiguraatiotiedostossa huolehdi, että relay-toiminto on sallittu kaikille. Muuten silta asettaa muille kuin sallituille käyttäjille PL -1 jolloin he eivät voi puhua.

Botin teko discordiin

Seuraa tätä ohjetta

Lisää botti Discord-kiltaan kutsulinkillä. Kutsulinkin formaatti on suunnilleen:

https://discordapp.com/api/oauth2/authorize?client_id=63xxxxxxxxxxx907&scope=bot&permissions=607251456

Sillan yhdistäminen bottiin

Siltabotin mxid on tyyliin @_discordpuppet_bot:yourserver.com. Juttele sille.

Siltabottiin voi liittää useita Discord-botteja tai Discord-käyttäjiä link-komennolla, jolloin niille saadaan puppet id-numero jota käytetään jatkossa monessa paikkaa.

Selvitä botin token Discordista. Anna komento link bot NjM0NDYxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBIQ0To

Silta vastaa "Created new link with ID 3" (ID-numero on pupped id)

Botin säätö

Katso ensin lista komennoista sanomalla: help

Disabloi auto invite: setautoinvite 3 0

Aseta sillatut kanavat julkiseksi: setispublic 3 true

Aseta silta relayksi: settype 3 relay

Listaa killat joissa botti on: listguilds 3

Siltaa kilta: bridgeguild 3 872xxxxxxxxx791

Kanavien siltaus

Ennen kanavien siltausta täytyy sillata kilta.

Jos haluat sillata koko killan uusille matrix-kanaville, se onnistuu kerralla: joinentireguild 3 87xxxxxxxxx91

Muuten siltaa käsipelillä kilta (ei siltaa yksittäisiä kanavia): bridgeguild 3 87xxxxxxxxx91 - tämän jälkeen voit sillata yksittäisiä kanavia.

Jos haluat sillata yksittäisen kanavan joka on jo matrixissa, kutsu matrix-botti kanavalle ja anna komento !discord bridge 8725xxxxxxx913 Kanavan numeron saa kaivettua discordissa webbiselaimella kuten toisen sillan tapauksessa.

Huoneen päivitys

Tämä Discord-silta EI osaa ainakaan toistaisemsi seurata huonepäivityksiä (room upgrade). Jos päivität huoneen, tee seuraavasti:

  • Botin komentohuoneessa epäsiltaa k.o huone: unbridge 3 87xxxxxxxxx91
  • Päivitä huone (ei haittaa jos se on jo päivitetty)
  • Kutsu siltabotti uuteen huoneeseen
  • Siltaa uudestaan, huoneessa: !discord bridge 3 87xxxxxxxxx91

Numero 3 on esimerkissä puppet id ja 87xxxxxxxxx91 kanavan id discordista.

Yleisiä ongelmia

Discordin puolelle viestit tulevat "laatikoissa"

  • Varmista että Discord-admin antoi botin vaatimat oikeudet
  • Varmista, että killassa ei ole toista siltabottia, jolla olisi samoja oikeuksia (ilmeisesti vain yksi voi lähettää viestejä käyttäjien puolesta)
  • Discord voi vaatia, että botin omistajalla on 2fa käytössä. Eli vaativat puhelinnumeron antamisen ja google authenticatorin käytön. Jos sillan lokiin tulee "warn: Missing webhook permissions DiscordAPIError: Two factor is required for this operation", täytyy tämä tehdä.