ラベル Ruby の投稿を表示しています。 すべての投稿を表示
ラベル Ruby の投稿を表示しています。 すべての投稿を表示

2014/09/20

[Debian, Ruby]Debian(wheezy) に rbenv で ruby2.1.3 をインストール

これだけ。

# 必要パッケージ取得
sudo apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev rbenv ruby-build

# rbenv 初期設定
rbenv init
echo eval "$(rbenv init -)" >> .bashrc

# 2.1.3 のパッケージ URL を指定したファイルを作成
vim 2.1.3
cat ./2.1.3
install_package "yaml-0.1.4" "http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz"
install_package "ruby-2.1.3" "http://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.3.tar.gz"

# 2.1.3 インストール
rbenv install ./2.1.3

# ruby コマンドで 2.1.3 が呼び出されるようにする。
rbenv global 2.1.3

2014/07/21

[Ruby, Mikutter] mikutter プラグイン「ゆかりが読む」を作った

mikutter プラグイン「ゆかりが読む」を作った

mikoto2000/mikutter-yukari : https://github.com/mikoto2000/mikutter-yukari

requirements 厳しすぎるけどまぁそれはそれ。

とりあえず自分の環境で動いたので公開。 ツイートを、音声配信サーバに投げて音声化し、再生します。

音声配信サーバとしては「VOICEROID+ 結月ゆかり」がインストールされた Windows7 端末を想定。

TODO

  • 先頭の twitter id とか末尾のハッシュタグとかは、読み上げ的には必要ないので無視するのがよいかなぁ。
  • ニュースツイート(nhk_news とか) のリンクは、リンク先をスクレイピングして読みあげたい。

mikutter plugin tips

本プラグインを作るにあたって、設定のデフォルト値の指定方法について調べたのでメモ。

プラグインのデフォルト値

プラグインのデフォルト設定値を作りたい場合、「on_boot」内で空チェックして、空ならデフォルト値設定とするのが良いようだ。

参考資料

VLC の曲名を nowplaying できる mikutter プラグイン書いた - polamjaggy : http://polamjag.hatenablog.jp/entry/2013/11/18/035402

2014/07/19

[Ruby, Mikutter] Mikutter プラグインを作ってみる。

はじめに

プラグインの書き方解説ページの「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 で試した。 あとはコマンドと引数を変更すればよいだけ。 外部プログラムが呼べてしまえば、もう何でも出来ますね!