Releases: bitbot-irc/bitbot
Releases · bitbot-irc/bitbot
v1.20.0
Added:
ban-enforce.pyto kick people that match a new ban mask- MLOCK-like functionality in
channel_op.py - Channels can be opted out of inactivity pruning
- Optional to disable youtubeifying
!npoutput - Allow RSS requests to bind to specific source addresses
!wordsin PMyourls.pyfor yourl url shortners- handle
RPL_VISIBLEHOST
Changed:
ERR_LINKCHANNEL(470) now removes the initial channel from autojoin- (IRCv3)
+draft/typingwas ratified - We're no longer supporting a specific broken charybdis install, for line length calculations
- Much better line truncation
- Handle HTTP redirects ourselves, to avoid redirects on to forbidden hosts
Fixed:
- All bot.conf paths should have ~/{DATA} expanded
host-metaURL for fediverse accounts should be optional - fallback to default webfinger- Message filter
m/criterias should operate on formatting-stripped lines - Quote
!grabs were wiping the user's category - Quote
!quotedels were looking at the wrong categories !wordswas squashing results in to a dict, losing days- INVEX and EXCEPT lists were looking at the wrong index for masks
v1.19.0
Added:
- Commands Specs. expression language for defining format of command args
.bitbot/mod-data/for addition data files for modules- Concept of core vs additional modules. Core modules can be reloaded but not unloaded
channel_accessgroups:low/high/admin- Proof of concept reminders on a cron schedule (
cron_reminders.py) - Show how many seconds by which you missed a duck (
ducks.py) - Show gitlab wiki events (
git_webhooks) - Opt-in prune inactive channels after 2 weeks (
inactive_channels.py) - Ability to export decorated functions with @utils.export
- Configrable chance of randomly triggered markovs (
markov.py) - Ability to rewrite messages as well as block them (
message_filters.py) - Ability to search through recent messages (
messages.py) rainbow.pybecause rainbow text is fun- Track time/commit of load and events handled per module and show it through
!modinfo(modules.py) - Support ranges in stepped cron schedules (
cron.py) - Format
ACCOUNTevents (format_activity.py) - Track channel list modes like ban, quiet, invex, ban exceptions (
mode_lists.py) - Support
WATCHwhen available fornick_regain.py
Changed:
- IRCv3's
labeled-responsewas ratified - IRCv3's
setnamewas ratified channel_lognow logs to.bitbot/mod-data/channel_log/channel_logcan now RSA+AES(CBC) encrypt log files- Word tracking is now done per day. use
migration/v01.19.0-words.pyto migrate old data - Totally rewrote
badges.pycommand interface - Huge refactor and rework of
channel_op.py- most commands can take duration and globs now - Improve
factoids.py(including nested factoids) - Split out
src/utils/datetime.py - Show github webhook issue/PR titles in more places (
git_webhooks) - Show google result descriptions instead of title when available (
google.py) - Minimal formatted lines should be relayed (
relay.py) - Totally rewrote
todo.pycommand interface IRCBuffernow holds 1024 lines of history (was 64; 1024 might be overkill...)- Reloaded modules will always be rolled back to previous loaded module if reload fails
- Generate usage from command spec stings when present (
help.py) - Much cleaner support for handling server
NOTICEs (line_handler) to_pretty_timecan now do relative time (e.g. including years and months)- Souped HTTP responses changed from
lxmlparsing tohtml5libby default - Bool config options now accept 0 and 1
Fixed:
- Readded lost support for SASL
USERPASSpseudo algo (ircv3_sasl) - Minor typo in
healthchecks.py - Minor typo in
votes.py - Crash caused by division by zero in
title.pydifference checking internal.identifiedcommand was being fired for every message with an@accounttag (permissions)
v1.18.2
Changed:
- Colourise server address in
server-noticeformatting (format_activity.py)
Fixed:
uservariable doesn't exist inINVITEformatting code (format_activity.py)utils.datetime.find()'snot_patternarg should be optionalutils.datetime.iso8601_parseno longer has amicrosecondsarg (youtube.py)
v1.18.1
v1.18.0
Added:
- New dependency in
requirements.txt:dateutils - Show
transferredgithub issues by default (git_webhooks) hostmask-tracking.py- keep a history of what hostmasks each nickname has used- Also watch
NICKandQUITlines to see when our nickname might be freee (nick_regain.py) - IRCv3
draft/deleteimplementation (ircv3_editmsg.py) - Show account and realname in
JOINformattin when available (format_activity.py)
Changed:
- Removed
--data-dir,--databaseand--log-dir, these options have been moved tobot.conf - Reworded karma change output
!grabnot tries to attach quote to account, not just nickname (quotes.py)!wordiestnot defaults to the current channel (words.py)!partnow works for+ousers or users with channel_accesspart(admin.py)
Fixed:
- cron would fail to initialise at 59 minutes past the hour (
core_modules/cron.py) - Don't send typing notications by default for pattern-based commands
- Regex error when replacement starts with a number (
sed.py) - Reimplement lost IRCv3
account-tagfunctionality (permissions) - Show username when fediverse displayname is "" (
fediverse) ++asd++used to give karma to bothasd++and++asd(karma.py)
v1.17.1
v1.17.0
Added:
- Ability to
.save()bot.conf- we now use only this for module whitelist/blacklist - A cron system (
src/core_modules/cron.py) healthcheck.py- ping a URL every 10 minutes (for uptime-tracking services)- Support
++nicknamestyle karma (karma.py) - Bot-wide aliases (
!baliasinaliases.py) - Support per-user (PM)
command-methodsetting (commands) dnsblmodule to loop up given IPv4 and IPv6 addresses in blacklists
Changed:
- "Core" modules (modules needed for base operation of bitbot) moved to
src/core_modulesand made blacklist-immune - Better parsing error for
!config u birthday(birthday.py) - Show display name, not username, when available (
fediverse.py) - By default, show
locked/unlockedgithub issue/PR events (git_webhooks) - Switch back to full wolframalpha API but use it better than we used to (
wolframalpha.py) - Hostmasks are now precompiled to find users that match them (
permissions)
Removed:
-m/-Margs tobitbotd- didn't work any more due to databse lockingdatabase_backup.py- this was always a weird hack. Added a note about backups inREADME.md
v1.16.1
v1.16.0
Added:
- Show target in formatted private
NOTICEevents (format_activity.py) - Show first 100 chars of GitHub issue comments (
git_webhooks) - Show who opened a GitHub pull request when approperiate (
git_webhooks) - Timed user ignores (
ignore.py) - Support
"$$"as"$"in command alias argument replacement (aliases.py) - Show explicitly when only a title of an issue/PR was changed (
git_webhooks) - Show URLs in
!wikipediaoutput (wikipedia.py) !rawand!performnow support "human" formats (e.g./msg user message)- Listing servers with
!servers(stats.py)
Changed:
- Complete refactor of
permissionsmodule - now with hostmask support - Big refactor of commands module
- Command aliases moved to their own module. Run
migration/v01.16.00-aliases.pyto migrate old aliases. - Karma is now stored per-user and you can give yourself karma. Run
migration/v01.16.00-karmato migrate old karma. - Unique User-Agent (
utils.http.USERAGENT) - Nickname hashed colourisation now matches weechat's default (
utils.irc) ./bitbotd -m permissions -M master-passwordmoved to./bitbotctl command master-passwordutils.http.Response.datais now alwaysbytes- use.decode()/.json()/.soup()to.py->tell.py; move!toto!tellbut add!toas an alias- Sed edits are now cumulative (
sed.py)
v1.15.0
Added:
- Optionally colourise nicknames when printed to log (
format_activity.pyandprint_activity.py) - Show git branch in
!versionoutput (info.py) - Stop/start REST API HTTPd when trying to reload all modules (
ModuleManagerandrest_api.py) - Individual channels can opt out of printing to INFO log (
!config c print off,print_activity.py) - Opt-in shlex argument parsing for command callbacks (
commands) - Show when BitBot first saw you speak in
!wordsoutput (words.py)
Changed:
- Logging moved to
~/.bitbot/logs/by default - Better eval API for
eval_python.py(now py3 only) - Better single-line normalisation for ActivityPub Activities (
fediverse) - Better error messages shown to user when a fediverse Actor can't be found (
fediverse) - Git hashes are now truncated to 7 chars, not 8 (
git_webhooks) - Split
utils/__init__.pyout in to more separate files - Show channel mode status symbols when formatting
NOTICEs (format_activity.py) - Conbine YouTube API requests in to 1 request, rather than 3 (
youtube.py)
Fixed:
- Multiple channel keys should be expressed as comma-separated (
channel_keys.py) !duckstats <nickname>was meant to show stats for another user (ducks.py)- Fix almost completely broken 908 (
RPL_SASLMECHS) handling - Background colour formatting was being lost (
utils.irc)
Removed:
tfl.pymoved tobitbot-modules