なげやりろぐ

フテイキコウシン

Twitter純正ブラウズなうスクリプト

Twitter版”今ココ見てる”がブックマークレットで公開されています。
その名もShare Bookmarklet


Sleipnirで同じようなことを実現するには”ぶらうずなう”スクリプトを導入するかTweet-Ticker Dockを設置してその中の機能(TTD-easy-Im-reading-now)を利用することで可能・・・でした。
しかし前者はベーシック認証方式であるため現在は利用出来なくなっていますし、後者はtest版のSleipnirを利用しているとTTD自体が上手く動作してくれないという問題があります。


ワタシは以前のTTDに同梱されていたeasy-Im-reading-nowスクリプトをOAuthでログインされた状態のままアクションとして利用できているので特に困ってはいなかったのですが、今後のこともあるので本家がこういうのを出してくれると安心ですよね。


ただ、Share Bookmarkletはリンク上で右クリしてから”ショートカットのコピー”をしてお気に入りやその中のリンクフォルダなどへ新規登録して利用できるんですけど、Sleipnirの場合だと他のモダンブラウザみたいに小窓が開いてはくれず、別タブで投稿用ページが開かれてしまいます。
まぁ投稿が終わると勝手に消えてくれる仕組みになっているのでそれでもかまわないんですけど、できれば小窓で処理したいなぁと。
そこでSuper Drag Extensionの強力なオマケ機能? であるSuperViewでなんとかできないかなーとつぶやいてみたところ、SleipnirAutoPagerizeのSITEINFOを精力的に作成/保守されているあの方が雛型を作ってくれました。
後は適当に手を加えて引用符でタイトルを括ってみたりSuperViewのサイズの最適化をしてみたり・・・

で、こんなんできました。

var ct = document.title.replace("(","(");
var doc = '“' + ct.replace(")",")") + '”';
sleipnir.API.ExecuteAction('SuperDragShowSuperView("http://twitter.com/share?text=' + encodeURIComponent(doc) + '&url=' + encodeURIComponent(location.href) + '",17,9999,50,650,320)');
追記

複数個の半角カッコがタイトル文字列に出現した場合、上記の処理では追いつかないという指摘をTwitterにていただいたので別なアプローチをしたものを以下に。

String.prototype.replaceAll = function (org, dest){
  return this.split(org).join(dest);
}
var ct = document.title.replaceAll('(','(');
var doc = '“' + ct.replaceAll(')',')') + '”';
sleipnir.API.ExecuteAction('SuperDragShowSuperView("http://twitter.com/share?text=' + encodeURIComponent(doc) + '&url=' + encodeURIComponent(location.href) + '",17,9999,50,650,320)');

それと些末なことではありますが、短縮されたアドレスの後方にコメント等を追記する場合には半角スペースを空けてから書き始めるようにした方がいいようです(全角スペースではない)
なぜかというと半角スペースがないとクライアントによってはアドレス部分のハイパーリンクと結合してしまい、コメントもリンク化されたりあるいはその逆もあるからです。
スクリプト側であらかじめタイトルの前方、ならびにアドレスのリンク後方へ半角スペースを空けることも容易ですが、常用されているクライアントでも常にそれを意識していただければと思いあえて付加しません。
また、コメントを追記しないのであればこのスクリプトにおいてはその辺を意識する必要はありません。

//追記ここまで


最初の方で少し変な処理をしていますが、これは半角カッコがタイトルの文字列内に存在すると上手く動作してくれなくなるためにやむをえず取った処置なのです。
Super Drag ExtensionおよびUser Action Extension必須です。任意の名前+拡張子.jsでplugins/scriptsへ保存してください。
アクション登録はいろんな手段がありますのでお好きなように。

  • 後はTwitterにポストしたいページでアクションを発動するとこんな感じになります。


例によってSagittarius Dock用にアイコン画像を作りました*1ので良ければどうぞ→   

*1:というかファビコンのパクリ