matrix: Use labadoor-open
and labadoor-common::run_bin()
This commit is contained in:
parent
6ece32b40e
commit
74edd5bdac
2 changed files with 15 additions and 9 deletions
|
@ -13,24 +13,26 @@ use matrix_sdk::{
|
||||||
};
|
};
|
||||||
|
|
||||||
pub struct MatrixArgs {
|
pub struct MatrixArgs {
|
||||||
|
pub trigger: Binary,
|
||||||
pub username: String,
|
pub username: String,
|
||||||
pub password: String,
|
pub password: String,
|
||||||
pub device_id: Option<String>,
|
pub device_id: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn open(param: String) {
|
fn open(trigger: Vec<String>, param: String) -> BinaryResult {
|
||||||
use std::io::{self, Write};
|
let a = labadoor_common::OpenBinaryArgs {
|
||||||
use std::process::Command;
|
method: "matrix".to_string(),
|
||||||
let mut cmd = Command::new("/usr/bin/labadoor-wrapper");
|
identifier: param,
|
||||||
cmd.arg("matrix").arg(param);
|
resource_shortcut: 1,
|
||||||
let out = cmd.output().expect("Could not run command");
|
};
|
||||||
io::stdout().write_all(&out.stdout).unwrap();
|
labadoor_common::run_open(a, trigger)
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn on_room_message(
|
async fn on_room_message(
|
||||||
event: OriginalSyncMessageLikeEvent<RoomMessageEventContent>,
|
event: OriginalSyncMessageLikeEvent<RoomMessageEventContent>,
|
||||||
room: Room,
|
room: Room,
|
||||||
client: Client,
|
client: Client,
|
||||||
|
bin: Ctx<Binary>,
|
||||||
) {
|
) {
|
||||||
if let Room::Joined(room) = room {
|
if let Room::Joined(room) = room {
|
||||||
let msg_body = match event.content.msgtype {
|
let msg_body = match event.content.msgtype {
|
||||||
|
@ -42,8 +44,10 @@ async fn on_room_message(
|
||||||
}
|
}
|
||||||
|
|
||||||
if msg_body == "1" {
|
if msg_body == "1" {
|
||||||
open(event.sender.to_string());
|
let msg = match open(bin.clone(), event.sender.to_string()) {
|
||||||
let content = RoomMessageEventContent::text_plain("Open sesame!");
|
Ok(msg) | Err(msg) => msg,
|
||||||
|
};
|
||||||
|
let content = RoomMessageEventContent::text_plain(msg);
|
||||||
room.send(content, None).await.unwrap();
|
room.send(content, None).await.unwrap();
|
||||||
}
|
}
|
||||||
if msg_body == "ping" {
|
if msg_body == "ping" {
|
||||||
|
@ -91,5 +95,6 @@ pub async fn matrix(args: MatrixArgs) {
|
||||||
client.sync_once(SyncSettings::default()).await.unwrap();
|
client.sync_once(SyncSettings::default()).await.unwrap();
|
||||||
client.add_event_handler(on_room_message);
|
client.add_event_handler(on_room_message);
|
||||||
client.add_event_handler(on_room_invite);
|
client.add_event_handler(on_room_invite);
|
||||||
|
client.add_event_handler_context(args.trigger);
|
||||||
client.sync(SyncSettings::default()).await.unwrap();
|
client.sync(SyncSettings::default()).await.unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ trigger = [ "/usr/bin/labadoor", "open" ]
|
||||||
token = ""
|
token = ""
|
||||||
|
|
||||||
[matrix]
|
[matrix]
|
||||||
|
trigger = [ "/usr/bin/labadoor", "open" ]
|
||||||
username = ""
|
username = ""
|
||||||
password = ""
|
password = ""
|
||||||
device_id = ""
|
device_id = ""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue