はじめに
プラグインの書き方解説ページの「5 STOT 形式でコピー」を写経。
参考資料
Writing mikutter plugin : http://toshia.github.io/writing-mikutter-plugin/#sec-5
$ cd ~/.mikutter/plugin
$ mikutter.rb generate stot
$ mikutter.rb spec stot/
$ cd stot
$ vim stot.rb
...で、こんな感じ。
$ cat .mikutter.yml
---
slug: :stot
depends:
mikutter: 3.0.3
plugin: []
version: '1.0'
author:
name: stot
description: Copy to clipboard with STOT format.
$ cat stot.rb
# -*- coding: utf-8 -*-
Plugin.create(:stot) do
command(:copy_as_stot,
name: 'STOT形式でコピー',
condition: Plugin::Command[:HasOneMessage],
visible: true,
role: :timeline) do |opt|
message = opt.messages.first
screen_name = message.user[:idname]
Gtk::Clipboard.copy("#{screen_name}: #{message.to_s} [https://twitter.com/#{screen_name}/status/#{message.id}]")
end
end
つぎに
ツイートの本文を外部プログラムに渡すプラグインを作ってみる。
探せば有りそうと考えてはいけない。
参考資料
Rubyから外部プログラムを起動 - None is None is None : http://doloopwhile.hatenablog.com/entry/2014/02/04/213641
$ cd ~/.mikutter/plugin
$ mikutter.rb generate runWith
$ mikutter.rb spec runWith/
$ cd runWith
$ vim runWith.rb
...で、こうなる。
$ cat .mikutter.yml
---
slug: :runWith
depends:
mikutter: 3.0.3
plugin: []
version: '1.0'
author:
name: runWith
description: ツイートの内容を外部プログラムに、実行する。
$ cat runWith.rb
# -*- coding: utf-8 -*-
require "open3"
Plugin.create(:runWith) do
command(:run_with,
name: 'echo to ~/tmp/echo.txt',
condition: Plugin::Command[:HasOneMessage],
visible: true,
role: :timeline) do |opt|
message = opt.messages.first
Open3.capture3("echo '#{message.to_s}' > ~/tmp/echo.txt")
end
end
とりあえず echo で試した。 あとはコマンドと引数を変更すればよいだけ。 外部プログラムが呼べてしまえば、もう何でも出来ますね!
0 件のコメント:
コメントを投稿