mikutter TweetDeck plugin
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.mikutter.yml
Gemfile
LICENSE
README.md
home_timeline.js
mikuttdeck.rb

README.md

なんこれ

黒魔術を使ってUserStream亡き後のmikutterにリアルタイムっぽい更新を提供するプラグインです。

(ブラウザ自動化ツールSeleniumでTweetDeckを起動して、データを吸い上げてmikutterに提供します。あまり褒められたアレではないので、こっそり使ってください。)

使い方

プラグイン本体のインストール

$ mkdir -p ~/.mikutter/plugin; git clone https://github.com/takemar/mikuttdeck.git ~/.mikutter/plugin/mikuttdeck

bundle

追加の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へどうぞ。 @Takemaro_001@twitter.com でも大丈夫です。
    • 報告の前に既に解消されていないか確認してください(cd ~/.mikutter/plugin/mikuttdeck; git pullで最新の不安定版を受け取れます)