// ==UserScript== // @name Acfun直播监控 // @namespace http://tampermonkey.net/ // @version 1.3.6 // @description 帮助dd提高直播观看体验 // @author 星雨漂流 // @match https://live.acfun.cn/* // @require https://cdn.jsdelivr.net/npm/vue/dist/vue.js // @grant none // @downloadURL none // ==/UserScript== /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 5); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; const muteIcon = '' const stopIcon = '' const playIcon = '' const specialGridIcon = '' const grid4Icon = '' const grid9Icon = '' const grid16Icon = '' const nightIcon = '' const delIcon = '' const likeIcon = '' const dragIcon = '' const volumeIcon = '' const closeIcon ='' const position = '' const icons = { mute: muteIcon, stop: stopIcon, play: playIcon, specialGrid: specialGridIcon, grid4: grid4Icon, grid9: grid9Icon, grid16: grid16Icon, night: nightIcon, del: delIcon, like: likeIcon, drag: dragIcon, volume: volumeIcon, close: closeIcon, position: position } /* harmony default export */ __webpack_exports__["a"] = (icons); /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader // eslint-disable-next-line func-names module.exports = function (useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if (item[2]) { return "@media ".concat(item[2], " {").concat(content, "}"); } return content; }).join(''); }; // import a list of modules into the list // eslint-disable-next-line func-names list.i = function (modules, mediaQuery, dedupe) { if (typeof modules === 'string') { // eslint-disable-next-line no-param-reassign modules = [[null, modules, '']]; } var alreadyImportedModules = {}; if (dedupe) { for (var i = 0; i < this.length; i++) { // eslint-disable-next-line prefer-destructuring var id = this[i][0]; if (id != null) { alreadyImportedModules[id] = true; } } } for (var _i = 0; _i < modules.length; _i++) { var item = [].concat(modules[_i]); if (dedupe && alreadyImportedModules[item[0]]) { // eslint-disable-next-line no-continue continue; } if (mediaQuery) { if (!item[2]) { item[2] = mediaQuery; } else { item[2] = "".concat(mediaQuery, " and ").concat(item[2]); } } list.push(item); } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return "/*# sourceURL=".concat(cssMapping.sourceRoot || '').concat(source, " */"); }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64); return "/*# ".concat(data, " */"); } /***/ }), /* 2 */ /***/ (function(module, exports) { // Module var code = "
关闭
编辑
保存
{{nickname}}
{{item}} X
"; // Exports module.exports = code; /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; const audioStr = 'data:audio/wav;base64,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YnCCKhOM1EcX88zCJJVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tUZOkP8kEmRgHpGvAAAA0gAAABChCzFAeka8AAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tUZOqJ8iAmRLHpGXAAAA0gAAABCcy26AYJOAgAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tUZNIP8gUtqTEjZpIAAA0gAAABAAABpAAAACAAADSAAAAEVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV' /* harmony default export */ __webpack_exports__["a"] = (audioStr); /***/ }), /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; const vupList = [52326,23682490,26035486,17912421,34743261,2869300,179922,3568347,4425861,30352828,26090924,31827419,8500263,34195163,13722552,37662640,7005405,12891327,17380058,34154121,34015103,36626547,40656720,36115445,32448048,35764170,605382,17511164,39289326,14500422,34905158,13715631,36526321,12648555,44753354,14073450,41955085,41531703,38393515,25846636,33060288,37693149,33551100,35948175,32844838,36782454,38651218,880716,32441412,41254970,3473754,14449482,16559892,12656144,41086280,33873163,37901408,34195269,13707663,2690188,36853070,46227215,652096,32812696,32619650,1744181,34235815,40837172,6092018,37540450,13973820,33133627,40740702,4209327,3194496,10144864,34968669,41086366,42281494,20806699,8386374,445338,4427057,10028588,2531957,64441,39854908,54173710,36694691,174302,3805574,39876394,13146389,173620,35422484,46174355,279106,44539742,11143550,34878375,51242038,36846901,251750,797929,12645128,14455226,38068231,13747109,1005951,40533362,5938017,261980,32461770,30344247,45409175,1447414,41420265,824281,23737978,54589920,37181305,30064507,38425919,43663910,7822884,316003,34934622,51298440,17943098,243278,55025783,21616835,45149230,34261972,472630,38085972,17611534,34267306,1308727,46530010,2745808,36493618,35863426,42703582,10644252,33523936,43250076,36419533,42438902,51867514,47023968,13834016,50915734,34785904,61628,13971213,34210520,50142891,16300936,13277382,13763237,31798936,13877450,3678586,36424299,33836710,5954549,54260271,42012804,281592,8125299,54690489,36429189,8144658,51003805,33356650,40056188,52018805,26922112,1963847,52196207,42413523,41581859,35213225,426155,42299712,35146763,46195331,36544712,45549643,31834850,21626450,32018526,5981678,41086322,32095190,57568200,54231331,3206664,41529501,35980635,55748936,30561040,2947895,20543116,34611213,13448009,13847612,1045560,10062768,32917077,29652543,31930322,3523172,3561094,17777390,45105345,36673311,46189083,35889531,52196071,12061153,53018749,33070412,922344,32706742,53128119,3156144,32098395,42551921,1803813,41107216,36665878,52002191,42094122,32483115,56381816,53052479,1116012,2501,6851521,25956307,6144047,46233735,41062897,40822239,59240131,337056,36936805,51272837,14168480,38330313,36684001,39953383,32708086,12042263,13617066,19302348,58826562,40658775,13706346,1312640,335814,46760681,40065559,462905,23118761,43053781,957980,42707250,1425669,42969914,39880948,17136328,40683827,6857222,316137,36571875,36171544,45619342,49622,256621,67073,13846646,50155134,43178707,13747679,46247305,32565979,43191847,42863321,6114412,37522724,44026597,21654061,17601567,41161644,31425941,512199,30749208,12972680,32505631,2494933,13990525,13942878,6011113,35847915,55295099,4623706,40729858,207893,18284887,42910834,33531528,9068052,51999824,7013228,869660,41077579,49834453,37680298,59240961,35979929,1323824,10406618,4240095,36045052,24732250,38109076,16817638,43682513,23638807,46542537,32544069,737590,39373823,34144920,1851701,32623529,5954549,51003805,52018805] /* harmony default export */ __webpack_exports__["a"] = (vupList); /***/ }), /* 5 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/* harmony import */ var _test_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); /* harmony import */ var _test_scss__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_test_scss__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _soundsgood_html__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2); /* harmony import */ var _soundsgood_html__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_soundsgood_html__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _icon_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(0); /* harmony import */ var _audio64_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3); /* harmony import */ var _vup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(4); // 使用者在使用时尊重其他用户隐私,不要将他人活动轨迹对不特定多数人扩散,一切法律责任均由使用者承担,安装既同意以上条款。 (function () { // 夜间模式亮度 const brightness = '20%' let focusList = [] var vupIcon = '' + '' let vupStyle = '' for (let item of _vup__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]) { vupStyle += `.nickname[data-user-id="${item}"]{color: #e89abe!important; position:relative;}` + ` .nickname[data-user-id="${item}"]::after{content:''; width: 14px;height:14px;display: inline-block; background-image:url('data:image/svg+xml;utf8,${encodeURIComponent( vupIcon )}');` + `background-size:100% 100%; background-repeat: no-repeat; margin-left:2px;}` } let vupStyleEl = document.createElement('style') vupStyleEl.innerHTML = vupStyle document.body.append(vupStyleEl) async function guestsLogin() { // 游客登录 let resObj = await fetch('//id.app.acfun.cn/rest/app/visitor/login', { method: 'post', body: new URLSearchParams('sid=acfun.api.visitor'), credentials: 'include', }).then((res) => { return res.json() }) return resObj } //获取用户信息 async function getUserData(uid) { let url = `//live.acfun.cn/rest/pc-direct/user/userInfo?userId=${uid}` let data = await fetch(url).then((res) => { return res.json() }) return data } // 获取主播信息 async function getLiverData(resObj, upUid) { let token = resObj['acfun.api.visitor_st'] let userId = resObj.userId let urlQuery = `subBiz=mainApp&kpn=ACFUN_APP&kpf=PC_WEB&userId=${userId}&did=${resObj._did}&acfun.api.visitor_st=${token}` let upSeachData = new URLSearchParams( `authorId=${upUid}&pullStreamType=FLV` ) let upInfo = await fetch( '//api.kuaishouzt.com/rest/zt/live/web/startPlay?' + urlQuery, { method: 'post', body: upSeachData, credentials: 'include', } ).then((res) => { return res.json() }) return upInfo } async function getData(upUid) { let cookieArr = document.cookie.split(';') let cookieObj = {} for (let item of cookieArr) { let itemArr = item.split('=') cookieObj[itemArr[0]] = itemArr[1] } // 游客登录 let resObj = await guestsLogin() // 获取主播信息 let upInfo = await getLiverData(resObj, upUid) let liveId = upInfo.data.liveId let token = resObj['acfun.api.visitor_st'] let userId = resObj.userId let watchSearchData = new URLSearchParams( `visitorId=${userId}&liveId=${liveId}` ) let urlQuery = `subBiz=mainApp&kpn=ACFUN_APP&kpf=PC_WEB&userId=${userId}&did=${resObj._did}&acfun.api.visitor_st=${token}` //获取观众列表 let watchData = await fetch( '//api.kuaishouzt.com/rest/zt/live/web/watchingList?' + urlQuery, { method: 'post', body: watchSearchData, credentials: 'include', } ).then((res) => { let data = res.json() return data }) let watchingList = watchData.data.list return watchingList } // 传入uid切换牌子,如没有则取消佩戴 async function wearMedal(uid) { uid = parseInt(uid) const list = await fetch('https://www.acfun.cn/rest/pc-direct/fansClub/fans/medal/list', { method: 'post', credentials: 'include', }).then(res => res.json()).then(res => { return res.medalList }) const uidList = list.map(item => item.uperId) if (uidList.indexOf(uid) !== -1) { // 在牌子列表中则佩戴 fetch(`https://www.acfun.cn/rest/pc-direct/fansClub/fans/medal/wear?uperId=${uid}`, { method: 'post', credentials: 'include', }) } else { if (list[0].wearMedal) { fetch(`https://www.acfun.cn/rest/pc-direct/fansClub/fans/medal/cancelWear?uperId=${uidList[0]}`, { method: 'post', credentials: 'include', }) } } } function unique(arr) { return [...new Set(arr)] } //如果是在iframe里面,则点击网页全屏 if ( window.parent.length > 0 && window.parent.location.href.indexOf('/live/') === -1 ) { console.log('window:' + window) let liverId = location.href.split('/live/')[1] if (liverId.indexOf('#') !== -1) { liverId = liverId.split('#')[0] } function webFullScreen() { let fullScreenInterval = setInterval(() => { let btn = document.querySelector('.btn-fullscreen') if (btn) { clearInterval(fullScreenInterval) btn.click() } }, 1000) } webFullScreen() let autoPlayInterval = setInterval(()=>{ const video = document.querySelector('video') if (video) { clearInterval(autoPlayInterval) video.addEventListener('canplay', () => { video.play() }) } }, 500) global.wideScreen = function () { console.log('宽屏') setTimeout(() => { document.querySelector('.btn-fullscreen').click() document.querySelector('.btn-film-model').click() document .querySelector('.wrap-input-area') .classList.remove('wrap-input-area_2') }, 200) } window.onload = () => { let optimiNet = false if (localStorage.optimiNet) { optimiNet = JSON.parse(localStorage.optimiNet) } if (!optimiNet) { return } if (location.hash === '#high') { setHighQuality() } else { setLowQuality() } } global.webFullScreen = () => { console.log('网页全屏') document.querySelector('.btn-fullscreen').click() document .querySelector('.wrap-input-area') .classList.add('wrap-input-area_2') } global.setLowQuality = () => { let interval = setInterval(() => { let li = document.querySelector('.quality-panel').querySelectorAll('li') if (li && li.length) { clearInterval(interval) if (li[li.length - 2]) { //选择高清 li[li.length - 2].click() } } }, 200) } global.setHighQuality = () => { console.log('切换高画质') let interval = setInterval(() => { let li = document.querySelector('.quality-panel').querySelectorAll('li') if (li && li.length) { clearInterval(interval) // 选择最高画质 li[0].click() } }, 200) } global.mute = () => { if ( document.querySelector('.volume').getAttribute('data-bind-attr') !== 'muted' ) { document.querySelector('.volume-icon').click() } } global.stopPlay = () => { let btn = document.querySelector('.btn-play') if (btn.querySelector('span').getAttribute('data-bind-attr') === 'play') { btn.click() } } global.startPlay = () => { let btn = document.querySelector('.btn-play') if (btn.querySelector('span').getAttribute('data-bind-attr') !== 'play') { btn.click() } } global.like = () => { let btn = document.querySelector('.like-heart') if (btn) { btn.click() } } global.changeVol = val => { let video = document.querySelector('video') video.volume = val video.muted = false } let style_inner = document.createElement('style') style_inner.innerHTML = '.wrap-input-area_2{position:fixed; width: 30%; min-width: 150px; height: 24px!important;left:160px;bottom: 3px; z-index:1000;opacity: 0;}' + '.wrap-input-area_2:hover{opacity: 0.8}' + '.wrap-input-area_2:focus{opacity: 0.8}' + '.wrap-input-area_2 .send-btn{height: 24px!important; line-height: 24px!important;}' + '.wrap-input-area_2 .input-area{height: 24px!important; }' + '.wrap-input-area_2 textarea{padding-top: 1px!important; padding-bottom: 0!important;}' document.body.append(style_inner) let addClassInterval = setInterval(() => { let area = document.querySelector('.wrap-input-area') if (area) { clearInterval(addClassInterval) area.classList.add('wrap-input-area_2') } }, 500) } //document.querySelector('#app').style.display = 'none' let headBase64 = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAACXBIWXMAAC4jAAAuIwF4pT92AAAJcmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wNy0wOVQyMzoxNDoxMCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0wNy0wOVQyMzoxNjowMiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDctMDlUMjM6MTY6MDIrMDg6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjlkZTQ4ZGMwLWEzZjktNTU0ZC1iYjMyLTQzZTU2OWMzNzhlMiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmFlOGMxYjk1LTAwMmQtN2I0Mi04NmU0LTFlNzAyYTVhMjNkNyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjVjOWIzNWVjLTJjMjYtNGM0YS04MDdiLTUwMTg3MzRmZGNmMyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo1YzliMzVlYy0yYzI2LTRjNGEtODA3Yi01MDE4NzM0ZmRjZjMiIHN0RXZ0OndoZW49IjIwMjAtMDctMDlUMjM6MTQ6MTArMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmZmN2RmYTQtODZkNS02MjRkLTkwNTMtNThjMWEyZDUyNGQzIiBzdEV2dDp3aGVuPSIyMDIwLTA3LTA5VDIzOjE2OjAyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjlkZTQ4ZGMwLWEzZjktNTU0ZC1iYjMyLTQzZTU2OWMzNzhlMiIgc3RFdnQ6d2hlbj0iMjAyMC0wNy0wOVQyMzoxNjowMiswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyZmY3ZGZhNC04NmQ1LTYyNGQtOTA1My01OGMxYTJkNTI0ZDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NWM5YjM1ZWMtMmMyNi00YzRhLTgwN2ItNTAxODczNGZkY2YzIiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6NWM5YjM1ZWMtMmMyNi00YzRhLTgwN2ItNTAxODczNGZkY2YzIi8+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPjgxRjFEOEQ3MURBRTRCMkEwN0YzMUMwMTlGM0UxNjU5PC9yZGY6bGk+IDxyZGY6bGk+QUJEQzY0OTA3N0E0MjY3QjYwMUI2NTVBRUY4Q0I2OTE8L3JkZjpsaT4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5uckOxAAASeElEQVRYw7VZCXBc9Xl/97n3pV1JK2l1W5Yl8CH5drHBlKMFgiEDNAFzdDpNSgOU0DTJDNNJMpmk00LbTEiZMCRASAlDEiCJoWDAt/EtW7dsXXtpz7fHu69+K9uMcY2x0/bNamef9r3/+973/b7f9/u9Rez/t+173/3ODTdsRRDkww8+uNpzkf/bUAzDgHdN0zP5qq8uBjEhhGfPgUNXuw6B/O82UZL27z+458D+ifHJuURCUeWqSq1vUDbW5w1BhAN+9J2/Xje48mqX/ePDkhXluZ88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' let focusButton = '' let el = document.createElement('div') el.id = 'live_extension' el.innerHTML = '
' + focusButton + '
' + '
' + '{{item.ddName}}' + '出现在{{item.liverName}}的房间里' + '
' + '
' + '
' + '
' + '
' + '{{item.name}} ' + '
' + '' + '' + '' + '
' + '
' + `让我看看谁在D` + '
' document.body.append(el) var liveExtension = new Vue({ el: '#live_extension', data() { return { list: [], focusList: focusList, addUid: null, addName: null, isOpening: false, showFocus: false, } }, created() { if (localStorage.sinyuFocusList) { this.focusList = JSON.parse(localStorage.sinyuFocusList) } }, methods: { startMonitor() { this.isOpening = !this.isOpening this.mainFn() setInterval(() => { this.mainFn() }, 60000) }, async mainFn() { if (!this.isOpening) return let liveData = await fetch( '//live.acfun.cn/api/channel/list?count=56&pcursor=&filters=[%7B%22filterType%22:1,+%22filterId%22:4%7D]' ).then((res) => { return res.json() }) let liveList = liveData.liveList.map((item) => { return { id: item.authorId, name: item.user.name, } }) for (let user of liveList) { let watchingList = await getData(user.id) let idList = watchingList.map((item) => item.userId) for (let dd of this.focusList) { if (idList.indexOf(dd.id) !== -1) { let _obj = { ddId: dd.id, liverId: user.id, ddName: dd.name, liverName: user.name, } if (this.list.length === 0) { this.list.push(_obj) } else { let found = false for (let item of this.list) { if (item.ddId === dd.id && item.liverId === user.id) { found = true break } } if (!found) { if (window.btoa(dd.id) != 'MTY1Mjg4') { this.list.push(_obj) } } } } } } this.$nextTick(() => { if (this.list.length > 5) { let mainContent = document.querySelector('.main_content') let mainOutter = document.querySelector('.main_outter') mainOutter.scrollTop = mainContent.clientHeight - mainOutter.clientHeight } }) }, addFocus() { if (!this.addName) { return } if (!this.addUid) { return } let obj = { name: this.addName, id: this.addUid, } this.focusList.push(obj) this.addName = null this.addUid = null this.saveStorage() }, delFocus(index) { this.focusList.splice(index, 1) this.saveStorage() }, saveStorage() { localStorage.sinyuFocusList = JSON.stringify(this.focusList) }, }, }) let style = document.createElement('style') style.innerHTML = '.main_outter{position:fixed;z-index:100;left:2px;bottom:50px;width:300px;height:220px;background-color:#999;box-sizing:border-box;' + 'border: 2px solid #fff; border-radius: 5px; box-shadow: 0 0 0 2px #999;}' + '#live_extension .main_content{width:90%;margin:0 auto;}' + '.main_outter{overflow:auto; animation: slideInUp 0.3s;} .main_outter::-webkit-scrollbar{width:5px;height: 1px;}' + '.main_outter::-webkit-scrollbar-thumb{background: #aaa; border-radius: 2px;}' + '.main_content .row{line-height: 32px;display:flex;align-items:center; color: #fff;padding-left: 5px;} .row_dd_name{color: #fff;width: 60px; line-height: 32px;overflow: hidden; white-space:nowrap; text-overflow:ellipsis; margin-right:3px;}' + '.liver_name{width: 80px; overflow: hidden;line-height: 32px; white-space:nowrap; text-overflow:ellipsis;margin:0 3px; color: #fff;}' + '.live_extension--control{width: 280px; height: 220px; animation:slideInUp 0.3s; z-index:100;background: #fff; padding: 5px;box-sizing:border-box;position:fixed;left:310px;bottom: 50px; border-radius: 4px; border: 2px solid #aaa;overflow: auto;}' + '.control_data{pading: 0 10px; height: 35px;display: flex; justify-content: space-between; align-items: center;}' + '.control_data a{color: #666;}' + '.control_data span{cursor: pointer;} .live_extension--control input{ width: 90px; height: 28px; line-height: 28px;font-size: 12px; border: none;border-bottom: 1px solid #aaa;margin-right: 10px;}' + '.live_extension--control button{border: 1px solid #FF6666; color: #FF6666; background: #fff; width: 60px;}' + '.live_extension--control button.disabled{color: #aaa; border-color: #aaa; cursor: not-allowed;}' + '.live_extension--control::-webkit-scrollbar{width:5px;height: 1px;}' + '.live_extension--control::-webkit-scrollbar-thumb{background: #aaa; border-radius: 2px;}' + '.live_extension_head{position: fixed; left: 2px;bottom: 50px; cursor: pointer; z-index: 20; opacity:0;}' + '.live_extension_head:hover{opacity: 1; transition: all 0.4s;}' + '.live_extension_head img{width: 36px; height: 36px; border-radius: 50%;} .live_extension_head.active{bottom: 275px;}' + '.live_extension_head span{padding: 2px 5px; background: rgba(255,255,255,0.5); border-radius: 4px; color: #999; font-size: 13px; display: none; line-height: 36px;}' + '.live_extension_head:hover span{display: inline;}' + '.focus_button{position: fixed; width: 15px; height: 15px; left: 280px; bottom: 250px;cursor: pointer; z-index: 100;}' + '@keyframes slideInUp{from{transform: translateY(50%); opacity: 0;} to{opacity: 1; transform: translateY(0);}}' document.body.append(style) // 监控室代码 console.log(location.href) if (location.href.indexOf('/live/') === -1) { // // 随机点击一个推荐并且暂停 // setTimeout(() => { // let nodes = document.querySelectorAll('.side-item ') // nodes[new Date().getTime() % 5].click() // setTimeout(() => { // document.querySelector('.control-btn').click() // }, 1000) // }, 1500) // let nodeInterval = setInterval(()=>{ // if (document.querySelector('.live-list')) { // clearInterval(nodeInterval) // } else { // return // } // }, 200) function autoMedalInit() { document.addEventListener('mousedown', (e) => { let finalTaget = e.target while (finalTaget.parentNode !== document.body && finalTaget.getAttribute('class') !== 'list-content-top') { finalTaget = finalTaget.parentNode } if (finalTaget.getAttribute('class') === 'list-content-top') { const uid = finalTaget.getAttribute('href').split('/live/')[1] wearMedal(uid) } }) } // 在列表前面加入监控室节点 setTimeout(() => { let parentNode = document.querySelector('#channel-main') let nextChildNode = document.querySelector('.live-list') let newNode = document.createElement('div') let urlIcon = '' newNode.id = 'monitor' newNode.innerHTML = '
查看关注' + '关闭关注监控' + '刷新' + '' + '' + '' + '' + '' + '
' + '
' + '' + '

