きっかけ
コード
2021/12/11時点1では、下のコードをdevtools
で入れて @sytkmをフォローすれば、タイムラインに @sytkmのツイートが出てきたときに自動でいいねされます。
5行目の"sytkm"
ってところを任意のscreen_name
に変えればその人になるのでお試しあれ。
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if(mutation.addedNodes.length>0){
const target = mutation.addedNodes[0];
if(target.querySelector('[tabindex="-1"]').href.replace(/^.*\//g, "")=="sytkm"){
target.querySelector('[data-testid="like"]').click();
console.log("like!");
};
}
});
});
const element = document.querySelector('[aria-label="タイムライン: ホームタイムライン"]').firstElementChild;
const config = {
childList:true
};
observer.observe(element, config);
解説
DOMの変更を監視できるMutationOvserver
を使いました。
config
でchildList:true
とすることで新しく追加されるDOMを確認し、mutation.addedNodes[0]
でその新規追加DOMを指定。
sytkm
のツイートならいいねボタンのDOMをclick()
しいいねするように。
思ったこと
Twitter WebはReactを使っているので該当のDOMを選択するのが大変でした。
ユーザーの判定はtabindex="-1"
となっているDOMのhref
が運良くツイートユーザーのURLだったのでそこで判定しました。
ちょっと構成変わったら使えなくなるのと現時点でも読み込みが遅いとエラーが出るのが微妙かも。
とりあえず使えるので投稿。
-
TwitterはよくUIが変わっているイメージがあるので。 ↩