Web虎牙自動(dòng)發(fā)彈幕

代碼如下

const script = document.createElement("script")
script.innerHTML = `
  function fireKeyEvent(el, evtType, keyCode) {
    var doc = el.ownerDocument,
      win = doc.defaultView || doc.parentWindow,
      evtObj;
    if (doc.createEvent) {
      if (win.KeyEvent) {
        evtObj = doc.createEvent('KeyEvents');
        evtObj.initKeyEvent(evtType, true, true, win, false, false, false, false, keyCode, 0);
      }
      else {
        evtObj = doc.createEvent('UIEvents');
        Object.defineProperty(evtObj, 'keyCode', {
          get: function () { return this.keyCodeVal; }
        });
        Object.defineProperty(evtObj, 'which', {
          get: function () { return this.keyCodeVal; }
        });
        evtObj.initUIEvent(evtType, true, true, win, 1);
        evtObj.keyCodeVal = keyCode;
        if (evtObj.keyCode !== keyCode) {
          console.log("keyCode " + evtObj.keyCode + " 和 (" + evtObj.which + ") 不匹配");
        }
      }
      el.dispatchEvent(evtObj);
    }
    else if (doc.createEventObject) {
      evtObj = doc.createEventObject();
      evtObj.keyCode = keyCode;
      el.fireEvent('on' + evtType, evtObj);
    }
  }
   
  let t = 0
  let timer = null
  let content = null
  let Min = 10000
  let Max = 12000
  let time = Min
  window.onkeydown = e => {
    if (e.keyCode === 18) {
      if (t++ % 2 === 0) {
        console.log('彈幕開(kāi)始')
        new Promise((resolve, reject) => {
            if (window.confirm('自定義彈幕請(qǐng)點(diǎn)擊確定饰序,自動(dòng)彈幕模式請(qǐng)點(diǎn)擊取消')) {
              content = window.prompt('請(qǐng)輸入自動(dòng)發(fā)送的彈幕內(nèi)容')
            }
            resolve(content)
        } ).then(res => {
          const hh = () => {
            timer = setTimeout(() => {
              const target = document.querySelector("#pub_msg_input")
              let nodes = []
              if (!res) nodes = document.querySelectorAll(".msg-normal .msg")
              fireKeyEvent(target, 'keydown', 13)
              target.value = res || nodes.length&&nodes[(Math.round(Math.random() * (nodes.length - 1)))].innerText || '大家好'
              document.querySelector('#msg_send_bt').click()
              time = (Min + Math.round(Math.random() * (Max - Min)))
              console.log(time)
              clearInterval(timer)
              hh()
            }, time)
          }
          hh()
        })
      } else {
        console.log('彈幕已停止')
        alert('彈幕已停止')
        clearInterval(timer)
      }
    }
  }
`
document.querySelector('body').append(script)

研究的時(shí)候發(fā)現(xiàn)虎牙每?jī)蓷l彈幕發(fā)送時(shí)間必須在10秒以外川背,10秒以?xún)?nèi)的話贰拿,就會(huì)被后端關(guān)閉WebSocket的連接。熄云。所以上面這段代碼并沒(méi)有太大的意義膨更。。不過(guò)運(yùn)行實(shí)際效果還是蠻有趣的缴允。荚守。

前提

首先是裝有油猴插件的瀏覽器,點(diǎn)擊油猴圖標(biāo)练般,點(diǎn)擊"添加新腳本"矗漾,然后把上面代碼粘貼到"your code here" 處。薄料。

"設(shè)置"面板中敞贡,"用戶(hù)匹配"點(diǎn)擊"添加",輸入

*://www.huya.com/*

即可摄职。

不想安裝油猴插件的誊役,可以直接打開(kāi)控制臺(tái),把代碼粘貼進(jìn)去谷市,回車(chē)即可蛔垢。這種方式的話,刷新一下頁(yè)面需要重新粘貼一遍代碼迫悠。

用法

在虎牙視頻播放界面鹏漆,按 ALT 鍵。

按一下创泄,選擇發(fā)送彈幕類(lèi)型艺玲,點(diǎn)擊"確定"是手動(dòng)輸入彈幕內(nèi)容,然后每隔10-12秒自動(dòng)重復(fù)發(fā)送鞠抑,點(diǎn)擊"取消"是自動(dòng)獲取別人的彈幕進(jìn)行發(fā)送板驳。

再按一下,取消發(fā)送彈幕

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碍拆,一起剝皮案震驚了整個(gè)濱河市若治,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌感混,老刑警劉巖端幼,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異弧满,居然都是意外死亡婆跑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)庭呜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)滑进,“玉大人犀忱,你說(shuō)我怎么就攤上這事》龉兀” “怎么了阴汇?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)节槐。 經(jīng)常有香客問(wèn)我搀庶,道長(zhǎng),這世上最難降的妖魔是什么铜异? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任哥倔,我火速辦了婚禮,結(jié)果婚禮上揍庄,老公的妹妹穿的比我還像新娘咆蒿。我一直安慰自己,他們只是感情好蚂子,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布蜡秽。 她就那樣靜靜地躺著,像睡著了一般缆镣。 火紅的嫁衣襯著肌膚如雪芽突。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天董瞻,我揣著相機(jī)與錄音寞蚌,去河邊找鬼。 笑死钠糊,一個(gè)胖子當(dāng)著我的面吹牛挟秤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抄伍,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼艘刚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了截珍?” 一聲冷哼從身側(cè)響起攀甚,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岗喉,沒(méi)想到半個(gè)月后秋度,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钱床,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年荚斯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡事期,死狀恐怖滥壕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兽泣,我是刑警寧澤绎橘,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站撞叨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏浊洞。R本人自食惡果不足惜牵敷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望法希。 院中可真熱鬧枷餐,春花似錦、人聲如沸苫亦。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屋剑。三九已至润匙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唉匾,已是汗流浹背孕讳。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巍膘,地道東北人厂财。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像峡懈,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容