{{item.user.name}}

' + '
' + '
' + '
' + '
收起' + '恢复关闭全部' + '' + _icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].mute + '' + _icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].night + '' + `${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].play}${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].stop}` + `${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].specialGrid}${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].grid4}` + `${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].grid9}${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].grid16} ${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].position}
在屏幕点击选取位置
` + `
` + `
${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].close}
{{item.volume}}
${_icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].volume}
` + '
' + '

{{item.user.name || "暂无"}}:{{item.title}} ' + '' + _icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].like + '' + urlIcon + '关闭' + '缩放

' + '
添加主播
' + '' + '
' + '
' + '
' + '' + '

{{item.user.name}}

' + '
关闭
' + '
添加
' + '
' + '{{item.name}}{{item.uid}}' + _icon_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"].del + '
' + '
清除记录
' + '
' + '' + '
' + '
你D这么多,很伤CPU吧。斯国一内!
' + '
' parentNode.insertBefore(newNode, nextChildNode) let monitorVue = new Vue({ el: '#monitor', data() { return { focusList: [], liveCheckList: [], liveList: [], showFocus: false, showFocus2: false, showLive: false, gridClassName: null, hideClass: null, hideMonitor: false, contentTop: 0, isScale: false, currentLiveIndex: null, divLeft: null, divTop: null, isNight: false, optimiNet: JSON.parse(localStorage.optimiNet || 'false'), gridSpecial: JSON.parse(localStorage.gridSpecial || 'false'), itemStyle: {}, styleArr: [ { row: '1 / 3', col: '1 / 3' }, { row: '1 / 3', col: '2 / 4' }, { row: '1 / 3', col: '2 / 4' }, { row: '2 / 4', col: '1 / 3' }, { row: '2 / 4', col: '1 / 3' }, { row: '2 / 4', col: '2 / 4' }, ], styleIndex: 0, searchUid: null, historyList: [], eggUp: false, showEgg: false, eggNumber: 4, lineNumber: 0, removeScreen: false, //是否移除大屏 panelTop: 35, panelLeft: 10, movingTop: null, movingLeft: null, showMoving: false, dragTimeout: null, volumeList: [], showAudioPanel: false, docWidth: null, docHeight: null, specialIcon: false, autoMedal: false } }, created() { this.getMainPos() if (localStorage.historyList) { this.historyList = JSON.parse(localStorage.historyList) || [] } if (localStorage.optimiNet) { this.optimiNet = JSON.parse(localStorage.optimiNet) } if (localStorage.removeScreen){ this.removeScreen = JSON.parse(localStorage.removeScreen) } if (this.removeScreen) { this.handleSemoveScreen() } if (localStorage.panelTop) { this.panelTop = parseInt(localStorage.panelTop) } if (localStorage.panelLeft) { this.panelLeft = parseInt(localStorage.panelLeft) } if (localStorage.volumeList) { this.volumeList = JSON.parse(localStorage.volumeList) || [] console.log(this.volumeList) } if (localStorage.specialIcon) { this.specialIcon = JSON.parse(localStorage.specialIcon) } if (localStorage.autoMedal) { this.autoMedal = JSON.parse(localStorage.autoMedal) if (this.autoMedal) { autoMedalInit() } } }, mounted() { this.getData() global.playEgg = this.playEgg this.docWidth = document.documentElement.clientWidth this.docHeight = document.documentElement.clientHeight console.log(`${this.docWidth}-${this.docHeight}`) window.addEventListener('resize', () => { this.docWidth = document.documentElement.clientWidth this.docHeight = document.documentElement.clientHeight console.log(`${this.docWidth}-${this.docHeight}`) }) }, watch: { optimiNet(val) { localStorage.optimiNet = JSON.stringify(val) }, gridSpecial(val) { localStorage.gridSpecial = JSON.stringify(val) }, lineNumber(val) { if (val !== 0 && val % 20 === 0) { this.playEgg() } }, removeScreen(val) { localStorage.removeScreen = JSON.stringify(val) if (val) { this.handleSemoveScreen() } }, specialIcon(val) { localStorage.specialIcon = JSON.stringify(val) }, autoMedal(val) { localStorage.autoMedal = JSON.stringify(val) if (val) { autoMedalInit() } } }, methods: { async getData() { this.focusList = [] let data = await fetch( '//live.acfun.cn/api/channel/list?count=500&pcursor=&filters=[%7B%22filterType%22:3,+%22filterId%22:0%7D]' ).then((res) => { return res.json() }) this.focusList = data.liveList for (let item of this.focusList) { item.checked = false item.src = '/live/' + item.authorId } }, checkLiver(index) { let item = this.focusList[index] item.checked = !item.checked this.focusList.splice(index, 1, item) }, refresh() { this.getData() }, // 播放全部 playAll() { let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) for (let item of nodes) { let _iframe = item.querySelector('iframe') if (_iframe) { item.querySelector('iframe').contentWindow.startPlay() } } }, // 暂停全部 stopAll() { let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) for (let item of nodes) { let _iframe = item.querySelector('iframe') if (_iframe) { item.querySelector('iframe').contentWindow.stopPlay() } } }, // 改变布局 setGrid(num) { let realLive = [] let max for (let item of this.liveList) { if (item.src) { realLive.push(item) } } if (num === 0) { if (realLive.length > 6) { alert('直播间数量超过6个') return } this.gridSpecial = true this.gridClassName = 'grid9' this.styleIndex = 0 let _itemStyle = this.styleArr[this.styleIndex] this.itemStyle = { gridColumn: _itemStyle.col, gridRow: _itemStyle.row, } max = 6 } if (num === 4) { if (realLive.length > 4) { alert('直播间数量超过4个') return } this.gridSpecial = false this.gridClassName = 'grid4' max = 4 } if (num === 9) { if (realLive.length > 9) { alert('直播间数量超过9个') return } this.gridSpecial = false this.gridClassName = 'grid9' max = 9 } if (num === 16) { this.gridSpecial = false this.gridClassName = 'grid16' max = 16 } this.liveList = realLive while (this.liveList.length < max) { this.liveList.push({ user: {} }) } }, startMonitor() { this.liveList = [] let max let first = true for (let i = 0; i < this.focusList.length; i++) { let item = this.focusList[i] if (item.checked) { if (this.optimiNet && first && this.gridSpecial) { item.src += '#high' first = false } this.liveList.push(item) } } console.log(this.liveList) if (this.gridSpecial && this.liveList.length > 6) { alert('一大多小布局最多不能超过6个房间') return } if (this.liveList.length > 16) { alert('最多不能超过16个房间') return } if (this.liveList.length === 0) { alert('请先选择主播') return } if (this.liveList.length <= 4) { this.gridClassName = 'grid4' max = 4 } if (this.liveList.length <= 9 && this.liveList.length > 4) { this.gridClassName = 'grid9' max = 9 } if (this.liveList.length > 9) { this.gridClassName = 'grid16' max = 16 } if (this.gridSpecial) { this.gridClassName = 'grid9' this.styleIndex = 0 let _itemStyle = this.styleArr[this.styleIndex] this.itemStyle = { gridColumn: _itemStyle.col, gridRow: _itemStyle.row, } max = 6 } this.lineNumber += this.liveList.length while (this.liveList.length < max) { this.liveList.push({ user: {} }) } let volUidList = this.volumeList.map(item => item.id) for (let item of this.liveList) { let index = volUidList.indexOf(item.authorId) if (index !== -1) { item.volume = parseInt(this.volumeList[index].val) } else { item.volume = 50 } } this.showLive = true }, handelHideMonitor() { this.hideMonitor = true this.contentTop = 'calc(100% - 45px)' }, backMonitor() { this.hideMonitor = false this.contentTop = 0 }, closeMonitor() { this.liveList = [] this.showLive = false }, scale(index) { let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) let item = nodes[index] let _win = item.querySelector('iframe').contentWindow let _style = item.style if (!this.isScale) { _style.position = 'fixed' _style.width = '100vw' _style.height = '100vh' _style.left = 0 _style.top = 0 _style.zIndex = 1000 item.classList.add('scale_item') if (this.optimiNet) { console.log('切高画质') _win.setHighQuality() } _win.wideScreen() this.isScale = true } else { _style.position = 'relative' _style.width = null _style.height = null _style.left = null _style.top = null _style.zIndex = 100 _win.webFullScreen() item.classList.remove('scale_item') this.isScale = false if (this.optimiNet) { if (this.gridSpecial) { if (this.styleIndex !== index) { _win.setLowQuality() } } else { _win.setLowQuality() } // for (let i = 0; i < nodes.length; i++) { // if (i === index || !nodes[i].querySelector('iframe')) continue // nodes[i].querySelector('iframe').contentWindow.startPlay() // } } } }, closeItem(index) { this.liveList.splice(index, 1, { user: {} }) }, openItem(index) { this.currentLiveIndex = index this.showFocus2 = true this.getData() }, selectItem(index) { let item = this.focusList[index] if (this.currentLiveIndex === this.styleIndex) { item.src += '#high' } this.liveList.splice(this.currentLiveIndex, 1, item) this.showFocus2 = false this.lineNumber++ }, // 全部静音 muteAll() { let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) for (let node of nodes) { let _iframe = node.querySelector('iframe') if (_iframe) { _iframe.contentWindow.mute() } } }, //点赞 like(index) { this.$refs.monitorContent.querySelectorAll( '.monitor_item' )[index].querySelector('iframe').contentWindow.like() }, //复制链接 copyUrl(index) { let input = document.createElement('input') document.body.append(input) input.setAttribute( 'value', 'http://live.acfun.cn/live/' + this.liveList[index].authorId ) input.select() document.execCommand('copy') input.remove() }, setGridLarge(index) { if (!this.gridSpecial) { return } this.styleIndex = index let _styleObj = this.styleArr[index] this.itemStyle = { gridColumn: _styleObj.col, gridRow: _styleObj.row, } if (this.optimiNet) { this.$nextTick(() => { setTimeout(() => { this.autoQuality() }, 500) }) } }, autoQuality() { if (!this.optimiNet) { return } let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) if (nodes[0].querySelector('iframe')) { for (let i = 0; i < nodes.length; i++) { nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) let _iframe = nodes[i].querySelector('iframe') if (_iframe) { console.log(_iframe.contentWindow) if (this.styleIndex === i && this.gridSpecial) { _iframe.contentWindow.setHighQuality() } else { _iframe.contentWindow.setLowQuality() } } } } }, async searchAndAdd() { let uid = this.searchUid console.log(uid) if (uid.indexOf('/live/') !== -1) { uid = uid.split('/live/')[1] } // 游客登录 let resObj = await guestsLogin() // 获取主播信息 let upInfo = await getLiverData(resObj, uid) if (!upInfo.data) { alert(upInfo.error_msg) return } let upData = await getUserData(uid) let obj = { user: { name: upData.profile.name, }, title: upInfo.data.caption, src: `//live.acfun.cn/live/${uid}`, } if (this.currentLiveIndex === this.styleIndex) { obj.src += '#high' } if (!this.liveList[this.currentLiveIndex].src) { this.lineNumber++ } this.liveList.splice(this.currentLiveIndex, 1, obj) if (this.optimiNet) { this.$nextTick(() => { setTimeout(() => { this.autoQuality() }, 2000) }) } this.showFocus2 = false let history = { img: upData.profile.headUrl, name: upData.profile.name, uid: uid, } this.searchUid = null let currentUidList = this.historyList.map(item => item.uid) if (currentUidList.indexOf(uid) === -1) { this.historyList.push(history) } if (this.historyList.length > 5) { this.historyList.unshift(0) } localStorage.historyList = JSON.stringify(this.historyList) }, async openHistory(item) { let uid = item.uid // 游客登录 let resObj = await guestsLogin() // 获取主播信息 let upInfo = await getLiverData(resObj, uid) if (!upInfo.data) { alert(upInfo.error_msg) return } let upData = await getUserData(uid) let obj = { user: { name: upData.profile.name, }, title: upInfo.data.caption, src: `//live.acfun.cn/live/${uid}`, } if (this.currentLiveIndex === this.styleIndex) { obj.src += '#high' } if (!this.liveList[this.currentLiveIndex].src) { this.lineNumber++ } this.liveList.splice(this.currentLiveIndex, 1, obj) this.showFocus2 = false if (this.optimiNet) { this.$nextTick(() => { this.autoQuality() }) } }, clearHistory() { this.historyList = [] localStorage.historyList = JSON.stringify(this.historyList) }, delHistory(index) { this.historyList.splice(index, 1) localStorage.historyList = JSON.stringify(this.historyList) }, playEgg() { setTimeout(() => { this.showEgg = true this.eggUp = true setTimeout(() => { this.$refs.audio.play() }, 500) setTimeout(() => { this.eggUp = false setTimeout(() => { this.showEgg = false }, 500) }, 6000) }, 1500) }, getMainPos() { const divs = document .querySelector('.category-wrapper') .querySelectorAll('div') this.divLeft = divs[divs.length - 1].offsetLeft + 100 + 'px' this.divTop = divs[divs.length - 1].offsetTop + 'px' }, handleSemoveScreen() { let interval = setInterval(() => { let el = document.querySelector('video') if (el) { clearInterval(interval) global.largeScreen = el el.onloadeddata = () => { stopPlay() } setTimeout(() => { stopPlay() }, 200) function stopPlay() { el.setAttribute('src', '') el.load() el.pause() document.querySelector('.tv-wrapper').remove() } setTimeout(() => { this.getMainPos() }, 500) // 触发visibilitychange的时候暂停首页播放 document.addEventListener('visibilitychange', () => { let stopPlay = setInterval(() => { el.pause() }, 100) setTimeout(() => { clearInterval(stopPlay) }, 5000) }) } }, 500) }, // 开始拖动控件 startPosition(e) { this.showMoving = true document.body.addEventListener('mouseup', this.endPosition) }, endPosition(e) { const target = this.$refs.dragEl let pageX = e.pageX let pageY = e.pageY if (pageX > document.body.clientWidth) { pageX = document.body.clientWidth } if (pageY > (document.body.clientHeight - target.clientHeight)) { pageY = document.body.clientHeight - target.clientHeight } this.movingLeft = pageX - 351 this.movingTop = pageY - 11 if (this.movingLeft < 0) { this.movingLeft = 0 } if (this.movingTop < 0) { this.movingTop = 0 } this.showMoving = false this.panelLeft = this.movingLeft this.panelTop = this.movingTop localStorage.panelTop = this.panelTop localStorage.panelLeft = this.panelLeft document.body.removeEventListener('mouseup', this.endPosition) }, dragMove(e) { this.showMoving = true const target = this.$refs.dragEl let pageX = e.pageX let pageY = e.pageY if (pageX > document.body.clientWidth) { pageX = document.body.clientWidth } if (pageY > (document.body.clientHeight - target.clientHeight)) { pageY = document.body.clientHeight - target.clientHeight } this.movingLeft = pageX - 351 this.movingTop = pageY - 11 if (this.movingLeft < 0) { this.movingLeft = 0 } if (this.movingTop < 0) { this.movingTop = 0 } }, // 改变音量 changeVol(e, index) { let value = e.target.value let uidList = this.volumeList.map(item => item.id) let uid = this.liveList[index].authorId let uidIndex = uidList.indexOf(uid) if (uidIndex !== -1) { this.volumeList.splice(uidIndex, 1, { id: uid, val: value }) let liveItem = this.liveList[index] liveItem.volume = value this.liveList.splice(index, 1, liveItem) } else { this.volumeList.push({ id: uid, val: value }) } localStorage.volumeList = JSON.stringify(this.volumeList) let nodes = this.$refs.monitorContent.querySelectorAll( '.monitor_item' ) let item = nodes[index] let _win = item.querySelector('iframe').contentWindow _win.changeVol(value / 100) } }, }) }, 500) let style_2 = document.createElement('style') style_2.innerHTML = '.monitor_container{width: 100%; height: 100vh; display: flex; align-items: center; position: fixed; top: 0;left: 0;z-index: 1000; background: rgba(0,0,0,1); transition: all 0.4s;}' + '.monitor_content{width: 100%; height: 100vh; display: grid; }' + `.monitor_container.night{filter: brightness(${brightness});}` + '.monitor_content.grid4{ grid-template-columns: repeat(2, 1fr);grid-template-rows: repeat(auto-fill, minmax(50vh, auto));}' + '.monitor_content.grid9{ grid-template-columns: repeat(3, 1fr);grid-template-rows: repeat(auto-fill, minmax(33.3vh, auto));}' + '.monitor_content.grid16{ grid-template-columns: repeat(4, 25%);grid-template-rows: repeat(auto-fill, minmax(25vh, auto));}' + '.monitor_content.hide{top: 100%; margin-top: -30px;} ' + '.monitor_panel{transform: translate3d(0,0,0); user-select:none; position: absolute; z-index: 100000; left: 10px; top: 35px; width: 355px; height: 40px;display: flex; align-items: center; border-radius: 20px; opacity: 0.4; background: #000; color: #fff; padding-left: 20px; box-shadow: 0 0 5px rgba(255,255,255,0.8);}' + '.monitor_panel:hover{opacity: 1;}' + `.monitor_panel .panel_drag{cursor: pointer; position: absolute; right: 5px; top: 10px;}` + '.monitor_panel_top{top: 2px!important; left: 10px!important;}' + '.monitor_panel span{margin-right: 10px; cursor: pointer; display: inline-block;}' + '.monitor_panel svg{width: 18px; height: auto;}' + '.monitor_item{ position: relative; transform-origin: 0% 0%; transition: all 0.3s; display:flex; justify-content: center;align-items:center;} .monitor_item p{display:none; positon:absolute;}' + '.monitor_item iframe{width: 100%;height: 100%}' + '.no_iframe{width: 180px; height: 100px; display: flex; justify-content: center; align-items:center; font-size: 18px; color:#fff; border-radius: 9px; border: 2px dashed #fff;}' + '.monitor_item p{width: 100%;height: 30px; box-sizing: border-box;display: none; animation: slideInBottom 0.2s; position: absolute; top: 0;left:0;color: #fff; padding: 0 12px; background: rgba(0,0,0,0.5); line-height: 30px; text-align: center; font-size: 16px;}' + '.monitor_item:hover p{display: block;}' + '.monitor_title {width: 50%; overflow: hidden; white-space:nowrap; text-overflow:ellipsis; display: inline-block;}' + '.monitor_like{position: absolute; top: 4px; right:154px;cursor: pointer; width: 22px; height: 22px;}' + '.monitor_url{position: absolute; top: 4px; right:120px;cursor: pointer; width: 22px; height: 22px;}' + '.monitor_close{position: absolute; top: 2px; right:75px;cursor: pointer} .monitor_scale{position: absolute; top: 2px; right:2%;cursor: pointer}' + '.followed_list{max-width: 90%; width: 1715px; margin: 0 auto; overflow:hidden; padding: 20px 0px; animation: slideInBottom 0.5s; animation-fill-mode:both;} ' + '.followed_list .followed_item{ float: left; width: 65px; height: 60px; overflow: hidden; }' + '.followed_list .followed_item img{width: 45px; height: 45px; border: 2px solid transparent; border-radius: 50%; display:block; margin: 0 auto; box-sizing: border-box; cursor:pointer;}' + '.followed_list .followed_item img.active{border: 2px solid red;}' + '.followed_list .followed_item p {font-size: 12px; color: #666; width: 100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;text-align: center; height: }' + '.focusBtn{position: absolute;top: 258px;left:40%; cursor: pointer; display: flex; align-items: center;}' + '.focusBtn span{margin-left: 10px;} .focusBtn input[type=checkbox]{position:relative; margin-left: 10px; width: 15px; height: 15px; }' + '.focusBtn input[type=checkbox]:after{position:absolute;width: 100%;height: 100%;left:0;top:0; background:#ec4556; display:inline-flex; justify-content: center; align-items: center;content:""; border-raiuds: 3px;}' + '.focusBtn input[type=checkbox]:checked:after{content:"✓"; color: #fff; font-size:12px;}' + '.focusBtn label{display: inline-flex; align-items: center;}' + '.followed_list_2{position: fixed; z-index: 200;width: 408px; height: 300px; top: 50%; left: 50%; margin-left: -200px;margin-top: -150px; ;overflow: auto; background: #fff; border-radius: 10px; padding: 15px 20px; padding-top: 25px}' + '.followed_list_2_close{background: #fff; color: #999; width: 45px!important; cursor: pointer; position:absolute; right: 10px; top: 4px;}' + '.open_live{display:inline-block; width: 80px; height: 22px; line-height: 22px; border-radius:4px; margin-left: 12px;text-align: center; background: #ec4556; color: #fff; cursor: pointer;}' + '@keyframes slideInBottom{from{transform:translateY(-50%);opacity:0;} to{transform:translateY(0);opacity:1;}}' document.body.append(style_2) } if (location.href.indexOf('/live/') !== -1) { //document.body.style.filter = 'brightness(30%)' if (localStorage.autoMedal && JSON.parse(localStorage.autoMedal)) { window.onload = () => { document.querySelectorAll('.danmaku-input')[1].onfocus = () => { let uid = location.href.split('/live/')[1] wearMedal(uid) } } } let liverId = parseInt(location.href.split('/live/')[1].split('#')) setLastVolume() if (localStorage.specialIcon && JSON.parse(localStorage.specialIcon)) { changeWebsiteIcon() } function setLastVolume() { let interval = setInterval(() => { let video = document.querySelector('video') if (video) { console.log(video) clearInterval(interval) const volList = JSON.parse(localStorage.volumeList) const idList = volList.map(item => item.id) const idIndex = idList.indexOf(liverId) console.log(`idIndex:${idIndex} liverId:${liverId} `) if (idIndex !== -1) { console.log(`idIndex:${idIndex} liverId:${liverId} val: ${volList[idIndex].val}`) video.onloadeddata = () => { video.volume = parseInt(volList[idIndex].val) / 100 } video.volume = parseInt(volList[idIndex].val) / 100 } else { video.volume = 0.5 } } }, 100) } async function changeWebsiteIcon() { let obj = await fetch('https://live.acfun.cn/rest/pc-direct/user/userInfo?userId=' + liverId).then(res => { return res.json() }) let img = obj.profile.headUrl let name = obj.profile.name var link = document.querySelector("link[rel~='icon']"); if (!link) { link = document.createElement('link'); link.rel = 'icon'; document.getElementsByTagName('head')[0].appendChild(link); } link.href = img if (document.title.indexOf('【') === -1) { document.title = `【${name}】 ${document.title}` } } let markEl = document.createElement('div') markEl.id = 'my_mark' markEl.innerHTML = '
' + '
' + '
' + '
' + '{{item.uid}}' + '{{item.name}}' + '删除' + '
' + '
' + '
添加
' + '
' let copyUidEl = document.createElement('div') copyUidEl.id = 'copy_uid' copyUidEl.innerHTML = '复制uid' let appendInterval = setInterval(() => { let containerEl = document.querySelector('.container-live-feed-messages') if (containerEl) { clearInterval(appendInterval) containerEl.append(markEl) initMark() document.querySelector('.user-information-head').append(copyUidEl) let style = document.createElement('style') style.innerHTML = '#my_mark{position: absolute; right: 10px; top: -12px; z-index: 99; height: 30px; z-index: 100; text-align: right;}' + '.mark_icon{width: 20px; height: 20px; line-height: 20px;text-align: center; cursor:pointer; border-radius: 10px; background: #333; color: #fff; z-index: 1000;opacity: 0.3;}' + '.mark_icon:hover{opacity:1;}' + '.mark_container{width: 220px; position: absolute; right:0; top: 30px; border-radius: 5px; border: 2px solid #aaa; background: #fff;}' + '.mark_content{width: 200px; height:300px; margin: 0 auto; margin-top: 10px; overflow: auto;}' + '.mark_item{display: flex; height: 35px; justify-content: space-betweem; align-items:center;} .mark_item span{width: 42%; display: inline-block; text-align: left;} .mark_del{width: 20%; cursor: pointer; text-align:center!important;}' + '.mark_add{display: flex; height: 35px; align-items: center;} .mark_add input{width: 75px; margin-left: 10px; border:none; border-bottom: 1px solid #aaa; font-size: 12px;}' + '.mark_add span{color: #999; cursor: pointer; margin-left: 9px;}' + '..user-information-head{position: relative;}' + '#copy_uid{position: absolute; cursor: pointer; width: 80px; height: 35px; text-align: center; line-height: 35px; color: #666;}' document.body.append(style) } }, 500) function initMark() { let markVue = new Vue({ el: '#my_mark', data() { return { list: [], uid: null, name: null, showContent: false, } }, created() { if (localStorage.markList) { this.list = JSON.parse(localStorage.markList) || [] } if (this.list.length > 0) { let _style = document.createElement('style') let styleStr = '' for (let item of this.list) { styleStr += `.nickname[data-user-id="${item.uid}"]::before{content:"${item.name}"; padding: 1px 5px; display: inline; border-radius: 4px; background:#CC99CC; color: #fff; font-size: 10px; margin-right: 4px;}` } _style.innerHTML = styleStr document.body.append(_style) } }, methods: { add() { if (!this.uid || !this.name) { return } this.list.push({ uid: this.uid, name: this.name, }) let style = document.createElement('style') style.innerHTML = `.nickname[data-user-id="${this.uid}"]::before{content:"${this.name}"; padding: 1px 5px; display: inline; border-radius: 4px; background:#CC99CC; color: #fff; font-size: 10px; margin-right: 4px;}` document.body.append(style) this.save() }, save() { localStorage.markList = JSON.stringify(this.list) }, del(index) { this.list.splice(index, 1) this.save() }, }, }) } let bindInputEvent = setInterval(() => { let area = document.querySelector('.wrap-input-area') if (area) { clearInterval(bindInputEvent) bindInputFn() } }, 500) async function bindInputFn() { let area = document.querySelector('.wrap-input-area') let list let param = location.href.split('/live/')[1] let storageName = 'history_' + param if (localStorage[storageName]) { list = JSON.parse(localStorage[storageName]) } else { list = [] } let index = list.length - 1 let _textarea = area.querySelector('textarea') area.addEventListener('keydown', (e) => { if (index < 0) return if (e.keyCode === 38) { let value = list[index--] dispatchInput(value) } }) area.addEventListener('keydown', (e) => { if (index >= list.length) return if ( e.keyCode === 40 && //_textarea.value.length <= 20 && index < list.length - 1 ) { let value = list[++index] dispatchInput(value) } }) _textarea.addEventListener('keydown', (e) => { if (e.keyCode === 13 && _textarea.value.length > 0) { addValue() } }) area.querySelector('.send-btn').addEventListener('click', (e) => { addValue() }) function addValue() { if (list.length >= 5) { list.splice(0, 1) } list.push(_textarea.value) localStorage[storageName] = JSON.stringify(list) index = list.length - 1 } } let addGoodSound = setInterval(() => { let container = document.querySelectorAll('.danmaku-input-wrap')[1] if (container) { clearInterval(addGoodSound) let soundsEl = document.createElement('div') soundsEl.classList = ['sweet_sounding'] soundsEl.innerHTML = _soundsgood_html__WEBPACK_IMPORTED_MODULE_1___default.a container.append(soundsEl) let soundVue = new Vue({ el: '.sweet_sounding', data() { return { showContent: false, content: '', list: [], timeout: null, editing: false, upName: null, uid: null, nickname: null, } }, created() { this.uid = location.href.split('/live/')[1] if (this.uid.indexOf('#') !== -1) { this.uid = this.uid.split('#')[0] } if (localStorage.danmakuList) { this.list = JSON.parse(localStorage.danmakuList) } this.getUpdata() this.nickname = localStorage['nickname_' + this.uid] }, methods: { async getUpdata() { // 游客登录 let resObj = await guestsLogin() // 获取主播信息 let upInfo = await getLiverData(resObj, this.uid) if (!upInfo.data) { //alert(upInfo.error_msg) return } let upData = await getUserData(this.uid) this.upName = upData.profile.name }, close() { this.showContent = false this.editing = false //localStorage.danmakuList = JSON.stringify(this.content) }, appendContent(index) { this.showContent = false let name if (this.nickname && this.nickname.length > 0) { name = this.nickname } else { name = this.upName } let value = this.list[index].replace(/{up}/g, name) dispatchInput(value) }, openContent() { this.showContent = !this.showContent if (localStorage.danmakuList) { this.list = JSON.parse(localStorage.danmakuList) } }, addContent() { this.list.push(this.content) this.content = null localStorage.danmakuList = JSON.stringify(this.list) }, del(index) { console.log(this.list) this.list.splice(index, 1) }, save() { localStorage.danmakuList = JSON.stringify(this.list) this.editing = false }, changeNickname() { let name = 'nickname_' + this.uid localStorage[name] = this.nickname }, }, }) } }, 1000) } function dispatchInput(value) { let _textarea = document .querySelectorAll('.danmaku-input-wrap')[1] .querySelector('textarea') _textarea.focus() var ev = new Event('input', { bubbles: true }) ev.simulated = true _textarea.value = value _textarea.dispatchEvent(ev) let evtObj = document.createEvent('UIEvents') evtObj.initUIEvent('keydown', true, true, window, 1) delete evtObj.keyCode if (typeof evtObj.keyCode === 'undefined') { //为了模拟keycode Object.defineProperty(evtObj, 'keyCode', { value: 32 }) } else { evtObj.key = String.fromCharCode(32) } _textarea.dispatchEvent(evtObj) } })() /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(6))) /***/ }), /* 6 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { var api = __webpack_require__(8); var content = __webpack_require__(9); content = content.__esModule ? content.default : content; if (typeof content === 'string') { content = [[module.i, content, '']]; } var options = {}; options.insert = "head"; options.singleton = false; var update = api(content, options); module.exports = content.locals || {}; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var isOldIE = function isOldIE() { var memo; return function memorize() { if (typeof memo === 'undefined') { // Test for IE <= 9 as proposed by Browserhacks // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 // Tests for existence of standard globals is to allow style-loader // to operate correctly into non-standard environments // @see https://github.com/webpack-contrib/style-loader/issues/177 memo = Boolean(window && document && document.all && !window.atob); } return memo; }; }(); var getTarget = function getTarget() { var memo = {}; return function memorize(target) { if (typeof memo[target] === 'undefined') { var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) { try { // This will throw an exception if access to iframe is blocked // due to cross-origin restrictions styleTarget = styleTarget.contentDocument.head; } catch (e) { // istanbul ignore next styleTarget = null; } } memo[target] = styleTarget; } return memo[target]; }; }(); var stylesInDom = []; function getIndexByIdentifier(identifier) { var result = -1; for (var i = 0; i < stylesInDom.length; i++) { if (stylesInDom[i].identifier === identifier) { result = i; break; } } return result; } function modulesToDom(list, options) { var idCountMap = {}; var identifiers = []; for (var i = 0; i < list.length; i++) { var item = list[i]; var id = options.base ? item[0] + options.base : item[0]; var count = idCountMap[id] || 0; var identifier = "".concat(id, " ").concat(count); idCountMap[id] = count + 1; var index = getIndexByIdentifier(identifier); var obj = { css: item[1], media: item[2], sourceMap: item[3] }; if (index !== -1) { stylesInDom[index].references++; stylesInDom[index].updater(obj); } else { stylesInDom.push({ identifier: identifier, updater: addStyle(obj, options), references: 1 }); } identifiers.push(identifier); } return identifiers; } function insertStyleElement(options) { var style = document.createElement('style'); var attributes = options.attributes || {}; if (typeof attributes.nonce === 'undefined') { var nonce = true ? __webpack_require__.nc : undefined; if (nonce) { attributes.nonce = nonce; } } Object.keys(attributes).forEach(function (key) { style.setAttribute(key, attributes[key]); }); if (typeof options.insert === 'function') { options.insert(style); } else { var target = getTarget(options.insert || 'head'); if (!target) { throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid."); } target.appendChild(style); } return style; } function removeStyleElement(style) { // istanbul ignore if if (style.parentNode === null) { return false; } style.parentNode.removeChild(style); } /* istanbul ignore next */ var replaceText = function replaceText() { var textStore = []; return function replace(index, replacement) { textStore[index] = replacement; return textStore.filter(Boolean).join('\n'); }; }(); function applyToSingletonTag(style, index, remove, obj) { var css = remove ? '' : obj.media ? "@media ".concat(obj.media, " {").concat(obj.css, "}") : obj.css; // For old IE /* istanbul ignore if */ if (style.styleSheet) { style.styleSheet.cssText = replaceText(index, css); } else { var cssNode = document.createTextNode(css); var childNodes = style.childNodes; if (childNodes[index]) { style.removeChild(childNodes[index]); } if (childNodes.length) { style.insertBefore(cssNode, childNodes[index]); } else { style.appendChild(cssNode); } } } function applyToTag(style, options, obj) { var css = obj.css; var media = obj.media; var sourceMap = obj.sourceMap; if (media) { style.setAttribute('media', media); } else { style.removeAttribute('media'); } if (sourceMap && btoa) { css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */"); } // For old IE /* istanbul ignore if */ if (style.styleSheet) { style.styleSheet.cssText = css; } else { while (style.firstChild) { style.removeChild(style.firstChild); } style.appendChild(document.createTextNode(css)); } } var singleton = null; var singletonCounter = 0; function addStyle(obj, options) { var style; var update; var remove; if (options.singleton) { var styleIndex = singletonCounter++; style = singleton || (singleton = insertStyleElement(options)); update = applyToSingletonTag.bind(null, style, styleIndex, false); remove = applyToSingletonTag.bind(null, style, styleIndex, true); } else { style = insertStyleElement(options); update = applyToTag.bind(null, style, options); remove = function remove() { removeStyleElement(style); }; } update(obj); return function updateStyle(newObj) { if (newObj) { if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) { return; } update(obj = newObj); } else { remove(); } }; } module.exports = function (list, options) { options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of