summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAge
* Update services' mask for move to Libera.LibravatarUnit 1932021-12-03
|
* Add solanum's 'u' mode for unfiltered channels.LibravatarUnit 1932021-12-03
|
* Various improvements.LibravatarKrytarik Raido2021-02-04
| | | | | | | * Also catch "!op" call. * Improve op alert output. * Define URLs specific to bot instance via configuration.
* Change note about a channel still being +r to debug level.LibravatarUnit 1932021-02-03
|
* Use notices for admin messages to masterchan.LibravatarUnit 1932021-02-03
|
* Change default for new channels to be silent.LibravatarUnit 1932021-02-03
|
* Require basic privs for any sort of command.LibravatarUnit 1932021-02-03
|
* !ops: fix matching for bare !ops without messageLibravatarJanik Kleinhoff2018-06-07
| | | | | Blame krytarik, though I adjusted the suggested regex a little. Blame Unit193 for starting a fight.
* !ops: adjust command regexLibravatarJanik Kleinhoff2018-03-24
| | | | | | | | - Be a bit more reasonable about spaces - Ignore "|" between !ops and the message Using "!ops | foo bar" is common in the Ubuntu namespace at least, so there isn't much point in including the | in the reported message. If this breaks anything, blame Unit193 for being perfectionistic.
* Fix running the bot without a database.LibravatarUnit 1932017-11-17
| | | | Patch by Krytarik.
* Revert "Move users to DB"LibravatarJanik Kleinhoff2017-05-08
| | | | | | This reverts commit 7342c7f0e19e15ab3c7ba2133a56393c15989f08. Turns out there are still issues after all.
* Move users to DBLibravatarJanik Kleinhoff2017-05-08
| | | | | | | | | | | | | | | | | | | | | Summary: This will automatically take care of migrating the users from users.json; you may delete that file. Note that this removes htpasswd support. We now store (hashed) user passwords in the database. See T19 for rationale. Test Plan: Run this on a testnet for a while, try to break it. Reviewers: ilbelkyr, #antispammeta Reviewed By: ilbelkyr, #antispammeta Tags: #antispammeta, #database Differential Revision: https://dev.antispammeta.net/D2
* nickspam check: require *different* nicksLibravatarJanik Kleinhoff2017-04-09
| | | | | | | Things like this will no longer trigger the bot: <+/Ukikie> Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie Ukikie. <+/AntiSpamMeta> High risk threat [#antispammeta] - Ukikie - nickspamming;
* Mention hostname in cloning $xresultLibravatarJanik Kleinhoff2017-03-05
| | | | | Fixes T21. $xresult now takes the form "foo, bar, baz, and qux [@example.org]"
* Misc. code cleanupLibravatarJanik Kleinhoff2017-02-22
|
* Make lag quit message configurableLibravatarJanik Kleinhoff2017-02-14
| | | | | | The original message is freenode/atheme-specific; additionally, the freeze-to-fix suggestion is rather odd and probably specific to the original freenode instance.
* DB: fix major fuckupLibravatarJanik Kleinhoff2017-02-13
| | | | | | | | | | | | | | | | | | | | | "id" in the alertlog table refers to the ID name of the alert rule that triggered, **not** to some sort of unique ID. This commit rewrites the database schema history used by DBIx::Class::DeploymentHandler as the previous schemata were utterly useless (and, in fact, seem to be undeployable). @Unit193, @Xenthys Clearly you managed to deploy a database somehow. If you used the legacy `DATABASE.SCHEMA` file and `bin/db_legacy`, you should be able to update via `bin/db_upgrade`; I've tested to verify this. (If you //haven't// run `db_legacy` yet, make sure to update to exactly de9f3deabe35, run `db_legacy`, then update to this commit and proceed with `db_upgrade`.) If you used the `db_deploy` script, may Cthulhu have mercy on your soul: I'm pretty sure that would not actually have worked. That said, it's my mistake, so if you require further assistance, feel free to poke me on freenode.
* ASM::DB::Result::User: check_passphrase -> check_passwordLibravatarJanik Kleinhoff2016-12-26
| | | | This is for easier integration with Catalyst.
* Remove DCC supportLibravatarJanik Kleinhoff2016-12-26
| | | | All this allowed was spying on channels.
* Split 'pass' option into 'server_pass', 'account_pass'LibravatarJanik Kleinhoff2016-12-25
| | | | | | | | | | | | | | | | Also remove the --pass command-line option for now and introduce a backward compatibility check that warns when the old option is encountered. This check is now placed with the mysql option checks in a dedicated function. --- So one day, I looked over the AntiSpamMeta console log and noticed NickServ was echoing back part of the password to us in a "no such username" error. This is due to us using the 'pass' option for both nickserv and server password, so we sent PASS NickServPassword. However, the password happened to have a ':' in it, so services interpreted it as a user:password combination.
* asciiflood: Check for Unicode "letters"LibravatarJanik Kleinhoff2016-12-24
| | | | | | | | | We used to test for /[a-zA-Z0-9]/ here, which obviously won't work for languages that don't normally use those characters. Test for something Unicode roughly considers a "letter" instead (this includes ideographic characters). Fixes T15.
* Allow disabling rules per-channelLibravatarJanik Kleinhoff2016-11-06
| | | | | | This is a pretty hacky solution and currently only available via a direct config edit. That said, how we deal with channel settings is due for an overhaul anyway.
* DB: add "users" table for webusersLibravatarJanik Kleinhoff2016-10-30
| | | | | For now, mere presence in the table means a given user is authorized to view stuff. We can make this more granular later on (important for T11).
* Use DBIx::Class::DeploymentHandlerLibravatarJanik Kleinhoff2016-10-30
| | | | Fixes T5. Yay! We still need some documentation on this, though.
* I shouldn't be coding this time of nightLibravatarJanik Kleinhoff2016-10-29
|
* fix !ops with new DB interfaceLibravatarJanik Kleinhoff2016-10-29
|
* Use DBIx::ClassLibravatarJanik Kleinhoff2016-10-28
| | | | | For now this is a relatively quick-and-dirty transition, but this enables us to reuse ASM::DB from the website. Yay
* Avoid !ops restriction messages silencing alertsLibravatarJanik Kleinhoff2016-10-07
| | | | | | | | This fixes T9. It's not a particularly nice fix, and the code surrounding this could really use some cleanup, but it works. ASM::Commander did not return a true value explicitly so we have to do that as well. It's a coincidence that it worked until now ...
* Extirpate traces of XMLLibravatarJanik Kleinhoff2016-10-07
| | | | | | | | | | | | | | | | Summary: Resolve T6 and use the opportunity to get rid of our dependency on `XML::Simple` once and for all. Test Plan: Run the bot with JSON config files. Reviewers: Unit193 Reviewed By: Unit193 Tags: #antispammeta Maniphest Tasks: T6 Differential Revision: https://asm.shalture.org/D1
* Remove invasive logging functionalityLibravatarJanik Kleinhoff2016-09-30
| | | | | This removes the ;nicks and ;explain commands. Actionlogs and alertlogs are untouched for now. Cf. T8 for motivation.
* ;investigate: require s flag for various reasonsLibravatarJanik Kleinhoff2016-09-26
|
* Fix case issue with checking for sync failuresLibravatarDoug Freed2016-08-04
|
* Add a version command.LibravatarDoug Freed2016-07-14
| | | | | | | | | *NOTE*: Reflects the state of git only at the time the bot is started. Version is not updated in any way at runtime. First field is the newest commit that exists both locally and on GitLab. Second field is the output of `git describe --all --long --dirty`. Third field is the latest commit locally.
* Don't run /stats p in 90 seconds if ratelimitedLibravatarDoug Freed2016-07-07
| | | | | The ratelimit handler already schedules one in 30 seconds, so don't schedule a second one in 90 seconds.
* Make a debugsock-alike we can dump on demandLibravatarDoug Freed2016-07-07
| | | | | | Stores the last 1000 lines sent or received, with timestamp. Use ;ev $conn->_dump_last('filename'); to trigger dump.
* Prevent public regex access in ;helpLibravatarDoug Freed2016-07-07
|
* Use YOURLS shortening service rather than shortener.godaddy.comLibravatarWilliam Heimbigner2016-05-05
|
* "Channel +r after 45 minutes" messages are now info-riskLibravatarWilliam Heimbigner2016-05-05
|
* BOOM GOES THE XMLLibravatarJanik Kleinhoff2016-03-13
| | | | | | | | | | | | This likely introduces twenty new bugs, but on the other hand it avoids twenty thousand other issues (most of them relating to XML::Simple doing the utterly wrong things all the time and configuration merely mitigating the issues, rather than fixing the core problem) so chances are it's more than worth it. We check if there's shiny new JSON-based config in place already; if not, we try to load XML config and convert it to the new format. The old config files are left untouched in case we fucked up somehow.
* ASM::Services: identify unconditionallyLibravatarJanik Kleinhoff2016-03-13
| | | | Fixes some setups, shouldn't break others.
* ASM::Services: allow configuring services masksLibravatarJanik Kleinhoff2016-03-13
|
* ASM::Util::isFloodedPhraseOK(): lc $chanLibravatarJanik Kleinhoff2016-03-01
| | | | | Should hopefully fix the #Reddit issue. There ought to be a tidy way of doing this without lc strewn all over the code ... but I'm lazy
* Clean up some warnings being generated for unknown reasons pertaining to DNS ↵LibravatarWilliam Heimbigner2016-02-21
| | | | issues
* fix feature wherein ;bllookup failed to indicate what ID was being looked upLibravatarWilliam Heimbigner2016-02-19
|
* Add ;explain command (needs work still)LibravatarWilliam Heimbigner2016-02-18
|
* Show who requested a ;quit in the quit message.LibravatarWilliam Heimbigner2016-02-17
|
* Fix showhilights to be able to check against nicks that were manually added ↵LibravatarWilliam Heimbigner2016-02-17
| | | | to the config with uppercase letters
* Add a ;nicks command to track down known nicks, searching by host. ↵LibravatarWilliam Heimbigner2016-02-17
| | | | Incomplete / much more work to be done.
* fix commandsLibravatarJanik Kleinhoff2016-02-15
|
* ASM::Commander: print where a command was receivedLibravatarJanik Kleinhoff2016-02-14
|
* ASM::Inspect: display proper nick casing (cf b91e545a)LibravatarJanik Kleinhoff2016-02-14
|
* splitflood: allow whitelisting certain regex per channelLibravatarJanik Kleinhoff2016-02-14
| | | | | Accessible via editing the config only; this is a feature that is probably only useful to a handful of channels.
* ASM::Event: handle +l like +jLibravatarJanik Kleinhoff2016-02-14
|
* ;suppress: don't touch the monitor flagLibravatarJanik Kleinhoff2016-02-14
|
* ASM::Inspect: for nick changes, use the new nick where appropriateLibravatarJanik Kleinhoff2016-02-14
| | | | | | | | | Among some other minor effects, this changes the alert for, say, -!- FriendlyUser is now known as MegaTroll9001 to specify the new nick (MegaTroll9001). Useful if you have nickfuzzy rules triggering on nick changes.
* Clean up excessive use of lcLibravatarDoug Freed2016-02-09
|
* BugfixLibravatarDoug Freed2016-02-09
|
* Stash an account to nick mappingLibravatarDoug Freed2016-02-09
|
* Don't allow double suppression.LibravatarDoug Freed2016-02-05
| | | | It breaks things.
* Removed a tabLibravatarDoug Freed2016-02-01
|
* use a different URL in ;sourceLibravatarWilliam Heimbigner2016-01-21
|
* Ensure that with default configuration, the shortener will not be used but ↵LibravatarWilliam Heimbigner2016-01-21
| | | | also won't print out any extra warnings
* Shorten the URL provided via ;investigateLibravatarWilliam Heimbigner2016-01-21
|
* Have the Inspect/opalert routines print a backlog to an incident-specific ↵LibravatarWilliam Heimbigner2016-01-21
| | | | logfile, rather than a single file, and include a shortlink to this logfile when generating alerts
* Add URL shortener moduleLibravatarWilliam Heimbigner2016-01-21
|
* Ignore "netsplits" from sigyn and eirLibravatarWilliam Heimbigner2016-01-20
|
* Suppress a warning when someone was /kill'd without a reasonLibravatarWilliam Heimbigner2016-01-19
|
* Handle !ops without target in PM betterLibravatarDoug Freed2016-01-15
|
* Remove usage of legacy $::inspectorLibravatarDoug Freed2016-01-15
|
* Massive cleanup of CommanderLibravatarDoug Freed2016-01-15
|
* Clean up some stray comments and add support for Inspect to hook invite eventsLibravatarWilliam Heimbigner2016-01-15
|
* Fuck perlLibravatarDoug Freed2016-01-15
|
* Remove spammy line from Inspect.pmLibravatarWilliam Heimbigner2016-01-15
|
* Register inspect hooks inside the inspect function, no longer inspect topic ↵LibravatarWilliam Heimbigner2016-01-14
| | | | changes, possibly break quit inspection, and move the DNS resolver to a global var
* Fix async DNS resolution to handle things betterLibravatarDoug Freed2016-01-14
| | | | | - Handles CNAMEs now - Handles multiple IPs for a given host
* Remove errant spaceLibravatarDoug Freed2016-01-14
|
* Add vim modelines and fix inconsistent indentationLibravatarDoug Freed2016-01-14
|
* Fix ASM's memory usage display to be more accurateLibravatarDoug Freed2016-01-14
|
* Insert the logging hook for quit messages after state-tracker has duly ↵LibravatarWilliam Heimbigner2016-01-14
| | | | molested the quit event
* Fix a bug where part of the DNS routines could be called with an undefined ↵LibravatarWilliam Heimbigner2016-01-14
| | | | value, and then go kaboom
* Move channel logging hooks into the logging module, rather than calling them ↵LibravatarWilliam Heimbigner2016-01-14
| | | | from the event module.
* Move Statsp-logging stuff from Event.pm into a separate moduleLibravatarWilliam Heimbigner2016-01-14
|
* Register services-processing handler inside the services module, rather than ↵LibravatarWilliam Heimbigner2016-01-14
| | | | having it be called by the Event module
* Register command-processing handlers inside of the command module, rather ↵LibravatarWilliam Heimbigner2016-01-14
| | | | than having the event handler module call the command handler module
* Allow multiple event handlers to be added for the same event. Increased ↵LibravatarWilliam Heimbigner2016-01-14
| | | | version number to allow for depending on this ability
* Remove commands.xml, move everything kinda-nicely into the main Commander ↵LibravatarWilliam Heimbigner2016-01-14
| | | | module.
* Process DNS lookups when syncing ban/quietlists asynchronouslyLibravatarWilliam Heimbigner2016-01-14
|
* More bugfixes and improvementsLibravatarDoug Freed2016-01-13
| | | | | | | | | | - Request and save the real IP when syncing - Handle our nick not matching what we want it to be when we're kicked - Minor style consistency fix - Greatly improve channel syncing - Retrieve hostname/IP bans and quiets better - Clean up generation of reversed IP for DNSBL checking - Improve getHostIP's detection of real hostnames
* Speed up DNS lookupsLibravatarWilliam Heimbigner2016-01-13
|
* Get rid of string_blacklist related stuff.LibravatarWilliam Heimbigner2016-01-13
|
* Bugfixes and improvementsLibravatarDoug Freed2016-01-13
| | | | | | - Stop asking ChanServ to be unbanned from a channel - Only sync channels we actually join - Fix NickServ message detection (I wish they used numerics)
* Really disable smartmatch warningLibravatarDoug Freed2016-01-12
|
* Added the ability to do connection debugging in Net::IRC without doing ↵LibravatarWilliam Heimbigner2016-01-12
| | | | full-blown debugging, and made use of that feature in meta.pl. Also fixed the debugging output of Net::IRC to print to STDERR regardless of what debug method is used
* Disable Autovivification in all the things, enable autoflush on STDOUT, fix ↵LibravatarWilliam Heimbigner2016-01-12
| | | | some things in accountsToNicks
* Disable autovivification in Classes.pm and add some undef checks to reduce ↵LibravatarWilliam Heimbigner2016-01-12
| | | | warnings.
* Use Tie::CPHash to make %::sn and %::sc case-insensitiveish.LibravatarWilliam Heimbigner2016-01-07
| | | | | | | Clean up commands.xml and fix some bugs Add clone detection Minimize some excessive warnings Greatly improve syncing speed
* Fix 100% cpu usage from how FIFO was being select()edLibravatarWilliam Heimbigner2015-12-26
|
* Create a fifo, relay it into masterchan (awesome for git web hook, and for ↵LibravatarWilliam Heimbigner2015-12-26
| | | | making dwfreed wonder how the bot is talking)
* Better undef-checking -> less warningsLibravatarWilliam Heimbigner2015-12-26
|
* Add support for SSL in Net::IRC forkLibravatarWilliam Heimbigner2015-12-25
|