summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* Only load ASM::DB if use of database is not disabled.HEADmasterLibravatarKrytarik Raido2022-10-21
| | | | This drops DBIx::Class as requirement otherwise.
* 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.
* Disable DNS debug info.LibravatarUnit 1932021-02-03
|
* 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.
* .gitignore: ignore plenv .perl-version fileLibravatarJanik Kleinhoff2017-10-02
|
* carton: update dependenciesLibravatarJanik Kleinhoff2017-10-02
|
* Revert "Move users to DB"LibravatarJanik Kleinhoff2017-05-08
| | | | | | This reverts commit 7342c7f0e19e15ab3c7ba2133a56393c15989f08. Turns out there are still issues after all.
* cpanfile: need DBIx::Class::Schema::LoaderLibravatarJanik Kleinhoff2017-05-08
|
* 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;
* .arclint: update text config to reflect coding styleLibravatarJanik Kleinhoff2017-04-01
| | | | | 80+ character lines are pretty common in the code and hard to avoid in some cases. Tabs are used in some existing files.
* carton: update depsLibravatarJanik Kleinhoff2017-03-25
|
* .arcconfig: update URILibravatarJanik Kleinhoff2017-03-22
|
* config-default/rules.json: increment default clone limitLibravatarJanik Kleinhoff2017-03-05
| | | | Refer to T21 for rationale.
* 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
|
* Add .perltidyrcLibravatarJanik Kleinhoff2017-02-18
|
* 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.
* Make wordlist.txt, proxy.txt, nick_blacklist.txt optionalLibravatarJanik Kleinhoff2017-02-12
| | | | | | | | | | | | | | | | wordlist is used exclusively by garbagemeter which has been disabled for quite a while. We'd probably be better off using a config-defined path anyway so people can point the bot at /usr/share/dict/words or the local equivalent. The proxy list is most likely completely out of date. We have DNSBLs for this anyway. The nick blacklist is inflexible; nick blacklisting with an added reason can already be done via the rules file. Note that the functionality is not removed for now to avoid breaking compatibility.
* 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.
* .gitignore: ignore /config-*/LibravatarJanik Kleinhoff2016-12-25
|
* 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.
* config-default: fix mistakesLibravatarJanik Kleinhoff2016-10-30
|
* mysql config: use dsn instead of individual keysLibravatarJanik Kleinhoff2016-10-30
|
* 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
|
* Set up things for arcanist/phabricatorLibravatarJanik Kleinhoff2016-09-05
|
* rm outdated files (DEPS, TODO, USAGE)LibravatarJanik Kleinhoff2016-09-05
| | | | | | In the case of DEPS, this avoids some confusion as we have cpanfile now instead (cf T2). We do lose the list of Debian packages, but some of those modules don't have Debian packages anyway.
* Use Carton for deploymentLibravatarJanik Kleinhoff2016-09-05
| | | | This fixes T2 and significantly helps with T1.
* 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
|
* Update DEPSLibravatarDoug Freed2016-06-30
|
* 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.
* Update database schemaLibravatarDoug Freed2016-02-11
|
* Clean up excessive use of lcLibravatarDoug Freed2016-02-09
|
* BugfixLibravatarDoug Freed2016-02-09
|
* Stash an account to nick mappingLibravatarDoug Freed2016-02-09
|
* Promote some useful checks to higher levelsLibravatarDoug 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
|
* Update the temp version of settings.xml to use SSL by defaultLibravatarWilliam Heimbigner2016-01-21
|
* Updated rules.xml to reflect updated classes and because Ukikie asked nicelyLibravatarWilliam Heimbigner2016-01-20
|
* 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
|