Adrian Perez de Castro 30eec81619 Update client-send-message.lua to not do an initial sync
The initial sync is not needed, provided that the user has to supply anyway
the room ID or alias in the command line of the script.
2016-07-04 18:34:23 +03:00
2016-07-03 22:55:28 +03:00
2016-07-03 22:25:31 +03:00

Matrix Client-Server API for Lua

Build Status Coverage Status

This is closely modelled after the official matrix-python-sdk.

Requirements

  • Lua 5.1, 5.2, 5.3, or LuaJIT — development and testing is only being done with 5.3, YMMV!
  • The cjson module.
  • One of the supported HTTP client libraries:

If you use LuaRocks, you can get the dependencies installed using the following commands:

luarocks install --server=http://luarocks.org/dev http
luarocks install lua-cjson

Self-promotion bit: If you use the Z shell and want something like virtualenv for Lua, please do try RockZ.

Usage

The library provides two levels of abstraction. The low-level layer wraps the raw HTTP API. The high-level layer wraps the low-level layer and provides an object model to perform actions on.

High-level matrix.client interface:

local client = require("matrix").client("http://localhost:8008")
local token = client:register_with_password("jdoe", "sup3rsecr1t")
local room = client:create_room("my_room_alias")
room:send_text("Hello!")

Low-level matrix.api interface:

local matrix = require("matrix")
local api = matrix.api("http://localhost:8080")
local response = api:register("m.login.password",
  { user = "jdoe", password = "sup3rsecr1t" })
api.token = response.token
handle_events(api:sync())
response = api:create_room({ alias = "my_room_alias" })
api:send_text(response.room_id, "Hello!")

More Examples

For the low-level matrix.api:

For the high-level matrix.client:

More examples can be found in the examples subdirectory.

Description
Fork of diggers-mt/lua-matrix with some additional features
Readme 132 KiB
Languages
Lua 100%