phoebe/src/discord.rs

33 lines
938 B
Rust

use serenity::{async_trait, model::prelude::*, prelude::*};
use tracing::info;
use crate::{ast, MessageReference};
impl From<&Message> for MessageReference {
fn from(message: &Message) -> Self {
Self::Discord(message.channel_id.0, message.id.0)
}
}
// TODO: Some way to emit messages for matrix,
// and some way to receive messages from matrix.
struct DiscordSide {}
#[async_trait]
impl EventHandler for DiscordSide {
async fn ready(&self, _ctx: Context, _ready: Ready) {
info!("Discord side: Ready");
// TODO
}
async fn message(&self, ctx: Context, message: Message) {
let _message_ref = MessageReference::from(&message);
// TODO: Store this message ref & associations in the DB
let content = discord_message_format::parse(&message.content);
let content = ast::convert_discord(&content);
// TODO: Broadcast the message to other platforms
}
}