0.1.2 • Published 10 months ago

activityspam-filter v0.1.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
10 months ago

ActivitySpam Filter

Extraction and modernization of the filters in activityspam + a minimal databank reimplementation

npm version npm downloads js-semistandard-style Module type: ESM Types in JS Follow @voxpelli@mastodon.social

Usage

Simple

import { SpamFilter, SimpleDatabankRedis } from 'activityspam-filter';

// Configured like ioredis, so by default it will connect to localhost:6379
const redisDb = new SimpleDatabankRedis();
const filter = new SpamFilter(redisDb);

await filter.train('spam', foo);
await filter.train('ham', bar);
const { isSpam } = await filter.test(abc);

SpamFilter(db, [tokenizerOptions])

  • db – a SimpleDatabank compatible class such as the supplied SimpleDatabankRedis

SpamFilter API

train(category, data) => Promise<SpamFilterTrainingResult>

  • category – should be either spam or ham depending on what kind of content to train it with
  • data – should be an object or an array of the data that should be tokenized and trained on

Returns an object with properties:

  • cat – the supplied category
  • object – a stringified representation of the data that's been supplied
  • date – the ISO date this training data was created
  • elapsed – the amount of milliseconds the training took

test(data) => Promise<SpamFilterDecision>

  • data – should be an object or an array of the data that should be tokenized and tested

Returns an object with properties:

  • probability – a number
  • isSpam – a boolean
  • bestKeys – a list of the best tokens
  • elapsed – the amount of milliseconds the check took

SimpleDatabankRedis(ioRedisConfig)

Configured like ioredis and provides a SimpleDatabank compatible implementation of that.

Types

  • SimpleDatabank – the structure of a databank style implementation

See also

0.1.2

10 months ago

0.1.1

10 months ago

0.1.0

10 months ago