-- Version 0.0.1 -- Author AliasAlreadyTaken -- License MIT -- Changelog local mod_start_time = core.get_us_time() core.log("action", "[MOD] yl_matterbridge loading") yl_matterbridge = {} yl_matterbridge.error = {} yl_matterbridge.modstorage = core.get_mod_storage() yl_matterbridge.modpath = core.get_modpath("yl_matterbridge") .. DIR_DELIM yl_matterbridge.worldpath = core.get_worldpath() .. DIR_DELIM yl_matterbridge.information = {} yl_matterbridge.information.version = "0.0.1" yl_matterbridge.information.author = "AliasAlreadyTaken" yl_matterbridge.information.license = "MIT" yl_matterbridge.information.name = "yl_matterbridge" yl_matterbridge.information.additional = "Additional information" dofile(yl_matterbridge.modpath .. "config.lua") local http = minetest.request_http_api() function send(user_name, message_text) local url = "http://" .. yl_matterbridge.address .. ":" .. yl_matterbridge.port .. "/api/message" local post_headers = {"Content-Type: application/json"} local timeout = 10 local data = { text = message_text, username = user_name, gateway = yl_matterbridge.gateway } http.fetch( { url = url, extra_headers = post_headers, timeout = timeout, post_data = minetest.write_json(data) }, function(result) if result.succeeded then local data = minetest.parse_json(result.data) core.log("action", "[MOD] yl_matterbridge : Posted " .. dump(data)) else minetest.log("error", "[yl_matterbridge] " .. dump(result)) return false end end ) return true end minetest.register_on_chat_message( function(user_name, message_text) send(user_name, message_text) end ) local gs = function(dtime) local url = "http://" .. yl_matterbridge.address .. ":" .. yl_matterbridge.port .. "/api/messages" local timeout = 0 http.fetch( { url = url, timeout = timeout }, function(result) if result.succeeded then local data = minetest.parse_json(result.data) core.log("action", "[MOD] yl_matterbridge : Posted " .. dump(data)) for _,v in ipairs(data) do if v.username and v.text then core.chat_send_all("<"..v.username.."@irc> "..v.text) end end else minetest.log("error", "[yl_matterbridge] " .. dump(result)) return false end end ) end minetest.register_globalstep(gs) local mod_end_time = (core.get_us_time() - mod_start_time) / 1000000 core.log("action", "[MOD] yl_matterbridge loaded in [" .. mod_end_time .. "s]")