Software / code / prosody-modules
File
mod_pubsub_forgejo/format.lib.lua @ 6325:6ea80b73d8f2
mod_http_oauth2: Only require redirect URIs when using grant types that need it
In the Device flow, no redirect URI is used because the client instead
receives responses by polling. It is therefore unnecessary to enforce a
requirement that these include redirect URI(s).
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Thu, 03 Jul 2025 15:42:42 +0200 |
| parent | 6203:131b8bfbefb4 |
line wrap: on
line source
local st = require "util.stanza"; local datetime = require "util.datetime"; local function shorten(x) return string.sub(x, 1, -32) end local function firstline(x) return x:match("^[^\r\n]*") end local function branch(x) return string.sub(x, 12) end local function tag(x) return string.sub(x, 11) end local function noop(x) return x end local filters = { shorten = shorten, firstline = firstline, branch = branch, tag = tag } local render = require"util.interpolation".new("%b{}", noop, filters); local function get_item(data, templates) local function render_tpl(name) return render(templates[name], {data = data}) end local now = datetime.datetime() local id = render(templates["id"], {data = data}) -- LuaFormatter off return st.stanza("item", {id = id, xmlns = "http://jabber.org/protocol/pubsub"}) :tag("entry", {xmlns = "http://www.w3.org/2005/Atom"}) :tag("id"):text(id):up() :tag("title"):text(render_tpl("title")):up() :tag("content", {type = "text"}):text(render_tpl("content")):up() :tag("link", {rel = "alternate", href = render_tpl("link")}):up() :tag("published"):text(now):up() :tag("updated"):text(now):up() :tag("author") :tag("name") :text(data.sender.username):up() :tag("email"):text(data.sender.email) -- LuaFormatter on end return get_item