Why Nostr? What is Njump?
2023-06-19 02:30:03

M. Dilger on Nostr: GOSSIP: I have basic spam filtering via script working on a development branch. I'll ...

GOSSIP:
I have basic spam filtering via script working on a development branch. I'll need to optimize it and make pages for editing your script. But basically you create a script like this:

fn filter() {
if content.contains("AirDrop") {
0
} else if content.contains("Ukraine") {
0
} else {
1
}
}

0 means deny, 1 means allow, and 2 means "mute the author". The data available to the script (as scoped variables) inlcudes 'id' (hex string) 'pubkey' (hex string) 'kind' (integer) and 'content' (string). I may pass in 'now' (integer) too. The scripting language is pretty extensive. If people come up with good filtering ideas and need more variables passed in, I can enhance it.

I'm having a hard time figuring out how to spam block messages from random new pubkeys with randomized content. What is the algorithm to stop that? Maybe I should make an entropy calculation function, if the entropy is high it is probably not a human readable language.
Author Public Key
npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c