定时从设置的字幕中随机取出一条在B站直播间发送,需先登录B站账号
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/447937/1268113/bilibili-live-random-send.js
(function () { window.autoSendDanmuModuleLoaded = false; let pdata = {}, moduleUrl = "https://gcore.jsdelivr.net/gh/gamyou/bilibili-live-random-send/prod/bilibili-live-random-send.js", parentUrl = 'https://greasyfork.org/scripts/446725-b%E7%AB%99%E7%9B%B4%E6%92%AD%E9%97%B4%E5%AE%9A%E6%97%B6%E5%8F%91%E9%9A%8F%E6%9C%BA%E5%BC%B9%E5%B9%95/code/B%E7%AB%99%E7%9B%B4%E6%92%AD%E9%97%B4%E5%AE%9A%E6%97%B6%E5%8F%91%E9%9A%8F%E6%9C%BA%E5%BC%B9%E5%B9%95.user.js', gmNotice = obj => { alert('请更新油猴脚本'); window.location.href = parentUrl; }, getGmValue = (key, defaultValue) => { return null; }, setGmValue = (key, obj) => { console.warn('===> No implementation "setGmValue" method.'); }, delGmValue = key => { console.warn('===> No implementation "delGmValue" method.'); }; const setGmGetValue = callback => getGmValue = callback, setGmSetValue = callback => setGmValue = callback, setGmDelValue = callback => delGmValue = callback, setGmNotice = callback => gmNotice = callback, setParentData = obj => pdata = obj, createScript = (scriptText) => { let script = document.getElementById(pdata.moduleId); if (script) { script.remove(); script = null; } script = document.createElement('script'); script.id = pdata.moduleId; script.type = 'text/javascript'; script.text = scriptText; document.head.appendChild(script); }, updateScript = () => { if (pdata.configKey) { let config = getGmValue(pdata.configKey, {}); console.log('===> 进行脚本更新,最后更新时间:' + config.lastUpdate); const controller = new AbortController(); const promise = fetch(moduleUrl, { method: 'GET', signal: controller.signal, cache: 'no-store' }); const requestTimer = setTimeout(() => controller.abort(), 40e3); promise.then(response => { if (response.ok) { return response.text(); } }).then(txt => { if (txt) { if (requestTimer) {clearTimeout(requestTimer);} createScript(txt); config.script = txt; config.lastUpdate = new Date().toLocaleDateString() + "/" + new Date().getHours();; setGmValue(pdata.configKey, config); console.log('===> 脚本更新完成,10秒后自动刷新页面'); setTimeout(() => { window.location.reload(); }, 10e3); } }).catch(error => console.error('===> 网络请求超时,或其它报错', error)); } }, runStart = () => { updateScript(); if (!window.updateParentFlag) { window.updateParentFlag = true; window.location.href = parentUrl; } }; window.updateParentFlag = false; window.setParentData = setParentData; window.setGmGetValue = setGmGetValue; window.setGmSetValue = setGmSetValue; window.setGmDelValue = setGmDelValue; window.setGmNotice = setGmNotice; window.runStart = runStart; window.autoSendDanmuModuleLoaded = true; })();