知る人ぞ知る、いま話題のブラウザ拡張であるアレ。
これなに
- 先日ついに無課金では使えなくなってしまったTweetDeckが、なんとまた使えるようになる
- Chrome(Chromium系)とFirefoxで利用できる拡張機能
- ただし新TweetDeck(X Pro)ではなく、旧TweetDeckのほう
- もちろんフリーなアカウントでもOK
という、そんなことが本当に可能なのか?!ってなるやつ。でも可能なのである。少なくとも今は。
ざっくり仕組み
ブラウザの拡張なので、許可さえ与えれば基本的にはなんでもできる。
tweetdeck.com
へのアクセスをフックして、拡張機能が動く- 拡張の中身としては、
- 本来のページ(課金してね的なやつ)をまるごと消し去る
- 代わりに、古き良きTweetDeckのあの頃のHTML/CSS/JSを埋め込む
- 一部Cookieのやり取りやセキュリティ系ヘッダの差し替えも
という感じ。 この作者は旧TweetDeckのコードをたまたま手元にアーカイブしてたらしく、それを当時のまま使えてるとのこと。
拡張から読み出されるこの旧コードも、全部GitHubに上がってるので、不安があるならそのコードを読めばよいという。
そういうわけで、
- あなたのブラウザから
- 拡張機能を経由して
- あなたのアクセストークン(Cookie)を使い
- Twitter(X)社のAPIを叩いて
- 画面が表示される
ので、そういう意味での心配はない。
ただ、
- いつ使えなくなるかはもちろん不明
- 旧TweetDeck専用のAPIがあれば、すぐダメになるかもしれない
- そこに対して誰がアクセスしてたかってことは、ログに残っちゃうはず
というところだけが自己責任という感じ。
おまけ
せっかくの機会なので、この旧TweetDeckのコードを読んでみよう!(拡張の作者を疑ってるわけではなく、単に気になったので)
・・・と一瞬思ったけど、webpack
でバンドルされてるしミニファイされてるコードしかないので、まあ薄目でちょっとだけ。
本体のコードはこの状態で46000行もあったので、入社するわけでもないしちゃんと読むのは諦めた。
ライセンスコメントをざっと見た感じの顔ぶれ。
- jQuery + Sizzle.js: ご存知のアレ
-
- Sizzleは、jQueryの内部で使われてるDOMセレクター
-
- Flight: Twetter社がやってたBackboneみたいなWebフレームワーク
- Hogan.js: テンプレートエンジン
- jQuery ToolsでDateinputの拡張したり
- Typeahead: 投稿フォームでの入力補完かな?
- classnames: ご存知のアレ
- URI.js: URL文字列をこねこねするやつ
- xdm.js: JSON-RPCするやつ
- React + ReactDOM: ご存知のアレ
v16.6.1
だそうで
- eventsource.js:
EventSource
のポリフィル - object-assign:
Object.assign
のポリフィル - Apollo: コード内で
new ApolloLink
してた
ポリフィルのあたりに時代を感じる。jQuery + Flightではじまって、React化が進めてたって感じか。 ただ見た感じ、Reactよりも古な感じのコードがほとんどだった。移行しようとしてたけど、新TweetDeckのほうにリソースを割くことになり・・みたいな経緯と予想。
どうでもいいけど、個人的なUXとしては、旧TweetDeckのほうが圧倒的にサクサク動いてて好きやった。Reactで書かれててメンテしやすいかもしれないが、悲しくも動作がもっさりしてた新TweetDeckより。