🏠 Home 

bilibili-live-random-send

定时从设置的字幕中随机取出一条在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;
})();