Matching is done based on field1 OR field2 OR field3 etc. Wildcards are supported,
+except for the realIP field, which must be blank or an IPv4 dotted quad.
";
+
+exit 0;
diff --git a/checks.txt b/checks.txt
new file mode 100644
index 0000000..fed5951
--- /dev/null
+++ b/checks.txt
@@ -0,0 +1,28 @@
+Overall alert system workings:
+There are 6 alert levels. In order of least significant -> most significant, they are:
+
+debug: New rules that are in need of testing. These can be extremely useful, or extremely spammy.
+info: This is not meant to alert about a malicious action, rather to be a "heads up, keep an eye out because..."
+low: These are various rules that may have some false positives. The importance of response time to these varies.
+medium: These are rules that are not likely to be a false positive, and very likely mean the channel should receive immediate attention.
+high: These are rules with a 99% certainty that a user is attempting to be malicious.
+"opalert": The bot will never show an "opalert risk threat", rather, this level indicates who to ping when someone calls !ops
+
+A user set to be pinged for any given level will be pinged for all higher levels.
+For example, if a user is set to be pinged for "low", they'll be pinged for "opalert", but not "info".
+
+In no particular order, the bot:
+
+* Checks for what it thinks is a botnet cycling in a channel to spam
+* Checks for nicks that join just to spam something and then leave
+* Checks for various kinds of flooding - even distributed over multiple nicks - and has anti-anti-detection measures
+* Checks for ascii-art pasting
+* Checks channel messages against a large array of blacklisted strings
+* Detects several IRC exploits
+* Detects channel-ctcps (mostly deprecated thanks to cmode +C)
+* Detects channel-notices
+* Checks channel messages against a few regexes that are always spammy
+* Detects some phishing attempts
+* Detects some types of attempted ban evasion
+* Detects some malicious shorturls
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..696fabe
--- /dev/null
+++ b/index.html
@@ -0,0 +1,37 @@
+AntiSpamMeta homepage
+
+
+
+
AntiSpamMeta is written in my free time. Feel free to give me more monies.
+
+
If you want, I'll even put your name or nick up here as extra thanks.
+Thanks is also due to dwfreed, who helps me with some of the coding,
+WildPikachu, who has provided reliable servers for ASM since its inception,
+DLange, for hosting domain/DNS things,
+and tomaw, who puts up with a lot of my crap.
+
+
+
About AntiSpamMeta:
+ASM was born on about June 14th, 2006.
+It started out as "AntiSpamBot", a supybot plugin for some rudimentary spam detection.
+It only monitored ##linux, which at the time was a constant target for spam and troll groups.
+However, it quickly outgrew supybot's API, as well as needing to be able to run and process things *much* faster.
+In response to this, the supybot was ditched entirely, and it was re-written using the (legacy) Net::IRC perl framework.
+Despite being a decade old, the framework has proven to be very reliable and only needed a few small changes over time.
+On February 28, 2012, AntiSpamMeta was officially recognized as a freenode FOSS project, and moved base from ##asb-nexus, to #antispammeta.
+As of April 22, 2014, the bot keeps state tracking data for the 58 channels it is in, and the ~11,000 nicks it sees.
+As of September 16, 2015, the bot is in 91 channels, sees ~13,200 nicks, and uses around 50MB of ram.
+It monitors nearly every large channel on freenode, but is still just a client-connection, run as a side project (i.e. not a part of the freenode infrastructure).
+
+
Looking for someone to bug that has a specific amount of access? Look no further!
Matching is done based on field1 OR field2 OR field3 etc. Wildcards are supported,
+except for the realIP field, which must be blank or an IPv4 dotted quad.
+
+
+
diff --git a/query.html b/query.html
new file mode 100644
index 0000000..74f98ff
--- /dev/null
+++ b/query.html
@@ -0,0 +1,50 @@
+
+
+ AntiSpamMeta database query page
+
+
+
+
+
diff --git a/syntax.txt b/syntax.txt
new file mode 100644
index 0000000..0eecddf
--- /dev/null
+++ b/syntax.txt
@@ -0,0 +1,175 @@
+List of ASM's commands.
+
+!ops
+ Generates an alert, and includes the message in that alert. So, via channel message or PM,
+ you can do "!ops Hey Ops you need to see this" or "!ops #spammychannel bad stuff goin on"
+ or "!ops" or "!ops #spammychannel". You have to be on the channel in order to call this function,
+ and there are some stopgaps against abuse.
+
+;teredo
+ This will "unmask" an IPv4 connection pretending to be IPv6 - it will report the user's "real" IP.
+ Use if their IP starts with "2001:0:"
+
+;status
+ Reports the bot's memory/cpu/network usage and more.
+
+;source
+ Responds with a URL to the bot's source
+
+;help
+ Refers you to ASM's website
+
+;ping
+ Replies "pong".
+
+*** These are commands used for check to see if a user has a "bad past" ***
+
+;db
+ Returns a link to a page where you can query ASM's alertlog database.
+
+;query
+ nick/user/host takes standard wildcards (e.g. AfterDeat*!*@*).
+ If channel is not specified, checks against all channels.
+ Responds with how many matches there are for this in ASM's alertlog database.
+
+;investigate
+ MUST BE A NICK THAT ANTISPAMMETA CAN SEE.
+ Returns with the number of how many "incidents", e.g. quiets/kills/klines/bans/removes/etc
+ against that person that ASM is aware of.
+
+;investigate2 Restricted to flag "s"
+ Like ;investigate, except ASM will PM you the details of the most recent 10 incidents,
+ unless you provide a skip number, in which case it will skip the first X incidents.
+ There are index numbers attached to the lines, which correspond with logfiles that may
+ explain why said person got banned/klined/whatever. These logfiles are stored in a password-
+ protected directory. See AfterDeath/the url provided/;;addwebuser for access.
+
+;mship Restricted to flag "s"
+ Reports channels that both ASM and is on.
+
+;;addwebuser Restricted to flag "s"
+ THIS COMMAND MUST BE SENT IN PM, WITH TWO SEMICOLONS.
+ This will give you access to the restricted areas of ASM's database, using an http login of
+ [yourIRCnick] and [password].
+ No assurance of privacy is made with regards to your password. Make it secure, so that someone
+ else won't use your login, and make it unique - i.e. not something you use for /ns identify.
+
+
+
+*** These commands are for managing who has access to the bot ***
+
+;userx add Restricted to flag "a"
+ Adds to ASM's config and gives them the specified flags.
+ BE SURE to use the person's nickserv account, WHICH IS NOT NECESSARILY the nick they're using.
+ /whois them to be sure. You can't give them a flag you don't have yourself, and for extra security,
+ you can't ever give them the 'd' flag - this flag has to be assigned via manual config edit.
+ This means if someone has the 'd' flag, they can't have their flags changed to a new set that
+ still includes 'd' without a manual edit.
+
+;userx flags
+ Shows what flags that nickserv account has access to.
+
+;userx flags Restricted to flag "a"
+ Sets the flags for that nickserv account - NOT NECESSARILY THE SAME AS THEIR NICK - to the
+ provided set of flags. Once again, you can't give flags you don't already have, and you can't
+ ever give the 'd' flag.
+
+;userx del Restricted to flag "a"
+ Removes the nickserv account from ASM's list of authorized users.
+
+
+
+*** These commands are for managing who/where the bot notifies of bad stuff ***
+
+;target Restricted to flag "a"
+ Adds target to the list of places notified for source channel, with the optional level.
+ So, to send low-risk alerts and above concerning #spammychannel to #opschannel, you'd do
+ ;target #spammychannel #opschannel info
+ If a level isn't specified, it defaults to "debug".
+
+;detarget Restricted to flag "a"
+ Stops sending messages concerning to .
+
+;showhilights Restricted to flag "h"
+ shows all the channels that it's configured to hilight on, and what level it's for.
+
+;hilight Restricted to flag "h"
+ Adds to the list of hilights for for risks of and above.
+ If is unspecified, it defaults to "info".
+
+;dehilight Restricted to flag "h"
+ Removes the list of nicks from the list of hilights for .
+
+
+*** Blacklist management commands ***
+
+;blacklist Restricted to flag "s"
+ Adds to the list of strings ASM will watch out for. No pattern matching or anything
+ like that is done, although it is case insensitive. Please for the love of everything that
+ is holy use common sense with this. Don't blacklist "nigger" or something like that...
+ but definitely blacklist "http://spammyurl.com" etc.
+
+;blreason Restricted to flag "s"
+ use the ID returned by ;blacklist to set a reason for why you blacklisted it.
+
+;unblacklist Restricted to flag "s"
+ fix an oopsie
+
+;bllookup Restricted to flag "s"
+ Looks up the blacklisted string represented by a given ID and sends details in PM.
+
+
+*** Administrative commands ***
+
+;join Restricted to flag "a"
+ Tells the bot to join said channel.
+
+;part Restricted to flag "a"
+ Tells the bot to part said channel.
+
+;rehash Restricted to flag "a"
+ Re-reads the string blacklist files and config files etc etc.
+
+;monitor (yes|no) Restricted to flag "a"
+ Sets whether or not the channel is monitored for spam stuffs.
+ This is obviously "yes" by default, but some places turn it off for their #blah-ops channel.
+
+;silence (yes|no) Restricted to flag "a"
+ Sets whether or not ASM ignores commands (other than !ops) in the channel.
+ "no" by default; public channels often want this.
+
+;quit Restricted to flag "a"
+ Quits IRC using reason as the quit message. ASM is run in a while loop, so it'll probably
+ come right back.
+
+;sync Restricted to flag "a"
+ sends data to gather information about , in case a sync failed and needs to be
+ manually forced.
+
+;restrict (nick|account|host) (+|-) Restricted to flag "a"
+ Adds a restriction for the specified nick or nickserv account or hostname.
+ Useful restrictions are:
+ notrigger - prevents the target from causing the bot to generate a spam alert.
+ nomsgs - don't relay private messages from target to the master channel
+ nocommands - prevent target from sending the bot commands.
+
+
+*** Highly restricted debug commands ***
+
+;sql (main|log) Restricted to flag "d"
+ No idea what this does right now.
+
+;sl Restricted to flag "d"
+ Sends to the IRC server.
+
+;ev Restricted to flag "d"
+ Evaluates raw perl code - output is sent to STDOUT, not to IRC.
+
+
+*** Plugin interface ***
+
+;plugin Restricted to flag "p"
+ This is used so another bot can have ASM generate alerts. E.G.
+ ;plugin #spammychannel debug Magic Bad Stuff Detection Algorithm 1 ->
+ debug risk threat [#spammychannel] - (magicbot plugin) - Magic Bad Stuff
+ Detection Algorithm 1 - ping lotsofpeople
--
cgit v1.2.3