Tue, 02 Jul 2013 17:04:14 +0200
clix.publish_atom: Why were there an argument given to :up() ???
local new_uuid = require "util.uuid".generate; local datetime = require "util.datetime".datetime; local xmlns_atom = "http://www.w3.org/2005/Atom"; local xmlns_activitystreams = "http://activitystrea.ms/spec/1.0/"; local activitystreams_schema_base = "http://activitystrea.ms/schema/1.0/"; return function (opts, arg) if opts.short_help then print("Publish an Atom entry to a pubsub node"); return; end if opts.help or not opts.node then print("clix publish_atom \\"); print("","--service=pubsub.shakespeare.lit \\"); print("","--node=princely_musings \\"); print("","--id=123 \\"); print("","--author=Hamlet \\"); print("","--title=Soliloquy \\"); print("","--summary=\"To be, or not to be: that is the question\""); return 0; end local function on_connect(conn) -- Required: id, title, updated, author (which must have a name) local entry_id = opts.id or new_uuid(); local atom_entry = verse.stanza("entry", { xmlns = xmlns_atom}) :tag("id"):text(entry_id):up() :tag("title"):text(opts.title or ""):up() :tag("updated"):text(opts.updated or datetime()):up(); atom_entry:tag("author"):tag("name"):text(opts.author or os.getenv("USER") or "Unknown author"):up(); atom_entry:up(); atom_entry:tag("source") :tag("id"):text(opts.node):up() :tag("link", { rel = "self", href = opts.node }):up() :up(); if opts.summary then atom_entry:tag("summary"):text(opts.summary):up(); end if opts.content then atom_entry:tag("content"):text(opts.content):up(); end for opt, optval in pairs(opts) do if opt:match"^as_" then atom_entry:tag(opt:sub(4):gsub("_", "-"), { xmlns = xmlns_activitystreams } ) :text(activitystreams_schema_base..optval):up(); end end conn.pubsub(opts.service, opts.node):publish(entry_id, nil, atom_entry , function(ok) -- TODO Report success? conn:close(); end); --conn:send(verse.message({ to = opts.to, type = "chat" }) :body(text)); end clix_connect(opts, on_connect, {"pubsub"}); end