Age | Commit message (Collapse) | Author |
|
|
|
While loading a plugin in the manager using #load_botmodule_file this
will remember the directory of the file that is being loaded in
@next_plugin_path. In the plugin/BotModule initialization we set the
path in plugin_path of the plugin.
This was the only solution I could find to get this information in the
plugin. It is useful because this allows the plugin to know in which
directory it is located, it can then easily access data files stored
alongside the plugin.
Some built-in plugins (see #42) use the data/rbot/templates to copy
data files on bot load (see #repopulate_botclass_directory) into the
profile directory (~/.rbot/).
|
|
This moves the logger management thread/queue to a seperate singleton.
It removes the explicit stopping/restarting of the logging thread since
the thread should behave like a daemon thread anyway.
Still needs to be tested to work in daemonize.
|
|
|
|
Rename and improve karma plugin
|
|
Prior to this commit, rbot used a "karma" system for keeping
track of user points. This phrasing, while widespread, is
unnecessarily appropriationist.
This commit renames the plugin to a more neutral "points"
system, accomplishing exactly the same goal without using
culturally problematic language.
For more background please read: http://bit.ly/1MfLmce
|
|
|
|
|
|
|
|
|
|
* a new abstract class AbstractAccessor is the new base
for all concrete database implementations.
* a factory now, dynamically discovers those implementations
in the registry/ directory and will create the configured
type for the plugins.
* again: this makes db keys case-sensitive (aka 'the correct
way of doing things' -.-)
* re-added tokyocabinet
|
|
This removes the existing registries, ruby-bdb (Berkeley DB) and
tokyocabinet, instead it creates a new registry based on ruby
DBM.
Ruby-bdb has long since been abandoned in favor for rubys DBM
and tokyocabinet also has been ceased development since
2011 (for kyotocabinet).
|
|
Support OAuth2::Error braindead extension to StandardError and
wrap loading in an outer rescue to catch problems with the error
handling.
|
|
Don't trap them, rerise and let the bot handle them
|
|
|
|
Somebody should hang the ActiveSupport developers by their balls
with barbed wire. Their MissingSourceFile extension to LoadError
_expects_ a second argument, breaking the usual Exception interface
(instead, the smart thing to do would have been to make the second
parameter optional and run the code in the from_message method if
it was missing).
|
|
Since in ruby 1.9 Exception#to_str was removed, change it to to #to_s
|
|
The plugin fallback method is now passed the list of failures.
Failures themselves are encapsulated in their own data type, making it
easier to handle failures that should inform the user with something
more detailed than the classic 'usage' pattern.
It's still up to the fallback method to make use (e.g. echo) the
relevant messages.
|
|
|
|
If the whitelist is not empty, only load the specified plugins.
|
|
Refactor plugin scanning for cleaner distinction between core modules
and plugins.
|
|
into @core_module_dirs and @plugin_dirs
|
|
|
|
We provide two methods that make it more simple and elegant for
botmodules to define paths relative to the bot's own directory
(botclass) and to the BotModule's (assumed) non-registry directory.
The first method is Irc::Bot#path(), which joins its arguments with the
botclass. This method can be used to access datafiles in the bot
directory with a much cleaner syntax; and since it uses File.join, the
resulting paths are also properly formatted on each platform, which
doesn't hurt.
Each BotModule now also carries a dirname() method that should return the
directory under botclass that holds the BotModule's datafiles. dirname()
defaults to the BotModule's name(), but it can be overridden, e.g. for
backwards compatibility (see the patch for the quotes plugin), or
for BotModules that share their datafiles.
Datafiles can be accessed using the BotModule#datafile() method that
joins the botclass, the dirname() and whatever other argument is passed.
|
|
|
|
|
|
|
|
each plugin uses its own po file, no change required for plugin source, Rakefile,
plugin loader and gettext loader are modified to adjust to the change
|
|
This reverts commit 33c336af346dc08b4f4f4951dd6eae7150cef481.
|
|
no modification in plugin source is needed, plugin loader is modified to automatically
bind to the plugin's text domain
updatepo task is modified to maintain per-plugin po file
po files are updated and cleaned
|
|
|
|
|
|
|
|
|
|
|
|
By convention, ignored messages will only be delegated to plugins with
negative priority, while fake messages will only be delegated to plugins
with positive priority.
|
|
|
|
|
|
|
|
|
|
|
|
BotModule
|
|
|
|
|
|
BotModule class
|
|
|
|
|
|
method
|
|
|
|
|