summaryrefslogtreecommitdiffstats
path: root/syntax.txt
blob: 2043d30f55b17b6861d4ddba6ff7765e1717a5ba (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
List of ASM's commands.

!ops <optional:#channel> <optional: message to send>
  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 <IPv6 IP>
  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
  ASM's least helpful command, accompanied by the least helpful description.

;ping
  Replies "pong".

;ping <string>								Restricted to flag "s"
  pong <string>

*** 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 <optional:channel> <nick!user@host>
  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 <nick>
  <nick> 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 <nick> <optional:skip>					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 <nick>								Restricted to flag "s"
  Reports channels that both ASM and <nick> is on.

*** These commands are for managing who has access to the bot ***

;userx add <nickserv account> <flags>					Restricted to flag "a"
  Adds <nickserv account> 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 <nickserv account>
  Shows what flags that nickserv account has access to.

;userx flags <nickserv account> <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. If you want to give the "d" flag, you will absolutely have to edit
  the users.xml file by hand.

;userx del <nickserv account>						Restricted to flag "a"
  Removes the nickserv account from ASM's list of authorized users.

;;addwebuser <password>							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.

;delwebuser <account>							Restricted to flag "a"
  Deletes an individual's web access.


*** These commands are for managing who/where the bot notifies of bad stuff ***

;target <source channel> <target channel or nick> <optional:level>	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".
  <nick> may be in the form of $a:nickservAccount in which case ASM will substitute that
  nickserv account for all nicks currently signed onto that nickserv account

;detarget <source channel> <target channel or nick>			Restricted to flag "a"
  Stops sending messages concerning <source channel> to <target channel or nick>.
  <nick> may be in the form of $a:nickservAccount in which case ASM will substitute that
  nickserv account for all nicks currently signed onto that nickserv account

;showhilights <nick>							Restricted to flag "h"
  shows all the channels that it's configured to hilight <nick> on, and what level it's for.

;hilight <channel> <nick><optional:,nick2,nick3> <optional:level>	Restricted to flag "h"
  Adds <nick[s]> to the list of hilights for <channel> for risks of <level> and above.
  If <level> is unspecified, it defaults to "info".
  <nick> may be in the form of $a:nickservAccount in which case ASM will substitute that
  nickserv account for all nicks currently signed onto that nickserv account

;dehilight <channel> <nick><optional:,nick2,nick3>      		Restricted to flag "h"
  Removes the list of nicks from the list of hilights for <channel>.
  <nick> may be in the form of $a:nickservAccount.


*** Blacklist management commands ***

;blacklist <string>							Restricted to flag "s"
  Adds <string> 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.

;blacklistpcre <string>							Restricted to flag "a"
  Adds <string> to the list of strings ASM will watch out for. Regular expression matching.

;blreason <id> <reason>                                                 Restricted to flag "s"
  use the ID returned by ;blacklist to set a reason for why you blacklisted it.

;unblacklist <id>                                                       Restricted to flag "s"
  fix an oopsie

;bllookup <id>                                                          Restricted to flag "s"
  Looks up the blacklisted string represented by a given ID and sends details in PM.


*** Administrative commands ***

;join <channel>								Restricted to flag "a"
  Tells the bot to join said channel.

;part <channel>								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 <chan> optional:(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.
  If yes/no is not specified, show the current state of the monitor flag.

;silence <chan> optional:(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.
  If yes/no is not specified, show the current state of the silence flag.

;quit <reason>								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 <channel>								Restricted to flag "a"
  sends data to gather information about <channel>, in case a sync failed and needs to be
  manually forced.

;restrict (nick|account|host) <nick/acct/host> (+|-)<restriction>	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.
    noidstring - e.g. nonickbl_impersonate, to prevent them from triggering the
                 nickbl_impersonate rule


*** Highly restricted debug commands ***

;sql (main|log) <somestring>						Restricted to flag "d"
  No idea what this does right now.

;sl <line>								Restricted to flag "d"
  Sends <line> to the IRC server.

;ev <code>								Restricted to flag "d"
  Evaluates raw perl code - output is sent to STDOUT, not to IRC.

;wallop <msg>								Restricted to flag "d"
  Does nothing. One day, it'll probably broadcast a message to all target-chans.


*** Plugin interface ***

;plugin <chan> <risk> <reason>						Restricted to flag "p"
  This is used so another bot can have ASM generate alerts. E.G.
  <magicbot> ;plugin #spammychannel debug Magic Bad Stuff Detection Algorithm 1  ->
  <AntiSpamMeta> debug risk threat [#spammychannel] - (magicbot plugin) - Magic Bad Stuff
      Detection Algorithm 1 - ping lotsofpeople