書くこともないので凄くニッチなスクリプトを公開します。
ディスコードでは誰かが入力中の時、下に「XXXが入力中」と出てきます。
これを監視して誰かが書き込もうとしているときにビープ音を鳴らすようにします。
これはブラウザで動かすことを想定してますが、
と出るように、理解できないものを使うべきではないです。
スクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
function mikke(node){ if(node.innerHTML){ console.log("find "+node.innerHTML) if(node.innerHTML.indexOf("XXXX")!==-1){ new Audio("data:audio/wav;base64,"+sound).play(); } } } function nyuryoku(node){ if(node!=null && node.querySelector(".text-1y-e8-")!=null){ //「xxxが入力中...」時にyyyが増えた場合のオブザーバー var observer = new MutationObserver(function (rs, obs) { rs.forEach(record => { Array.from(record.addedNodes).forEach(node => { mikke(node); }); }); }); observer.observe(node.querySelector(".text-1y-e8-"), { childList: true ,characterData: true }); mikke(node.querySelector("strong")); } } //「xxxが入力中...」が増えた場合のオブザーバー var observer = new MutationObserver(function (rs, obs) { rs.forEach(record => { Array.from(record.addedNodes).forEach(node => { nyuryoku(node); }); }); }); observer.observe(document.querySelector("form"), { childList: true }); //base64の音 var sound = "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"; |
discordの「入力中…」部分は追加、変更、削除のDOM操作をされるため、追加の監視と変更の監視を行っています。
問題としては4人以上が同時に書き込もうとしていると「複数人」となって読み取れないことです。まぁ仕様上しかたない。
あと用途はよくわからないです。不定期な早い者勝ちイベントを有利にするとか?
ぜひ使わせて頂きたいのですが、
edgeのコンソールにそのまま貼り付けただけだと、名前の表示は出るのですがビープ音がでない状況です。
コードの書き方など分からないと音声ファイルくっつけるのは難しいでしょうか?
なにか簡単な方法で鳴らす事ができるならぜひ教えていただきたいです。
そのままだと
if(node.innerHTML.indexOf(“XXXX”)!==-1){…
の部分で「XXXXという名前の人」を判定しているため音はならないです。
XXXXの部分を誰かのニックネームに変えてください。
特定の誰かを対象としない場合は以下のようにコメントアウトすればいいです。
//if(node.innerHTML.indexOf(“XXXX”)!==-1){
new Audio(“data:audio/wav;base64,”+sound).play();
//}