Telegram-botti urheilusuoritusten kirjaamiseen
Megaskababot käyttää javascript-runtimenaan Denoa ja Telegram-APIn kanssa juttelemiseen Grammya. Tiedot tallennetaan Postgres-tietokantaan käyttäen Prismaa.
Keskustelujen tila muistetaan Grammyn Conversations-lisäosan avulla. Näin monivaiheiset keskusteluflow't voidaan säilyttää esim. botin uudelleenkäynnistyksen yli.
- Kloonaa repositorio
- Luo tiedosto
.envvalmiin.env.template-tiedoston pohjalta. - Päivitä uuteen
.enviin ainakinBOT_TOKEN. Voit luoda botin seuraten Telegramin virallisia ohjeita - Käynnistä Docker
- Käynnistä devaustietokanta ajamalla projektin juuressa komento
docker compose upTAI avaa projekti dev kontissa VSCodessa - Luo migraatiot ja Prisma clientin tyypit komennolla
deno task sync-prisma - Käynnistä botti komennolla
deno task dev
Megaskababot on parasta deplata tuotantoympäristöön webhook-tilassa.
Devausympäristössä se pyörii oletuksena long polling -tilassa. Jos
ympäristömuuttuja NODE_ENVin arvo on production, käytetään automaattisesti
webhook-tilaa.
Botti tarvitsee seuraavat ympäristömuuttujat toimiakseen:
- BOT_TOKEN: Telegram-botin API-token (esim.
1234567890:QqWwEeRrTtYyUuIiOoPpÅåAaSsDdFfGgHhJ) - ADMIN_PASSWORD: Admin-komentojen ja analytiikkaendpointtien salasana. (esim.
prodekonsuksethajos). OLETUKSENAadmin! - WEBHOOK_URL: Webhook-moodissa domain, josta botin saa kiinni. (esim.
example.com) - NODE_ENV:
developmenttaiproduction - DATABASE_URL: Postgres-tietokannan URL.
(esim.
DATABASE_URL=postgres://dev-user:dev-password@db:5432/dev-megaskababot)
Tuotantotietokannan migraatiot saa luotua komennolla
deno run -A npm:prisma migrate deploy. Tällöin .envin DATABASE_URL pitää
kohdistua tuotantokantaan.