黒魔術を使ってUserStream亡き後のmikutterにリアルタイムっぽい更新を提供するプラグインです。
(ブラウザ自動化ツールSeleniumでTweetDeckを起動して、データを吸い上げてmikutterに提供します。あまり褒められたアレではないので、こっそり使ってください。)
$ mkdir -p ~/.mikutter/plugin; git clone https://github.com/takemar/mikuttdeck.git ~/.mikutter/plugin/mikuttdeck
追加のgemが必要です。mikutter.rb
の存在するディレクトリでbundle install
してください。bundleでない方はgem install selenium-webdriver
です。
Seleniumで使えるようにブラウザを準備します。Google Chromeの場合はChromeDriver、Firefoxの場合はgeckodriverが必要です。Seleniumのドキュメントも参考にしてください。
mikutterを起動すると、設定ダイアログにそれっぽい項目が現れます。ブラウザを指定してからチェックを入れてください。
ブラウザは"chrome
"とか"firefox
"てな感じで指定してください。(to_sym
してSelenium::WebDriver.for
に渡されます)
現状、ブラウザは起動直後にTweetDeckにログインした状態になっている必要があります。プロファイルとかをいい感じに弄ってうまくやってください。ごめんなさい。UserConfig[:mikuttdeck_selenium_option]
を設定しておくとSelenium::WebDriver.for
の第2引数に渡されます。
- Fifefoxの場合、あらかじめ
about:profiles
で"mikutter
"のような適当な名前でプロファイルを作っておいて、mikutterコンソール(Alt+xで開きます)からUserConfig[:mikuttdeck_selenium_option] = {profile: 'mikutter'}
を実行します。 - Google Chromeは
option
にSelenium由来のオブジェクトを渡す必要がありますが、こういうのをUserConfig
に渡すのは禁止されているので、ダメです。mikutterコンソールから次を実行するととりあえず動く可能性があります(試していないのでわかりません)。
Plugin::Mikuttdeck::Deck.new(
:chrome,
desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome(
'chromeOption' => {
'args' => ['--user-data-dir=/home/<username>/.confg/google-chrome/mikutter']
}
)
).start
- 人柱精神でおねがいします。
- 現状Homeタイムラインのみ吸っています。とはいえさすがに通知くらいは対応したいですね。
- 既知の問題として、mikutterの終了時にブラウザが終了しません。
- とりあえず動くようにしたレベルなので、当面内部実装は非互換の変更の可能性があります。依存したプラグインを書いたりする場合は注意してください。
- 内部では
GET statuses/lookup
とかいうこんなことでもなければ使わなかったようなエンドポイントを呼んでいます。rate limitに注意。(なお、そういうわけでREST APIが死ぬと使えなくなります) - 具体的な挙動としては、TweetDeckから
tweet_id
のリストだけ吸い上げて、それをRESTに投げてPlugin::Twitter::Message
オブジェクトを得てupdate
とかのイベントを発行しています。 - 不具合報告はIssuesへどうぞ。 @[email protected] でも大丈夫です。
- 報告の前に既に解消されていないか確認してください(
cd ~/.mikutter/plugin/mikuttdeck; git pull
で最新の不安定版を受け取れます)
- 報告の前に既に解消されていないか確認してください(