finally a working implementation of Discord sender
This commit is contained in:
parent
7581521b61
commit
bdee07143b
@ -31,18 +31,19 @@ impl DiscordPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub struct DiscordMessageSender {
|
pub struct DiscordMessageSender {
|
||||||
|
discord: Arc<Discord>,
|
||||||
channel_id: discord::model::ChannelId
|
channel_id: discord::model::ChannelId
|
||||||
}
|
}
|
||||||
|
|
||||||
impl MessageSender for DiscordMessageSender {
|
impl MessageSender for DiscordMessageSender {
|
||||||
fn send_message (&self, message: &str) {
|
fn send_message (&self, message: &str) {
|
||||||
println!("send to {:?}: {:?}", self.channel_id, message);
|
self.discord.send_message(&self.channel_id, message, "", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Plugin for DiscordPlugin {
|
impl Plugin for DiscordPlugin {
|
||||||
fn produce_events<'a>(&'a self, sender: Sender<event::Event>) {
|
fn produce_events<'a>(&'a self, sender: Sender<event::Event>) {
|
||||||
let discord = Discord::from_bot_token(&self.token[..]).expect("Login failed");
|
let discord = Arc::new(Discord::from_bot_token(&self.token[..]).expect("Login failed"));
|
||||||
let (mut connection, _) = discord.connect().expect("Connection failed");
|
let (mut connection, _) = discord.connect().expect("Connection failed");
|
||||||
loop {
|
loop {
|
||||||
match connection.recv_event() {
|
match connection.recv_event() {
|
||||||
@ -50,6 +51,7 @@ impl Plugin for DiscordPlugin {
|
|||||||
let author = User {
|
let author = User {
|
||||||
name: message.author.name.clone(),
|
name: message.author.name.clone(),
|
||||||
sender: Arc::new(DiscordMessageSender {
|
sender: Arc::new(DiscordMessageSender {
|
||||||
|
discord: discord.clone(),
|
||||||
channel_id: message.channel_id
|
channel_id: message.channel_id
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
@ -59,6 +61,7 @@ impl Plugin for DiscordPlugin {
|
|||||||
description: String::from(""),
|
description: String::from(""),
|
||||||
topic: String::from(""),
|
topic: String::from(""),
|
||||||
sender: Arc::new(DiscordMessageSender {
|
sender: Arc::new(DiscordMessageSender {
|
||||||
|
discord: discord.clone(),
|
||||||
channel_id: message.channel_id
|
channel_id: message.channel_id
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
@ -9,7 +9,7 @@ type = "hello"
|
|||||||
name = "Fred"
|
name = "Fred"
|
||||||
|
|
||||||
[discord]
|
[discord]
|
||||||
channel = "#testchannelpleaseignore"
|
token = "MjgwNTYxNjUyOTM4ODMzOTIw.C4QQmw.0VO9PBBolmMyr4rreAL6VSkUut8"
|
||||||
|
|
||||||
[stdin]
|
[stdin]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user