fix: urls in posts and announces

This commit is contained in:
Julian Lam
2024-02-07 14:29:47 -05:00
parent a61e7fe79b
commit 4fb6574cf7
2 changed files with 11 additions and 3 deletions

View File

@@ -25,6 +25,7 @@ module.exports = function (utils, Benchpress, relative_path) {
userAgentIcons, userAgentIcons,
buildAvatar, buildAvatar,
increment, increment,
generatePostUrl,
generateRepliedTo, generateRepliedTo,
generateWrote, generateWrote,
isoTimeToLocaleString, isoTimeToLocaleString,
@@ -329,18 +330,24 @@ module.exports = function (utils, Benchpress, relative_path) {
return String(value + parseInt(inc, 10)); return String(value + parseInt(inc, 10));
} }
function generatePostUrl(post, property = 'pid') {
return utils.isNumber(post[property]) ? `${relative_path}/post/${post[property]}` : post[property];
}
function generateRepliedTo(post, timeagoCutoff) { function generateRepliedTo(post, timeagoCutoff) {
const displayname = post.parent && post.parent.displayname ? const displayname = post.parent && post.parent.displayname ?
post.parent.displayname : '[[global:guest]]'; post.parent.displayname : '[[global:guest]]';
const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs)); const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs));
const langSuffix = isBeforeCutoff ? 'on' : 'ago'; const langSuffix = isBeforeCutoff ? 'on' : 'ago';
return `[[topic:replied-to-user-${langSuffix}, ${post.toPid}, ${relative_path}/post/${post.toPid}, ${displayname}, ${relative_path}/post/${post.pid}, ${post.timestampISO}]]`; const url = generatePostUrl(post, 'toPid');
return `[[topic:replied-to-user-${langSuffix}, ${post.toPid}, ${url}, ${displayname}, ${relative_path}/post/${post.pid}, ${post.timestampISO}]]`;
} }
function generateWrote(post, timeagoCutoff) { function generateWrote(post, timeagoCutoff) {
const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs)); const isBeforeCutoff = post.timestamp < (Date.now() - (timeagoCutoff * oneDayInMs));
const langSuffix = isBeforeCutoff ? 'on' : 'ago'; const langSuffix = isBeforeCutoff ? 'on' : 'ago';
return `[[topic:wrote-${langSuffix}, ${relative_path}/post/${post.pid}, ${post.timestampISO}]]`; const url = generatePostUrl(post);
return `[[topic:wrote-${langSuffix}, ${url}, ${post.timestampISO}]]`;
} }
function isoTimeToLocaleString(isoTime, locale = 'en-GB') { function isoTimeToLocaleString(isoTime, locale = 'en-GB') {

View File

@@ -8,6 +8,7 @@ const user = require('../user');
const posts = require('../posts'); const posts = require('../posts');
const topics = require('../topics'); const topics = require('../topics');
const categories = require('../categories'); const categories = require('../categories');
const utils = require('../utils');
const activitypub = require('.'); const activitypub = require('.');
const helpers = require('./helpers'); const helpers = require('./helpers');
@@ -115,7 +116,7 @@ inbox.announce = async (req) => {
await topics.events.log(tid, { await topics.events.log(tid, {
type: 'announce', type: 'announce',
uid: actor, uid: actor,
href: `/post/${pid}`, href: utils.isNumber(pid) ? `/post/${pid}` : pid,
pid, pid,
timestamp, timestamp,
}); });