All notable changes to this project will be documented in this file. To the full project is at the Github Repo. This project adheres to Semantic Versioning. This change log follows guidelines at this site.
- Actual change log tracking
- Chat protocol plug-in framework that reads from
protocols
directory - Protocol-agnostic
Message
andRoom
classes with methods inprotocols.py
- XMPP plug-in (based on Jabberbot) at
protocols/sibyl_xmpp.py
- Matrix plug-in at
protocols/sibyl_matrix.py
- Command line client plug-in at
protocols/sibyl_cli.py
- Socket plug-in at
protocols/sibyl_socket.py
- E-mail protocol at
protocols/sibyl_email.py
- Decorators: botcon, botdiscon, botrecon, botdown, boterr, botpriv, botgroup
- Ability to specify "chat_ctrl" cmds with
@botcmd(ctrl=True)
- Ability to execute chat commands in a separate thread with
@botcmd(thread=True)
- Added
freq
andthread
args to@botidle
- Made
bot.send()
andbot.del_hook()
threadsafe - New chat cmd "tell" in
room.py
to give messages once a user joins the room - New chat cmd "about" in
sibylbot.py
to give info about the bot - New chat cmd "trigger" in
room.py
to add chat "cmds" that just echo text - New chat cmd "alias" in
general.py
to add bash-like aliases for cmd strings - Checking for duplicate plugin (file) names
- Checking for duplicate config options from different plugins
- New config option
enable
to enable only a specific list of plugins - New config option
disable
to disable plugins (supersedesenable
) - New config option
help_plugin
that displays plugin names in help list - New config options
log_requests
andlog_urllib3
to enable logging - New config options
persistence
andstate_file
for use withbot.add_var
- New config option
general.config_room
to disableconfig
command in rooms - New config option
room.cross_proto
to disable usingroom
commands across protocols - New config options
log_time
andlog_lines
for thegeneral.log
cmd - New config option
room.trigger_file
for storing triggers - New config option
general.alias_file
for storing aliases - New config option
rename
for renaming chat commands - New config options
idle_freq
,idle_time
,idle_count
- New config option
xbmc.timeout
- Disabled
stdout
; all plugins should use logging instead - Plugins can specify dependencies as a list via the
__depends__
variable - Plugins can specify "wants" as a list via the
__wants__
variable - New
@botconf
keypost
for validating against other config options - Some basic unit tests (more to follow)
- Support for running multiple protocols in the same sibyl instance
- New class
Password
inlib/password.py
for obfuscating config options from theconfig
chat cmd - New class
Log
inlib/log.py
to automatelogging.Logger
names - New started file for devs writing protocols in
protocols/skeleton.py
- Added new
example
dir for user and dev examples - Added example plugin
example/alarm.py
- Added example configuation file
example/sibyl.conf
- Added example of python threading
example/thread.py
- Some
room.py
commands (all
,join
,leave
,say
) now accept a protocol name - Sibyl now calls part_room() for all rooms at bot shutdown
- License changed from GPLv2 to GPLv3
- All decorators are now in
lib/decorators.py
- Chat commands now receive their args as a list (possibly empty)
- Quote blocking now works for all commands (also preserves capitalization)
- Decorator:
botpres
is nowbotstatus
- Moved
config.py
,decorators.py
,protocol.py
,sibylbot.py
,util.py
to dirlib
- Moved
sibyl.init
andsibyl.sh
to dirinit
- Pinging is now enabled by default for xmpp
- If a @botidle hook raises an exception, it will be disabled forever
- The
reboot
command no longer requires init setup (now works entirely inside python) - Chat commands are now case insensitive
- Config names now automatically start with the name of the plug-in (e.g. xbmc.ip)
- The
config
command automatically obfuscates any config option whose name ends withpassword
- Rebuilding the library is now done in a separate (non-blocking) process
- Renamed plugin
muc.py
toroom.py
- The
prev
command fromxbmc.py
now jumps to playlist position instead of using the JSON-RPC built-in - Sibyl now catches
SIGTERM
and exits cleanly - All imports must now start with
sibyl
- The
log
command now has log viewing functionality withtail
andtrace
- Defaults changed for
bookmark.file
,library.file
,note.file
,state_file
- Plugins that read/write files now use UTF-8
- Users can now specify protocols, rooms, and plugin names in the black/white list
- Refactored
jabberbot.py
intoprotocols/sibyl_xmpp.py
andlib/sibylbot.py
v5.0.0-beta - 2016-05-18
- Recursive cmd plug-in search
- Option
rpi_ip
toxbmc_ip
- Switch back from pysmbclient to pysmbc
v4.0.0-beta - 2016-04-04
- Chat command plug-in framework
- Additional decorators
v3.0.0-beta - 2016-03-30
- Actual config file
v2.0.0-alpha - 2016-01-30
- Custom
jabberbot.py
- Change from
pysmbc
topysmbclient
v1.0.0-alpha - 2015-06-26
- Refactoring into
sibylbot.py
v0.0.0-alpha - 2015-06-22
- Basic chat bot for controlling XBMC in
sibyl.py