LoginSignup
1
2

More than 5 years have passed since last update.

Errbot 5.0.0における更新点についての自分用メモ

Posted at

先月に、Errbotがメジャーバージョンアップしてました。

変更箇所については、オリジナルを見てみるのが一番早いのですが、確認しやすそうな部分を適当にピックアップして動作確認してみました。

サブコマンド実装方式の拡張

Add support for cascaded subcommands (cmd_sub1_sub2_sub3) (thx Jeremiah Lowin)

example.py
from errbot import BotPlugin, botcmd


class Example(BotPlugin):
    @botcmd
    def git_pull(self, msg, args):
        # これを、`!git pull` で呼ぶことは、今までもできた
        pass

class Example2(BotPlugin):
    @botcmd
    def git_pull_all(self, msg, args):
        # これを、`!git pull all` で呼ぶことができるようになった
        pass

上記のExample.git_pullを呼ぶときは、!git_pull_allの他に!git pullとサブコマンドらしく呼ぶことができます。
今までのバージョンでは、git_pull_allを呼ぶときの形式は、!git_pull_allまたは!git pull_allのどちらかで、1個めのアンダースコアだけがコマンドとサブコマンドの区切りとして機能していました。

バージョン5.0.0からは、すべてのアンダースコアでサブコマンドとして区切りることができるのか、!git pull allでも呼べるようになっています。

ただし、git_pull,git_pull_allが両方あると、!git pull allに対して反応するのはgit_pullの方みたいでした。
きちんと細かく処理を分けていくことで、より有効活用できる仕様のようです。

プラグインのシンボリックリンクサポート

You can now use symbolic links for your plugins

文字通りですが、プラグインの読み込み時にシンボリックリンクをサポートするようになりました。

+ bot_root/
  + plugins/
    + example/ <folder>
    + plugin_A <symlink:../../plugin_A>
+ plugin_A/
  + plugin_A.plug
  + plugin_A.py

このようなフォルダ構成だった場合に、シンボリックリンクが置かれているplugin_Aもver5.0.0では読み込むようになっています。
普段の自分の運用スタイルでは、submoduleにしてしまったりすることのほうが多いので、いまいち使い所を捉えられていません。Issueとか見ればわかるのでしょうか。

Textバックエンドがreadlineをサポート

Text backend: readline support (thx Robert Coup)

readlineをサポートするようになったことで、errbot -TによってターミナルでのCLIでの会話で、↑↓キーで直前のコマンドをかんたんに呼び直せるようになりました。
プラグインの開発をするときにはローカルでtextバックエンドを使うことが多いのですが、よく使うbotコマンドである!plugin reload PluginNameなどのplugin制御系を繰り返し命令するのが非常に楽になりました。
いろいろと、デバッグがはかどります。

(締めの文章)

パッと見た感じだと、目を引く更新はこのあたりでした。
その他にもSlackバックエンドでリアクションをすることができるようなったりと行った機能追加や細かい不具合修正などがあるので、特にプラグインの互換性が平気そうならアップデートしてみてはどうでしょうか。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2