feat(fedi): add status query

This commit is contained in:
vulet 2020-07-04 01:05:39 +08:00
parent 38ca35bdd4
commit 6fe3c992e7
3 changed files with 28 additions and 3 deletions

19
commands/status.js Normal file
View file

@ -0,0 +1,19 @@
const axios = require('axios');
exports.runQuery = function (matrixClient, room, userInput, registrar) {
axios({
method: 'GET',
url: `${registrar.config.fediverse.domain}/api/v1/statuses/${userInput}`,
headers: { Authorization: `Bearer ${registrar.config.fediverse.token}` },
}).then((response) => {
matrixClient.sendHtmlNotice(room.roomId,
'',
`<b><a href="${registrar.config.fediverse.domain}/notice/${response.data.id}">${response.data.account.acct}</a>
<blockquote><i>${response.data.content}<br>
${response.data.media_attachments.map(media =>
`<a href="${media.remote_url}"><b>${media.description}</b></a>`)
.join('<br>')}
(id: ${response.data.id}</a>)
</blockquote>`);
});
};

View file

@ -131,6 +131,11 @@ let CreateClient = (token, user_id) => {
if (command === 'media') { if (command === 'media') {
registrar.media.runQuery(matrixClient, room, userInput, registrar); registrar.media.runQuery(matrixClient, room, userInput, registrar);
} }
if (command === 'status') {
registar.status.runQuery(matrixClient, room, userInput, registrar);
}
} }
}); });

View file

@ -19,5 +19,6 @@ module.exports = {
archive: require('./commands/archive.js'), archive: require('./commands/archive.js'),
nitter: require('./commands/nitter.js'), nitter: require('./commands/nitter.js'),
invidious: require('./commands/invidious.js'), invidious: require('./commands/invidious.js'),
media: require('./commands/media.js') media: require('./commands/media.js'),
status: require('./commands/status.js')
}; };