export number of replies, sort replies newest first

This commit is contained in:
antares 2024-11-22 07:09:42 -08:00
parent 50dc454443
commit 173e4f5947

View File

@ -44,28 +44,33 @@ end
function write_comments(pleroma_posts, instance)
local template = [[
<h4 class="pleroma-comment">
<a href="$host$/notice/$pid$">$datetime$</a>
</h4>
<a href="$host$/users/$uid$" class="pleroma-user">$alias$</a>
<blockquote>
$text$
</blockquote>
<article class="pleroma-comment" id="pleroma-comment$i$">
<h3>
#$i$ <a href="$host$/notice/$pid$">$datetime$</a>
</h3>
<p>$alias$ <a href="$host$/users/$uid$">@$handle$</a></p>
<blockquote>
$text$
</blockquote>
</article>
]]
local comments = {}
local replies = pleroma_posts-- ["descendants"]
for _, post in ipairs(replies) do
for i, post in ipairs(replies) do
local pid = post["id"]
local datetime = get_short_date(post["created_at"])
local uid = post["account"]["id"]
local alias = post["account"]["acct"]
local alias = post["account"]["display_name"]
local handle = post["account"]["acct"]
local text = post["pleroma"]["content"]["text/plain"]
local interpolated = template:gsub("%$(%w+)%$", {
i= #replies - i + 1,
host=instance,
pid=pid,
datetime=datetime,
uid = uid,
alias = alias,
handle = handle,
alias=alias,
text = text
})
-- print(interpolated)
@ -92,14 +97,18 @@ function Meta(meta)
return -- abort
end
local all_replies = {}
local newelem = {}
local host = ""
for _, v in pairs(elem) do
local str = pandoc.utils.stringify(v)
print(str)
local tokens = tokenizeString(str, '/')
-- 1 = protocol, 2 = host ...
-- https://host.tld/notice/12345
local tokens = tokenizeString(str, '/')
local id = tokens[#tokens]
table.insert(newelem,
{link = str, id = id}
)
host = tokens[2]
local url = "https://" .. host .. "/api/v1/statuses/" .. id .. "/context"
local got = get(url)
@ -113,10 +122,13 @@ function Meta(meta)
function(a, b)
local ta = get_epoch_time(a["created_at"])
local tb = get_epoch_time(b["created_at"])
return ta < tb
return ta > tb
end
)
meta["comments"] = write_comments(all_replies, "https://" .. host)
local c = write_comments(all_replies, "https://" .. host)
meta["pleroma-comments"] = c
meta["pleroma-comments-count"] = #c
meta["pleroma"] = newelem
return meta
end