git ssb

7+

dinoworm ๐Ÿ› / patchcore



Tree: 49133faa00025b793d47d7d54e7dcfd6691073ad

Files: 49133faa00025b793d47d7d54e7dcfd6691073ad / message / obs / backlinks.js

910 bytesRaw
1var nest = require('depnest')
2var MutantSet = require('mutant/set')
3
4exports.needs = nest({
5 'message.sync.unbox': 'first'
6})
7
8exports.gives = nest({
9 'sbot.hook.feed': true,
10 'message.obs.backlinks': true
11})
12
13exports.create = function (api) {
14 var mentionedLookup = {}
15 return nest({
16 'sbot.hook.feed': (msg) => {
17 if (msg.value && typeof msg.value.content === 'string') {
18 msg = api.message.sync.unbox(msg)
19 }
20 if (msg && msg.value && msg.value.content && Array.isArray(msg.value.content.mentions)) {
21 msg.value.content.mentions.forEach(mention => {
22 var link = typeof mention === 'object' ? mention.link : mention
23 get(link).add(msg.key)
24 })
25 }
26 },
27 'message.obs.backlinks': (id) => get(id)
28 })
29
30 function get (id) {
31 if (!mentionedLookup[id]) {
32 mentionedLookup[id] = MutantSet()
33 }
34 return mentionedLookup[id]
35 }
36}
37

Built with git-ssb-web