Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

先月に、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バックエンドでリアクションをすることができるようなったりと行った機能追加や細かい不具合修正などがあるので、特にプラグインの互換性が平気そうならアップデートしてみてはどうでしょうか。

attakei
東京湾岸にて勤務中。 【公私】主にインフラ・サーバサイドWeb担当。Pythonista 【他】徒歩バカ
nijibox
ニジボックスの開発は、社内のUI/UXデザインチームと連携をとりながらワンストップで行う開発支援サービスです。Reactを始めPHP(Laravel)・Ruby on Rails、Swift・Kotlinを使った開発実績も多く、バックエンドからアプリまで幅広く対応しています。現在、リクルートの大規模サービスでのモダン開発に興味のあるフロントエンドエンジニアを積極採用中です!
https://www.wantedly.com/companies/nijibox
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away