From 43470d72d1fa4caceceee6db65a816adfb7ef118 Mon Sep 17 00:00:00 2001 From: Adrian Perez de Castro Date: Mon, 4 Jul 2016 13:44:23 +0300 Subject: [PATCH] Add examples on how to send messages to rooms This adds two similar examples, one using matrix.client, and the other using matrix.api. --- README.md | 2 ++ examples/api-send-message.lua | 18 ++++++++++++++++++ examples/client-send-message.lua | 24 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 examples/api-send-message.lua create mode 100644 examples/client-send-message.lua diff --git a/README.md b/README.md index f9f5c35..42163b8 100644 --- a/README.md +++ b/README.md @@ -69,9 +69,11 @@ api:send_text(response.room_id, "Hello!") For the low-level `matrix.api`: * [examples/set-display-name.lua](./examples/set-display-name.lua) +* [examples/api-send-message.lua](./examples/api-send-message.lua) For the high-level `matrix.client`: * [examples/get-user-info.lua](./examples/get-user-info.lua) +* [examples/client-send-message.lua](./examples/client-send-message.lua) More examples can be found in the [examples](./examples) subdirectory. diff --git a/examples/api-send-message.lua b/examples/api-send-message.lua new file mode 100644 index 0000000..80e6023 --- /dev/null +++ b/examples/api-send-message.lua @@ -0,0 +1,18 @@ +#! /usr/bin/env lua +-- +-- api-send-message.lua +-- Copyright (C) 2016 Adrian Perez +-- +-- Distributed under terms of the MIT license. +-- + +if #arg ~= 4 then + io.stderr:write(string.format("Usage: %s \n", arg[0])) + os.exit(1) +end + +local api = require "matrix" .api(arg[1]) +local response = api:login("m.login.password", { user = arg[2], password = arg[3] }) +api.token = response.access_token +api:send_message(arg[4], io.read("*a")) +api:logout() diff --git a/examples/client-send-message.lua b/examples/client-send-message.lua new file mode 100644 index 0000000..97a4f81 --- /dev/null +++ b/examples/client-send-message.lua @@ -0,0 +1,24 @@ +#! /usr/bin/env lua +-- +-- send-message.lua +-- Copyright (C) 2016 Adrian Perez +-- +-- Distributed under terms of the MIT license. +-- + +if #arg ~= 4 then + io.stderr:write(string.format("Usage: %s \n", arg[0])) + os.exit(1) +end + +local client = require "matrix" .client(arg[1]) +client:login_with_password(arg[2], arg[3]) + +-- FIXME: This does not resolve room aliases, it works only with room IDs +local room = client.rooms[arg[4]] +if not room then + room = client:join_room(arg[4]) +end + +room:send_text(io.read("*a")) +client:logout()