あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

mikutter Advent Calendar 11日目〜プラグインでダイアログを活用してみよう〜

mikutter Advent Calendar 11日目です。Advent Calendarばっかりやっててコミケの準備がさっぱりなのですが、それはいいんでしょうかね。

さて、今回はmikutterプラグインでちょっとした文字入力が出来るダイアログを呼び出してみましたので、その方法を紹介します。ユーザーに対して何かしらの入力を求めてから、入力された文字列を元にツイートが出来るようになると、プラグイン作成の幅が広がると思います。

ダイアログの呼び出しにはGTK::Dialogを利用します。年齢の入力をユーザーに求めて、年齢をツイートするプラグインの例を以下に示します。コメントをこまごま入れたので、それを追うと何をしているのかがわかりやすいと思います。

Plugin.create :mikutter_dialogtest do
  command(:dialogtest,
    name: 'ダイアログのテスト',
    condition: lambda{ |opt| true },
    visible: true,
    role: :timeline) do

    # ダイアログを作成
    dialog = Gtk::Dialog.new("ダイアログのタイトル",
                             $main_application_window,
                             Gtk::Dialog::DESTROY_WITH_PARENT,
                             [ Gtk::Stock::OK, Gtk::Dialog::RESPONSE_OK ],
                             [ Gtk::Stock::CANCEL, Gtk::Dialog::RESPONSE_CANCEL ])
    # ↑Gtk::Stock::CANCELの行を削ると、OKボタンだけになったりする
    # Gtk::Stockシリーズを色々入れてみると楽しいかも

    # ラベルを作成
    dialog.vbox.add(Gtk::Label.new("あなたの年齢を入力してください"))
    # 入力ボックスを作成
    input_box = Gtk::Entry.new
    dialog.vbox.add(input_box)
    # すべてを表示(よくわかってない)
    dialog.show_all

    # dialog.runでダイアログが表示される。結果をresultに受け取る
    result = dialog.run
    nenrei = nil
    # OKボタンが押された時の処理
    if result == Gtk::Dialog::RESPONSE_OK
      nenrei = input_box.text
    end
    # ダイアログを破棄
    dialog.destroy

    # キャンセルされず、値が入力されていたら処理を実行する
    if nenrei != nil
      Service.primary.post(:message => "わたしの年齢は#{nenrei}歳です。")
    end

  end
end

プラグインを呼び出すと、次のようなダイアログが表示されます。入力してOKボタンをクリックすると、年齢がツイートされます。

f:id:Akkiesoft:20131210153641j:plain

いかがでしょうか。それほど長ったらしくコードを書かなくても、入力ボックス付きのダイアログが利用できることがわかりました。

さて、これを応用しつつ、ぺんぎんさんの「卒業証明書を発行するmikutterプラグイン」( https://gist.github.com/penguin2716/5131574 )をベースにして「借用証を発行するプラグイン」を作成しました。このプラグインは、TL上の誰かからお金を借りていることを証明するツイートが簡単に出来るというすぐれものです。記者会見の前にこのプラグインでちゃっちゃと借用証を作成して、ドヤ顔で報道陣に披露してみてください。コラ画像素材になること間違いなしです。

https://github.com/Akkiesoft/mikutter_shakuyoushou

「借用証を発行するプラグイン」を使用すると、次のようなツイートが一瞬ででき上がります。

f:id:Akkiesoft:20131210153713p:plain

お金を借りている相手の人のツイートを選択して、プラグインを呼び出して使用します。金額の指定には、冒頭で解説した入力ボックスつきダイアログを使用します。ユーザーは金額を入力するだけです。簡単ですね。

なお、このプラグインは"お金を借りている人"が利用するものですので、使用できる人はごくわずかなのではないかと思います。私が近場で知る限りでは2名と某知事くらいです。

免責事項ですが、このプラグインを用いたことにより何らかのトラブル等が発生しても、作者である私は一切責任を負いません。また、関係各所への申請等にもご利用いただけません。あらかじめご了承の上ご使用ください。ジョークプラグインです。