v1.10.0
Added:
- Outbound message filtering (
message_filter.py
) - Mid-callback command permission checks ('event"check_assert"')
connected-since
on stats endpoint- IRCv3: draft/event-playback
auto-github-cooldown
to prevent duplicateauto-github
s in quick successionvote.py
- IRCv3:
ircv3_botignore.py
to ignore users withinspircd.org/bot
- Catch and humanify
!loadmodule
"not found" exception - cross-channel/network relay (
relay.py
) - Option to allow anyone to
!startvote
- IRCv3: CAP dependency system
- IRCv3: labeled-response + echo-message to correlate echos to sends
deferred_read.py
Changed:
- Only strip 2 characters (
++
or--
) from the end of karma - Track CHANMODE type B, C and D (not just type D)
- 'x saved a duck' -> 'x befriended a duck'
- IRCv3: CAP REQ streamline for modules
- IRCv3: SASL failure defaults to being "hard" (disconnect/crash)
auto-title
,auto-youtube
,auto-imgur
etc now work in/me
- Move truncation logic from
SentLine
toParsedLine
- Move
!help
logic to it's own file and rework it to be more user friendly - Get
"city, state, country"
from geocoding inlocation.py
, use inweather.py
- Convert IRC glob to regex, instead of using fnmatch
EventManager
calls can only come from the main thread- IRCv3:
labeled-response
now depends onbatch
format_activity.py
now only shows highest channel access symbol
Fixed:
KeyError
when stsport
key not present- lxml wasn't in requirements.txt but it should have been
- Any CRITICAL in read/write thread now kills the main thread too
Database.ChannelSettings.find
invalid SQLbirthday.py
's year no longer .lstrip("0")ed- IRCv3: pay attention to our own msgids (
ircv3_msgid.py
) - catch and WARN when trying to remove a self-mode we didn't know we had
until_read_timeout
->until_read_timeout()
PROTOCTL NAMESX
should have been send_raw() not send()- IRCv3: handle
CAP ACK -<cap>
- IRCv3: handle
CAP ACK
in response toCAP REQ
that came from outsideircv3.py
Removed:
!set
/!channelset
/!serverset
/!botset
(replaced with!config
)bytes-read-per-second
andbytes-written-per-second
from stats endpointupc.py