Skip to content

scuttlebot plugin for indexing all link mentions of messages

Notifications You must be signed in to change notification settings

ssbc/ssb-backlinks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssb-backlinks

scuttlebot plugin for indexing all link mentions of messages (including private for the current identity).

Walks all values of a message searching for keys recognized as feed, channel, message or blobs. Provides an ssb-query style interface.

Example usage

const pull = require('pull-stream')
function createBacklinkStream (id) {
  var filterQuery = {
    $filter: {
      dest: id
    }
  }

  return sbot.backlinks.read({
    query: [filterQuery],
    index: 'DTA', // use asserted timestamps
    live: true
  })
}

const msgKey = '%+zYA9WF9cY+HqGLzqS1H7FdUdK45tUmTqiZ85p+RNOQ=.sha256'
var relatedMessages = []

pull(
  createBacklinkStream(msgKey),
  pull.filter(msg => !msg.sync),
    // note the 'live' style streams emit { sync: true } when they're up to date!
  pull.drain(msg => {
    relatedMessages.push(msg)
  })
)

Example usage as a Secret-Stack Plugin

ssb-backlinks can also be used as a secret-stack plugin directly.

var SecretStack = require('secret-stack')
var config = require('./some-config-file')

var {pull, drain} = require('pull-stream')

// you'd need many more plugins to make this useful
// demo purposes only
var create = SecretStack({
  appKey: appKey //32 random bytes
})
.use(require('ssb-db'))
.use(require('ssb-backlinks'))
.use(function (sbot, config) {
  pull(
    sbot.backlinks.read({
      query: [{$filter: {dest: "%dfadf..."}}], // some message hash
      index: 'DTA',
      live: true
    }),
    drain(console.log)
  )
)}

var server = create(config) // start application

Versions

Please note that 0.7.0 requires scuttlebot 11.3

License

MIT

About

scuttlebot plugin for indexing all link mentions of messages

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published