Bilibili-Evolved/min/danmaku-send-bar.min.js
2020-06-07 10:23:03 +08:00

1 line
1.5 KiB
JavaScript

(()=>{return(e,t)=>{(async()=>{if(!document.URL.match(/^https:\/\/live.bilibili.com\/(blanc\/)?(\d+)/)){return}const e=await SpinQuery.select(".bilibili-live-player-video-controller-left");const n=await SpinQuery.select(".chat-input-ctnr .chat-input");const a=await SpinQuery.select(".chat-input-ctnr ~ .bottom-actions .bl-button--primary");if([e,n,a].some(e=>e===null)){return}t.applyStyle("danmakuSendBarStyle");let i=false;const l=Vue.extend({template:`\n<div class="danmaku-send-bar">\n<input\n type="text"\n placeholder="发个弹幕呗~"\n :value="value"\n @keydown.enter="send()"\n @input="updateValue($event.target.value)"\n maxlength="30"\n />\n</div>\n`,data(){return{value:n.value}},mounted(){n.addEventListener("input",this.listenChange);n.addEventListener("change",this.listenChange);if(!i){const e=Object.getOwnPropertyDescriptors(HTMLTextAreaElement.prototype).value;Object.defineProperty(n,"value",{...e,set(t){e.set.call(this,t);raiseEvent(n,"input")}});i=true}},beforeDestroy(){n.removeEventListener("input",this.listenChange);n.removeEventListener("change",this.listenChange)},methods:{updateValue(e){n.value=e;raiseEvent(n,"input")},send(){if(!a.disabled){this.value="";a.click()}},listenChange(e){this.value=e.target.value}}});const s=(new l).$mount().$el;e.insertAdjacentElement("afterend",s)})();return{reload:()=>document.body.classList.remove("danmaku-send-bar-unloaded"),unload:()=>document.body.classList.add("danmaku-send-bar-unloaded")}}})();