12345678910111213141516171819202122232425262728293031 |
- import { connectUpstream } from './joystream/ws'
- import { ApiPromise } from '@polkadot/api'
- import { Header } from '@polkadot/types/interfaces'
- import Discord, { Intents } from 'discord.js'
- import {processBlock} from './joystream/discord'
- import { workingGroups } from './config'
- const discordBotToken = process.env.TOKEN || undefined // environment variable TOKEN must be set
- ;(async () => {
-
- const client = new Discord.Client({ intents: [Intents.FLAGS.GUILDS] });
- client.once("ready", async () => {
- console.log('Discord.js client ready');
- Object.values(workingGroups).forEach( async (mappedChannel: string) => {
- await client.channels.fetch(mappedChannel);
- })
- });
-
- await client.login(discordBotToken);
- console.log('Bot logged in successfully');
-
- connectUpstream().then( async (api: ApiPromise) => {
- api.rpc.chain.subscribeNewHeads(async (header: Header) => {
- const id = +header.number;
- await processBlock(api, client, id);
- })
- })
- })()
|