How the recently joined function works

From PluginWiki

Jump to: navigation, search

First, you need to understand what a "hash" is. Basically a hash is a way of taking something (let's say an email address) and reducing it to something simpler. An example of a hash, though not a good one, would be to remove every second character. The key point about a hash is that it's one-way - you can't reconstruct the original email address from its hash value, because you've lost some information. Another consequence of this is that two different email addresses might have the same hash value.

When you view pending members, for each pending member the plugin calculates the hash of their Yahoo ID and email address and then checks to see whether either hash is in the database. The periodic checking looks for members of your group who've joined within the last 30 days, and looks to see if they're in the database for groups other than yours and (depending on your configuration) any crossposting groups you have configured (because they're likely to be local and therefore it's valid for people to join those groups as well as yours).

If they're not, it adds a record for each new pending member to that database, containing:

  • the "hash" of their Yahoo ID (but not the ID itself) and email address (but not the address itself)
  • the group they have joined
  • the date they joined

If they are, then that means that that someone with that hash value joined a group recently. It might not be the same person - because two IDs/emails may have the same hash value. It just means that it's quite likely.

These entries are kept for no more than 30 days - the database tidies them up. Spammers tend to join lots of groups within a day or two of each other, so there's no need to keep it longer.

The effect of this is that we have a list of the hash values of people who have recently applied to or joined groups - but only on groups where the moderators are also using this function.

Personal tools