hogashi.*

日記から何から

拡張機能「twitter画像原寸ボタン」v3.0公開

 拡張機能twitter画像原寸ボタン」 v3.0 を公開しました。(追記 20200203: 審査に時間がかかっているので 1週間以上反映されないこともあるかもです)

変更点
  • Enter キーで原寸表示をやめました
    • そんなに評判もよくない上に、誤操作になりやすいため
    • (追記 20200203) ヘビーに使っている方も居るようなので、以降の新規インストールではデフォルトoff(更新では変化なし)とかにして復活させようかと思っています。また公開したら記事を書きます
  • その他は機能的な変更はないですが、開発の方法?を大きく変えました

 操作確認は(手元の Chrome で)ひと通り行ったものの、何かあって素早く修正できないようなら前のバージョンに戻そうと思います。

twitter画像原寸ボタンとは

 Twitter 公式 Web / TweetDeck で、画像ツイートにその原寸画像を開くボタンをつける拡張機能です。押すと新しいタブで(複数枚のときは複数タブで)開きます。

 Chrome ウェブストアからインストールできます。

chrome.google.com

 Greasemonkey, Tampermonkey などの場合は以下のリンクからインストールできます。

技術的な話題

 TypeScript を使いたいし、コピペっぽくなる箇所もいくつかあるので、うまいことできないかといろいろやっていました。単にモジュールに分けていって import しまくると完成する(した)のですが、実は monkey 系用の User Script も自動で生成したくて、その上 User Script の冒頭を誰でも(コードの知識が無くても)編集できるようにしたかったので、 User Script の冒頭に Webpack の色んなコードが登場してしまうと困る、というので試行錯誤しました。結果、メインのファイルは User Script になることを見越したような 1ファイルで書き、 tsc にかけることで User Script にもなる、というつくりになりました。 Chrome Extension は minify とかしてはいけないことになっているので(攻撃コードとかが埋め込まれても気づきやすくするため?のはず) minify しない設定にしたり(そのせいで Tree Shaking されなくて不便)、結構イレギュラな開発スタイルになっています。一番やばいのは User Script に落とす段階で正規表現/^export / を削除してそのままブラウザで動く JavaScript コードにしているところで、こうしないと TypeScript が User Script の冒頭に Webpack よろしく自動生成コードを入れてしまうのでした。とにかく設定を冒頭において見やすくするのが一番難しい。ちなみに他にも、 Jest でテスト / GitHub Actions で Pull Request をテスト / Renovate でパッケージをアップデートしまくるなどの活動を経ての公開でした。

 不具合などあれば Twitter @hogextend などにどうぞ。