Skip to content

Instantly share code, notes, and snippets.

@iranika
Last active February 25, 2019 00:33
Show Gist options
  • Save iranika/b368433062d219295749422844df491f to your computer and use it in GitHub Desktop.
Save iranika/b368433062d219295749422844df491f to your computer and use it in GitHub Desktop.
//要素監視のやつ
//https://developer.mozilla.org/ja/docs/Web/API/MutationObserver
var target
var ob
var option
//tweetdeckのサイトはwindowやdocumentのonloadが何故か動かないので起動タイマーで暫定処置
var hoge = setInterval(function(){
console.log("observe starting..")
//監視対象のエレメント取得
target = document.querySelector("#container > div > section:nth-child(1) > div > div:nth-child(1) > div.js-column-content.column-content.flex-auto.position-rel.flex.flex-column.height-p--100 > div.js-column-scroller.js-dropdown-container.column-scroller.position-rel.scroll-v.flex-auto.height-p--100 > div")
ob = new MutationObserver(
record => {
//監視対象に変更があったら呼ばれる
record.forEach(recs =>{
//監視対象にノードが追加された場合の処理
if (recs.addedNodes.length >= 1){
recs.addedNodes.forEach(rec => {
//recは次のエレメントを指している
//container > div > section > div > div > div.js-column-content.column-content.flex-auto.position-rel.flex.flex-column.height-p--100 > div.js-column-scroller.js-dropdown-container.column-scroller.position-rel.scroll-v.flex-auto.height-p--100 > div > article
//newTweetEventにツイートテキストを渡す
newTweetEvent(rec.querySelector("div > div > div.tweet-body.js-tweet-body > p").innerHTML)
});
}
})
}
)
option = {
childList: true,
}
ob.observe(target, option)
clearInterval(hoge)
}, 5000)
//新規ツイートのイベント
function newTweetEvent(text){
if (text.match(/てすてす/)){
console.log("iranika.exeは動作を停止しました")
}else{
console.log("newTweet:" + text)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment