𝕏(Twitter)のホームで最新ツイートを自動で取得するためのユーザースクリプト
はじめに
タイトルのスクリプト自分用に作っていたので共有です。
https://greasyfork.org/ja/scripts/473371-twitter-autoload
取り急ぎ公開用にこまごま変更したので、おかしな動作あればコメントいただければ修正いたします。
なおコードは以下に置いているので好きにいじってもらっても構いません。
https://github.com/natsuyasai/TwitterAutoReloadScript
動作する画面
- ホーム画面(/home未指定) https://twitter.com
- ホーム画面 https://twitter.com/home
- 通知画面 https://twitter.com/notifications
- 検索画面 https://twitter.com/search
機能など
ステータス
一番左の●印です。
緑なら稼働中
灰色なら停止中
停止中となる条件は以下通りです。
- ページをスクロールしている
(一番上に戻ったときは再度稼働中に戻ります) - ON/OFFボタンで任意に切り替えた時
- 下記以外のページに移動したとき(下記ページに戻ると再度有効になります)
なお●部分を押下すると、右側にあるコントロールの表示/非表示を切り替えられます。
切り替えボタン
ON/OFF表示のボタンです。
ONの時に押下すると一定周期の更新を開始、OFFの時に押下すると一定周期の更新を停止します。
またステータスの切り替わりとも連動します。
そのため、更新無効時(スクロール中など)はONにできません。
周期更新
更新周期の変更を行います。
以下の周期が設定可能です。
5秒
10秒
15秒
45秒
1分
2分
3分
5分
10分
仕組み
𝕏のホーム画面では、以下キャプチャのように「おすすめ」や「main(リスト)」が並んでいるタブのうち、アクティブなタブの要素のアトリビュートが「aria-selected="true"」となっています。
そのため、指定した周期でこのタブ領域のaタグ要素うち、「aria-selected="true"」となっている要素に対してclickイベントを発火させるようにしています。
おまけ1
vivaldiの用に複数タブを1画面に表示できれば、複数リストを同時に確認できてdeckのように使えたりします。
(Edgeでも最新で2個まで同時に表示できるようになっています)
あとは「Control Panel for Twitter」や「Stylus」あたりを入れて色々見た目も調整していければほどほどに使える状態にはなるかと。
おまけ2
(2023/08/20追記)
タブタイリングで表示したとき、各タブに投稿欄とサイドバーが表示されるのが邪魔でした。
そのため、指定したタブを表示しているとき以外は投稿欄とサイドバーを非表示にするスクリプトも作成しました。
こちらは独自要素があったりメインタブを指定するUI等ないので、greasyforkでは公開してません。
以下URLから取得後、各自スクリプトの上部にある「EnableTabName」に自身が指定したいタブ名を設定してもらえれば動くと思います。
https://github.com/natsuyasai/RemoveUnnecessaryAreaForTwitterScript/raw/main/RemoveArea.user.js
Discussion