feat(fediverse): media posting for e2ee rooms [kakashi]

feat(fediverse): direct messaging and follower-only posting [kakashi]
feat(config): emoji customization available in config [kakashi]
fix(cmd): unroll by text [kakashi]
refactor(reacts): timeline minimum +4 events => timeline minimum +1 events [kakashi]
chore(deps): upgrade matrix-js-sdk, olm, qs
chore(package): bump version
This commit is contained in:
vulet 2023-08-23 15:25:48 +08:00
parent 5924009154
commit 8e2ce18f26
11 changed files with 333 additions and 476 deletions

View file

@ -8,7 +8,7 @@ const sendEventWithMeta = async (roomId, content, meta) => {
});
};
const thread = async (roomId, event, content, meta) => {
const thread = async (roomId, eventId, content, meta) => {
await matrixClient.sendEvent(roomId, 'm.room.message', {
body: content.replace(/<[^<]+?>/g, ''),
msgtype: 'm.notice',
@ -17,7 +17,7 @@ const thread = async (roomId, event, content, meta) => {
format: 'org.matrix.custom.html',
'm.relates_to': {
rel_type: 'm.thread',
event_id: event['event']['content']['m.relates_to']['event_id'],
event_id: eventId,
},
})
};
@ -78,6 +78,18 @@ const notifyFormatter = (res, roomId) => {
</blockquote>`;
sendEventWithMeta(roomId, content, meta);
break;
case 'pleroma:emoji_reaction':
fediverse.auth.me !== res.account.url ? res.meta = 'react' : res.meta = 'redact';
meta = `${res.meta} ${res.status.id}`;
content = `${userDetails}
<font color="#03b381"><b>has <a href="${config.fediverse.domain}/notice/${res.status.id}">reacted</a> with
${ res.emoji_url ? `<a href="${res.emoji_url}">${res.emoji}</a>` : `<span>${res.emoji}</span>` }
to your post:</font><blockquote><i>${res.status.content}</i><br>
${hasAttachment(res)}
<br>(id: ${res.status.id}) ${registrar.post.visibilityEmoji(res.status.visibility)}
</blockquote>`;
sendEventWithMeta(roomId, content, meta);
break;
default:
return console.log('Unknown notification type.');
}