Releases: bitbot-irc/bitbot
Releases · bitbot-irc/bitbot
v1.20.0
Added:
ban-enforce.py
to 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
!np
output - Allow RSS requests to bind to specific source addresses
!words
in PMyourls.py
for yourl url shortners- handle
RPL_VISIBLEHOST
Changed:
ERR_LINKCHANNEL
(470) now removes the initial channel from autojoin- (IRCv3)
+draft/typing
was 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-meta
URL for fediverse accounts should be optional - fallback to default webfinger- Message filter
m/
criterias should operate on formatting-stripped lines - Quote
!grab
s were wiping the user's category - Quote
!quotedel
s were looking at the wrong categories !words
was 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_access
groups: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.py
because 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
ACCOUNT
events (format_activity.py
) - Track channel list modes like ban, quiet, invex, ban exceptions (
mode_lists.py
) - Support
WATCH
when available fornick_regain.py
Changed:
- IRCv3's
labeled-response
was ratified - IRCv3's
setname
was ratified channel_log
now logs to.bitbot/mod-data/channel_log/
channel_log
can now RSA+AES(CBC) encrypt log files- Word tracking is now done per day. use
migration/v01.19.0-words.py
to migrate old data - Totally rewrote
badges.py
command 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.py
command interface IRCBuffer
now 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
NOTICE
s (line_handler
) to_pretty_time
can now do relative time (e.g. including years and months)- Souped HTTP responses changed from
lxml
parsing tohtml5lib
by default - Bool config options now accept 0 and 1
Fixed:
- Readded lost support for SASL
USERPASS
pseudo algo (ircv3_sasl
) - Minor typo in
healthchecks.py
- Minor typo in
votes.py
- Crash caused by division by zero in
title.py
difference checking internal.identified
command was being fired for every message with an@account
tag (permissions
)
v1.18.2
Changed:
- Colourise server address in
server-notice
formatting (format_activity.py
)
Fixed:
user
variable doesn't exist inINVITE
formatting code (format_activity.py
)utils.datetime.find()
'snot_pattern
arg should be optionalutils.datetime.iso8601_parse
no longer has amicroseconds
arg (youtube.py
)
v1.18.1
v1.18.0
Added:
- New dependency in
requirements.txt
:dateutils
- Show
transferred
github issues by default (git_webhooks
) hostmask-tracking.py
- keep a history of what hostmasks each nickname has used- Also watch
NICK
andQUIT
lines to see when our nickname might be freee (nick_regain.py
) - IRCv3
draft/delete
implementation (ircv3_editmsg.py
) - Show account and realname in
JOIN
formattin when available (format_activity.py
)
Changed:
- Removed
--data-dir
,--database
and--log-dir
, these options have been moved tobot.conf
- Reworded karma change output
!grab
not tries to attach quote to account, not just nickname (quotes.py
)!wordiest
not defaults to the current channel (words.py
)!part
now works for+o
users 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-tag
functionality (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
++nickname
style karma (karma.py
) - Bot-wide aliases (
!balias
inaliases.py
) - Support per-user (PM)
command-method
setting (commands
) dnsbl
module to loop up given IPv4 and IPv6 addresses in blacklists
Changed:
- "Core" modules (modules needed for base operation of bitbot) moved to
src/core_modules
and 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
/unlocked
github 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
/-M
args 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
NOTICE
events (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
!wikipedia
output (wikipedia.py
) !raw
and!perform
now support "human" formats (e.g./msg user message
)- Listing servers with
!servers
(stats.py
)
Changed:
- Complete refactor of
permissions
module - now with hostmask support - Big refactor of commands module
- Command aliases moved to their own module. Run
migration/v01.16.00-aliases.py
to migrate old aliases. - Karma is now stored per-user and you can give yourself karma. Run
migration/v01.16.00-karma
to migrate old karma. - Unique User-Agent (
utils.http.USERAGENT
) - Nickname hashed colourisation now matches weechat's default (
utils.irc
) ./bitbotd -m permissions -M master-password
moved to./bitbotctl command master-password
utils.http.Response.data
is now alwaysbytes
- use.decode()
/.json()
/.soup()
to.py
->tell.py
; move!to
to!tell
but add!to
as an alias- Sed edits are now cumulative (
sed.py
)
v1.15.0
Added:
- Optionally colourise nicknames when printed to log (
format_activity.py
andprint_activity.py
) - Show git branch in
!version
output (info.py
) - Stop/start REST API HTTPd when trying to reload all modules (
ModuleManager
andrest_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
!words
output (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__.py
out in to more separate files - Show channel mode status symbols when formatting
NOTICE
s (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.py
moved tobitbot-modules