clix/sendfilecontent.lua

Sat, 24 Jun 2023 09:59:07 +0200

author
Kim Alvefur <zash@zash.se>
date
Sat, 24 Jun 2023 09:59:07 +0200
changeset 170
0d561f921c13
parent 164
fafdcde2e2eb
permissions
-rw-r--r--

clix.adhoc: Move stanza to dataform converter here

Removes the need for verse to have a custom util.dataforms fork only for
this

local verse = require "verse";
return function (opts, arg)
	if opts.short_help then
		print("Send file content");
		return;
	end
	
	local function on_connect(conn)
		local function send_message(text)
			conn:send(verse.message({ to = opts.to,
				type = opts.type or (opts.chatroom and "groupchat") or "chat" })
				:body(text));
		end
		if opts.file then
			local f, err = io.open(opts.file, "rb")
			if not f then
				conn:error("Unable to open file: %s", err);
			else
				local content = f:read("*all")
				f:close()
				if content:len() < 2000 then
					send_message(content);
				else
					conn:error("File size too large. Cannot send file");
				end
			end
		end
		conn:close();
	end
	clix_connect(opts, on_connect);
end

mercurial