Help
RSS
API
Feed
Maltego
Contact
Domain > 98zumyb.xyz
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-10-25
104.21.52.111
(
ClassC
)
2025-05-14
172.67.198.51
(
ClassC
)
Port 80
HTTP/1.1 200 OKDate: Wed, 14 May 2025 15:34:47 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveLast-Modified: Mon, 31 Mar 2025 07:57:12 GMTAccess-Control-Allow-Origin: *Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: *sy-debug: *Accept-Ranges: bytescf-cache-status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sDIGmHgP8KSSXU7hv30DZILOJU80s26TJ7kyqClcra6HVfEDVcUSNy5%2FfsO%2BD56EkUeCi9oor12%2B8XRykp%2FEOf2u2ERg3dtEdWzhcN4ZfDc4NX3zLchkUEppHfwu8qQ%3D%3D},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 93fb762e5a2bfefe-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt7625&min_rtt7625&rtt_var3812&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes50&delivery_rate0&cwnd210&unsent_bytes0&cid0000000000000000&ts0&x0 !DOCTYPE html>html>head> title>MANGO/title> meta charsetUTF-8> link relicon typeimage/x-icon href./images/mango.ico /> !-- import CSS --> !-- link relstylesheet href./style/el.css> --> !-- 引入样式 -->!-- link relstylesheet hrefhttps://unpkg.com/element-ui/lib/theme-chalk/index.css> -->link relstylesheet hrefhttps://unpkg.com/element-ui@2.15.14/lib/theme-chalk/index.css> link relstylesheet href./style/index.css?t8> link relstylesheet href./muplayer/mui-player.min.css>/head>body classbody> div idapp @keydown.enterhandleSearch v-cloak> template> el-backtop :bottom60> img src./images/backUp.png /> /el-backtop> /template> div idheader> a idlogo href/index.html>img src./images/logo.png />/a> !-- img idstatus @clickclickStatus src./images/status.png v-ifuserInfo.id /> span classloginText v-else @clicklogin>登录/span> el-dropdown idlanguage typetext> span classel-dropdown-link> ENi classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item>中文/el-dropdown-item> el-dropdown-item>日语/el-dropdown-item> el-dropdown-item>EN/el-dropdown-item> /el-dropdown-menu> /el-dropdown> --> img idamplifier @clicktoggleSearch src./images/search.png /> el-menu idnavMenu :default-activeactiveIndex classel-menu-demo modehorizontal background-colorrgba(0,0,0,0) text-color#fff active-text-color#FFCB11 > el-menu-item v-for(plate, index) in platesList :keyplate.id :index`${index + 1}` @clickwindow.location.href`?moduleId${plate.child0.id}&activeIndex${index + 1}`> a>{{ plate.name }}/a> /el-menu-item> el-submenu index111> template slottitle>更多/template> el-menu-item :index`111-${subI + 1}` v-for(subP,subI) in morePlatesList :keysubP.id @clickwindow.location.href`?modelId${subP.id}&activeIndex${111- + (subI + 1) }&title${subP.name}` > a>{{ subP.name }}/a> /el-menu-item> /el-submenu> /el-menu> /div> el-collapse-transition> div idsearch v-showshowSearchInput> img src./images/vip.png /> div> el-input placeholder搜索你喜欢的视频 v-model.trimsearchText> template slotappend> div @clickhandleSearch> img src./images/amplifier_black.png /> span stylevertical-align: top;>搜索/span> /div> /template> /el-input> /div> /div> /el-collapse-transition> div classappCon> div classsearchResultContainer v-ifshowSearchResult && !loading> div classtitle>{{ searchTextVal }}的搜索结果/div> div classsort v-ifsearchResultList.length> el-dropdown :tabindexsortIndex @commandsortCommand> span classel-dropdown-link> {{ sortListsortIndex.name }}i classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item v-for(sort, i) in sortList :keysort.id :commandi>{{ sort.name }}/el-dropdown-item> /el-dropdown-menu> /el-dropdown> span>排序:/span> /div> div classsearchResult v-ifsearchResultList.length> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(sr.id) :titlesr.title v-for sr in searchResultList :keysr.id> img :srcsr.newImg || sr.previewImageUrl :originImgsr.previewImageUrl /> span>{{ sr.title }}/span> div classviews> img src./images/eye.png /> span>{{ sr?.actualPlayNum + (sr.virtualPlayNum?sr.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ sr.auditTime?.split( )0 }}/span> /div> /div> /div> el-pagination background :hide-on-single-pagetrue @current-changesearchPageChange layoutprev, pager, next :current-pagesearchPagination.pageNum :page-sizesearchPagination.pageSize :totalsearchPagination.total> /el-pagination> /div> div v-else classnoData> 暂无数据 /div> /div> div classmodelResourceContainer v-if!showSearchResult && showModelResource && !loading> div classtitle>{{ currentModel.remark?currentModel.remark:currentModel.name }}的搜索结果/div> div classsort> el-dropdown :tabindexmodelResourceSortIndex @commandmodelSortCommand> span classel-dropdown-link> {{ sortListmodelResourceSortIndex.name }}i classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item v-for(sort, i) in sortList :keysort.id :commandi>{{ sort.name }}/el-dropdown-item> /el-dropdown-menu> /el-dropdown> span>排序:/span> /div> div classsearchResult v-ifmodelResourceList.length> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(mr.id, mr.resourceType, mr.jumpUrl) :titlemr.title v-for mr in modelResourceList :keymr.id> img :srcmr.newImg || mr.previewImageUrl :originImgmr.previewImageUrl /> span>{{ mr.title }}/span> div classviews v-ifmr.resourceType1> img src./images/eye.png /> span>{{ mr?.actualPlayNum + (mr.virtualPlayNum?mr.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ mr.auditTime?.split( )0 }}/span> /div> /div> /div> el-pagination background :hide-on-single-pagetrue @current-changemodelPageChange layoutprev, pager, next :current-pagemodelResourcePagination.pageNum :page-sizemodelResourcePagination.pageSize :totalmodelResourcePagination.total> /el-pagination> /div> div v-else classnoData> 暂无数据 /div> /div> div classmodelResourceContainer v-ifloading> div classsearchResult> el-row :gutter20> el-skeleton :loadingloading animated :count20> template slottemplate> el-col :span6> div classskelton-list-item> img src./images/skelton.png styleborder-radius: 10px; /> /div> /el-col> /template> /el-skeleton> /el-row> /div> /div> div classplayer v-if!showSearchResult && showPlayer> div classupperContent> div classleftContent> div idvideo> div classtopLeft v-ifshowMosaic> img src./images/mosaic.png /> /div> div classbottomRight v-ifshowMosaic> img src./images/mosaic.png /> /div> /div> div classvideoName>片名: {{ currentVideoInfo.title }}/div> div classtags> span>标签:/span> ul v-ifcurrentVideoInfo.tags> li v-for(tag,i) in currentVideoInfo.tags.split(,) :keyi @clicktagClick(tag)>{{ tag }}/li> /ul> /div> /div> div classrightContent> div v-forsb in sideBarList :keysb.id :titlesb.title @clickvideoClick(sb.id)> img :srcsb.newImg || sb.previewImageUrl :originImgsb.previewImageUrl /> span>{{ sb.subTitle }}/span> /div> /div> /div> div classguessLike> div classguessHeader> span>猜你喜欢/span> div classchange @clickchangeLike>span>换一批/span>img src./images/refresh.png :class{ rotatingElement: showRotate } />/div> /div> div classguessContent> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(ll.id, ll.resourceType, ll.jumpUrl) :titlell.title v-for ll in likeList :keyll.id> img :srcll.newImg || ll.previewImageUrl :originImgll.previewImageUrl /> span>{{ ll.title }}/span> div classviews v-ifll.resourceType1> img src./images/eye.png /> span>{{ ll?.actualPlayNum + (ll.virtualPlayNum?ll.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ ll.auditTime?.split( )0 }}/span> /div> /div> /div> /div> /div> /div> div idfooter> el-row> el-col :span24> !-- img src./images//logo.png /> --> div idresponsity> 免责声明:若本站收录的资源侵犯了您的权益,请联系我们删除,谢谢合作!本站每日更新, 视频中的广告为第三方广告,本站不做担保,请自行鉴别。本站注册在美利坚, 遵守美利坚的法律,无未成年内容。禁止中国大陆和未满18周岁用户访问! /div> /el-col> !-- el-col :span12> el-row :gutter20> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> /el-row> /el-col> --> /el-row> /div> div idcopyright> Copyright © 2024 https://mgtv32.com rights reserved /div> /div> !-- 登录弹窗 --> el-dialog title登陆解锁更多体验! :visible.syncshowLoginDialog width548px classloginDialog @closedloginClose> div classtitle>已绑定邮箱的用户,可输入邮箱号+密码登陆/div> el-form :modelloginForm status-icon :rulesrules refloginForm > el-form-item :labelnull propuserId> el-input v-modelloginForm.userId autocompleteoff placeholder请输入账号ID/邮箱>/el-input> /el-form-item> el-form-item :labelnull proppassword> el-input placeholder请输入密码 v-modelloginForm.password show-password typepassword>/el-input> /el-form-item> el-form-item :labelnull propverifyCode> el-input placeholder请输入验证码 v-modelloginForm.verifyCode> template slotappend> img :srcconfirmCodeUrl @clickloadConfirmCodeUrl /> /template> /el-input> /el-form-item> el-button typewarning round stylewidth: 90%; @clicksubmitLogin>提 交/el-button> /el-form> div classloginFooter> span>一键注册/span>span>手动注册/span> div>一键注册自动生成账号和密码,手动注册自行输入账号密码/div> /div> /el-dialog> /div>/body> !-- import Vue before Element --> script src./js/vue.js>/script> !-- import JavaScript --> !-- script src./js/index.js>/script> --> !-- 引入组件库 --> !-- script srchttps://unpkg.com/element-ui/lib/index.js>/script> --> script srchttps://unpkg.com/element-ui@2.15.14/lib/index.js>/script> script src./js/axios.min.js>/script> script src./js/fp.min.js>/script> script typetext/javascript> var CryptoJSCryptoJS||function(u,p){var d{},ld.lib{},sfunction(){},tl.Base{extend:function(a){s.prototypethis;var cnew s;a&&c.mixIn(a);c.hasOwnProperty(init)||(c.initfunction(){c.$super.init.apply(this,arguments)});c.init.prototypec;c.$superthis;return c},create:function(){var athis.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(thiscac);a.hasOwnProperty(toString)&&(this.toStringa.toString)},clone:function(){return this.init.prototype.extend(this)}}, rl.WordArrayt.extend({init:function(a,c){athis.wordsa||;this.sigBytesc!p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var cthis.words,ea.words,jthis.sigBytes;aa.sigBytes;this.clamp();if(j%4)for(var k0;ka;k++)cj+k>>>2|(ek>>>2>>>24-8*(k%4)&255)24-8*((j+k)%4);else if(65535e.length)for(k0;ka;k+4)cj+k>>>2ek>>>2;else c.push.apply(c,e);this.sigBytes+a;return this},clamp:function(){var athis.words,cthis.sigBytes;ac>>>2&4294967295 32-8*(c%4);a.lengthu.ceil(c/4)},clone:function(){var at.clone.call(this);a.wordsthis.words.slice(0);return a},random:function(a){for(var c,e0;ea;e+4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),wd.enc{},vw.Hex{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++){var kcj>>>2>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j+2)ej>>>3|parseInt(a.substr(j, 2),16)24-4*(j%8);return new r.init(e,c/2)}},bw.Latin1{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++)e.push(String.fromCharCode(cj>>>2>>>24-8*(j%4)&255));return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j++)ej>>>2|(a.charCodeAt(j)&255)24-8*(j%4);return new r.init(e,c)}},xw.Utf8{stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error(Malformed UTF-8 data);}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, ql.BufferedBlockAlgorithmt.extend({reset:function(){this._datanew r.init;this._nDataBytes0},_append:function(a){stringtypeof a&&(ax.parse(a));this._data.concat(a);this._nDataBytes+a.sigBytes},_process:function(a){var cthis._data,ec.words,jc.sigBytes,kthis.blockSize,bj/(4*k),ba?u.ceil(b):u.max((b|0)-this._minBufferSize,0);ab*k;ju.min(4*a,j);if(a){for(var q0;qa;q+k)this._doProcessBlock(e,q);qe.splice(0,a);c.sigBytes-j}return new r.init(q,j)},clone:function(){var at.clone.call(this); a._datathis._data.clone();return a},_minBufferSize:0});l.Hasherq.extend({cfg:t.extend(),init:function(a){this.cfgthis.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a, e)).finalize(b)}}});var nd.algo{};return d}(Math); (function(){var uCryptoJS,pu.lib.WordArray;u.enc.Base64{stringify:function(d){var ld.words,pd.sigBytes,tthis._map;d.clamp();d;for(var r0;rp;r+3)for(var w(lr>>>2>>>24-8*(r%4)&255)16|(lr+1>>>2>>>24-8*((r+1)%4)&255)8|lr+2>>>2>>>24-8*((r+2)%4)&255,v0;4>v&&r+0.75*vp;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(lt.charAt(64))for(;d.length%4;)d.push(l);return d.join()},parse:function(d){var ld.length,sthis._map,ts.charAt(64);t&&(td.indexOf(t),-1!t&&(lt));for(var t,r0,w0;w l;w++)if(w%4){var vs.indexOf(d.charAt(w-1))2*(w%4),bs.indexOf(d.charAt(w))>>>6-2*(w%4);tr>>>2|(v|b)24-8*(r%4);r++}return p.create(t,r)},_map:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/}})(); (function(u){function p(b,n,a,c,e,j,k){bb+(n&a|~n&c)+e+k;return(bj|b>>>32-j)+n}function d(b,n,a,c,e,j,k){bb+(n&c|a&~c)+e+k;return(bj|b>>>32-j)+n}function l(b,n,a,c,e,j,k){bb+(n^a^c)+e+k;return(bj|b>>>32-j)+n}function s(b,n,a,c,e,j,k){bb+(a^(n|~c))+e+k;return(bj|b>>>32-j)+n}for(var tCryptoJS,rt.lib,wr.WordArray,vr.Hasher,rt.algo,b,x0;64>x;x++)bx4294967296*u.abs(u.sin(x+1))|0;rr.MD5v.extend({_doReset:function(){this._hashnew w.init(1732584193,4023233417,2562383102,271733878)}, _doProcessBlock:function(q,n){for(var a0;16>a;a++){var cn+a,eqc;qc(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360}var athis._hash.words,cqn+0,eqn+1,jqn+2,kqn+3,zqn+4,rqn+5,tqn+6,wqn+7,vqn+8,Aqn+9,Bqn+10,Cqn+11,uqn+12,Dqn+13,Eqn+14,xqn+15,fa0,ma1,ga2,ha3,fp(f,m,g,h,c,7,b0),hp(h,f,m,g,e,12,b1),gp(g,h,f,m,j,17,b2),mp(m,g,h,f,k,22,b3),fp(f,m,g,h,z,7,b4),hp(h,f,m,g,r,12,b5),gp(g,h,f,m,t,17,b6),mp(m,g,h,f,w,22,b7), fp(f,m,g,h,v,7,b8),hp(h,f,m,g,A,12,b9),gp(g,h,f,m,B,17,b10),mp(m,g,h,f,C,22,b11),fp(f,m,g,h,u,7,b12),hp(h,f,m,g,D,12,b13),gp(g,h,f,m,E,17,b14),mp(m,g,h,f,x,22,b15),fd(f,m,g,h,e,5,b16),hd(h,f,m,g,t,9,b17),gd(g,h,f,m,C,14,b18),md(m,g,h,f,c,20,b19),fd(f,m,g,h,r,5,b20),hd(h,f,m,g,B,9,b21),gd(g,h,f,m,x,14,b22),md(m,g,h,f,z,20,b23),fd(f,m,g,h,A,5,b24),hd(h,f,m,g,E,9,b25),gd(g,h,f,m,k,14,b26),md(m,g,h,f,v,20,b27),fd(f,m,g,h,D,5,b28),hd(h,f, m,g,j,9,b29),gd(g,h,f,m,w,14,b30),md(m,g,h,f,u,20,b31),fl(f,m,g,h,r,4,b32),hl(h,f,m,g,v,11,b33),gl(g,h,f,m,C,16,b34),ml(m,g,h,f,E,23,b35),fl(f,m,g,h,e,4,b36),hl(h,f,m,g,z,11,b37),gl(g,h,f,m,w,16,b38),ml(m,g,h,f,B,23,b39),fl(f,m,g,h,D,4,b40),hl(h,f,m,g,c,11,b41),gl(g,h,f,m,k,16,b42),ml(m,g,h,f,t,23,b43),fl(f,m,g,h,A,4,b44),hl(h,f,m,g,u,11,b45),gl(g,h,f,m,x,16,b46),ml(m,g,h,f,j,23,b47),fs(f,m,g,h,c,6,b48),hs(h,f,m,g,w,10,b49),gs(g,h,f,m, E,15,b50),ms(m,g,h,f,r,21,b51),fs(f,m,g,h,u,6,b52),hs(h,f,m,g,k,10,b53),gs(g,h,f,m,B,15,b54),ms(m,g,h,f,e,21,b55),fs(f,m,g,h,v,6,b56),hs(h,f,m,g,x,10,b57),gs(g,h,f,m,t,15,b58),ms(m,g,h,f,D,21,b59),fs(f,m,g,h,z,6,b60),hs(h,f,m,g,C,10,b61),gs(g,h,f,m,j,15,b62),ms(m,g,h,f,A,21,b63);a0a0+f|0;a1a1+m|0;a2a2+g|0;a3a3+h|0},_doFinalize:function(){var bthis._data,nb.words,a8*this._nDataBytes,c8*b.sigBytes;nc>>>5|12824-c%32;var eu.floor(a/ 4294967296);n(c+64>>>94)+15(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360;n(c+64>>>94)+14(a8|a>>>24)&16711935|(a24|a>>>8)&4278255360;b.sigBytes4*(n.length+1);this._process();bthis._hash;nb.words;for(a0;4>a;a++)cna,na(c8|c>>>24)&16711935|(c24|c>>>8)&4278255360;return b},clone:function(){var bv.clone.call(this);b._hashthis._hash.clone();return b}});t.MD5v._createHelper(r);t.HmacMD5v._createHmacHelper(r)})(Math); (function(){var uCryptoJS,pu.lib,dp.Base,lp.WordArray,pu.algo,sp.EvpKDFd.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfgthis.cfg.extend(d)},compute:function(d,r){for(var pthis.cfg,sp.hasher.create(),bl.create(),ub.words,qp.keySize,pp.iterations;u.lengthq;){n&&s.update(n);var ns.update(d).finalize(r);s.reset();for(var a1;ap;a++)ns.finalize(n),s.reset();b.concat(n)}b.sigBytes4*q;return b}});u.EvpKDFfunction(d,l,p){return s.create(p).compute(d, l)}})(); CryptoJS.lib.Cipher||function(u){var pCryptoJS,dp.lib,ld.Base,sd.WordArray,td.BufferedBlockAlgorithm,rp.enc.Base64,wp.algo.EvpKDF,vd.Ciphert.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfgthis.cfg.extend(b);this._xformModee;this._keya;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()}, finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return(stringtypeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return(stringtypeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipherv.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var bp.mode{},xfunction(e,a,b){var cthis._iv;c?this._ivu:cthis._prevBlock;for(var d0;db;d++)ea+d^ cd},q(d.BlockCipherModel.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._ciphere;this._iva}})).extend();q.Encryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlocke.slice(a,a+c)}});q.Decryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize,de.slice(a,a+c);b.decryptBlock(e,a);x.call(this, e,a,c);this._prevBlockd}});bb.CBCq;q(p.pad{}).Pkcs7{pad:function(a,b){for(var c4*b,cc-a.sigBytes%c,dc24|c16|c8|c,l,n0;nc;n+4)l.push(d);cs.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-a.wordsa.sigBytes-1>>>2&255}};d.BlockCipherv.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var athis.cfg,ba.iv,aa.mode;if(this._xformModethis._ENC_XFORM_MODE)var ca.createEncryptor;else ca.createDecryptor,this._minBufferSize1;this._modec.call(a, this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var athis.cfg.padding;if(this._xformModethis._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var bthis._process(!0)}else bthis._process(!0),a.unpad(b);return b},blockSize:4});var nd.CipherParamsl.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b(p.format{}).OpenSSL{stringify:function(a){var ba.ciphertext;aa.salt;return(a?s.create(1398893684, 1701076831).concat(a).concat(b):b).toString(r)},parse:function(a){ar.parse(a);var ba.words;if(1398893684b0&&1701076831b1){var cs.create(b.slice(2,4));b.splice(0,4);a.sigBytes-16}return n.create({ciphertext:a,salt:c})}},ad.SerializableCipherl.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){dthis.cfg.extend(d);var la.createEncryptor(c,d);bl.finalize(b);ll.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, decrypt:function(a,b,c,d){dthis.cfg.extend(d);bthis._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){returnstringtypeof a?b.parse(a,this):a}}),p(p.kdf{}).OpenSSL{execute:function(a,b,c,d){d||(ds.random(8));aw.create({keySize:b+c}).compute(a,d);cs.create(a.words.slice(b),4*c);a.sigBytes4*b;return n.create({key:a,iv:c,salt:d})}},cd.PasswordBasedCiphera.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){lthis.cfg.extend(l);dl.kdf.execute(d, b.keySize,b.ivSize);l.ivd.iv;ba.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){lthis.cfg.extend(l);cthis._parse(c,l.format);dl.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.ivd.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); (function(){for(var uCryptoJS,pu.lib.BlockCipher,du.algo,l,s,t,r,w,v,b,x,q,n,a,c0;256>c;c++)ac128>c?c1:c1^283;for(var e0,j0,c0;256>c;c++){var kj^j1^j2^j3^j4,kk>>>8^k&255^99;lek;ske;var zae,Faz,GaF,y257*ak^16843008*k;tey24|y>>>8;rey16|y>>>16;wey8|y>>>24;vey;y16843009*G^65537*F^257*z^16843008*e;bky24|y>>>8;xky16|y>>>16;qky8|y>>>24;nky;e?(ez^aaaG^z,j^aaj):ej1}var H0,1,2,4,8, 16,32,64,128,27,54,dd.AESp.extend({_doReset:function(){for(var athis._key,ca.words,da.sigBytes/4,a4*((this._nRoundsd+6)+1),ethis._keySchedule,j0;ja;j++)if(jd)ejcj;else{var kej-1;j%d?6d&&4j%d&&(klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255):(kk8|k>>>24,klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255,k^Hj/d|024);ejej-d^k}cthis._invKeySchedule;for(d0;da;d++)ja-d,kd%4?ej:ej-4,cd4>d||4>j?k:blk>>>24^xlk>>>16&255^qlk>>> 8&255^nlk&255},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var dac+1;ac+1ac+3;ac+3d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);dac+1;ac+1ac+3;ac+3d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var mthis._nRounds,gab^c0,hab+1^c1,kab+2^c2,nab+3^c3,p4,r1;rm;r++)var qdg>>>24^eh>>>16&255^jk>>>8&255^ln&255^cp++,sdh>>>24^ek>>>16&255^jn>>>8&255^lg&255^cp++,t dk>>>24^en>>>16&255^jg>>>8&255^lh&255^cp++,ndn>>>24^eg>>>16&255^jh>>>8&255^lk&255^cp++,gq,hs,kt;q(fg>>>2424|fh>>>16&25516|fk>>>8&2558|fn&255)^cp++;s(fh>>>2424|fk>>>16&25516|fn>>>8&2558|fg&255)^cp++;t(fk>>>2424|fn>>>16&25516|fg>>>8&2558|fh&255)^cp++;n(fn>>>2424|fg>>>16&25516|fh>>>8&2558|fk&255)^cp++;abq;ab+1s;ab+2t;ab+3n},keySize:8});u.AESp._createHelper(d)})(); /script> script src./muplayer/mui-player.min.js>/script> script src./muplayer/hls.min.js>/script> script src./muplayer/mui-player-mobile-plugin.min.js>/script> script> const getFingerprint async (cb, ip)>{ const fpPromise await FingerprintJS.load({debug: false}); // 调用FingerprintJS.load()返回一个Promise对象,用于加载和初始化FingerprintJS库。 // 可给FingerprintJS.load()传参{debug: true}开启调试模式 const result await fpPromise.get(); const { fontPreferences, audio, canvas, hardwareConcurrency, plugins, touchSupport, pdfViewerEnabled, screenResolution, localStorage, ...components } result.components; const extendedComponents { ...components, ip:{ value: ip, duration:0 }, userAgent: { value: navigator.userAgent, duration: 0, } }; // console.log(extendedComponents, extendedComponents); // 调用fpPromise.get()获取访问者指纹信息,并返回一个包含指纹ID和其他信息的结果对象。 const fingerprintId FingerprintJS.hashComponents(extendedComponents); sessionStorage.setItem(fingerprintId, fingerprintId); cb(); }; let inviteInfo null; const getInviteCode () > { let url decodeURIComponent(location.href) if (url.includes(?)) { inviteInfo url .split(?)1 .split(&) .reduce((tar, v) > { let key v.split() key0 channelCode && (tarmchCode key1?.replace(/(\#).*/, )) key0 inviteCode && (tarinvitationCode key1?.replace(/\#.*/, )) return tar }, {}) } return } getInviteCode(); // 图片加载失败用备用图片 window.addEventListener(error, event > { // 过滤js error let target event.target || event.srcElement; if(target.src && target.src.endsWith(.txt)){ (tg>{ fetch(target.src) .then(response>response.text()) .then(res>{ // console.log(++c, count); tg.src res; }, err>{ // 取源地址 let attribute target.attributes.originImg; if(target instanceof HTMLImageElement && attribute && target.src!attribute.value) { target.src target.attributes.originImg.value; }; }); })(target); }else{ let attribute target.attributes.originImg; if(target instanceof HTMLImageElement && attribute && target.src!attribute.value) { target.src target.attributes.originImg.value; }; } }, true); // 获取url参数 const urlParams new URLSearchParams(window.location.search); const moduleId urlParams.get(moduleId); const modelId urlParams.get(modelId); const title urlParams.get(title); const resourceId urlParams.get(resourceId); const activeIndex moduleId!undefined || modelId !undefined ? urlParams.get(activeIndex) : 1; // 地址 // const host http://18.163.32.129:18892; // 测试环境 const host /; // 线上环境 const getVersion /platform/app-version; // 获取flag const getAllPlates /module/load-module; // 获取所有版块 const getModels /model/load-model; // 获取模块 const searchKeyWord /res/search; // 关键字搜索 const getModelResource /model/load-model-resource; // 查询你模组资源; const getConfirmCode /user/captcha; // 获取验证码 const getVideoResource /res/load-details; // 通过id获取视频资源 const getPlayUrl /res/play; // 获取播放地址 const viewRecord /res/watch; // 观看记录 const getLikeList /res/load-home; // 获取猜你喜欢列表 const userLogin /user/login/v1; // 用户登录 const domainChcek /front-domain/domain-can-use; // 验证当前域名是否可用 // AES 解密公钥 const AES_KEY f34923d8ef8a427d; const AES_IV 3492302601345106; const key CryptoJS.enc.Utf8.parse(AES_KEY) // 十六位十六进制数作为密钥 const iv CryptoJS.enc.Utf8.parse(AES_IV) // 十六位十六进制数作为密钥偏移量 // 正则,数字和字母 const REG_ALPHABET_NUM /^0-9a-zA-Z*$/; // 邮箱正则表达式 const EMAIL_REG /^\w+((.\w+)|(-\w+))@A-Za-z0-9+((.|-)A-Za-z0-9+).A-Za-z0-9+$/; // 跳收藏页协议 const schme https://; // 测试环境是http 线上是https const check domainList>{ const firstDomain domainList.shift(); const xhr new XMLHttpRequest(); xhr.open(GET, `${schme}${firstDomain}`, true); xhr.onreadystatechange function(){ if(xhr.readyState4){ if(xhr.status200){ // 域名可用,直接跳转 window.location.href `${schme}${firstDomain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}`; }else{ // 域名不可用,调用下一个备用域名 if(domainList.length){ check(domainList); } } } } xhr.send(); } // 解密方法 const Decrypt function(word) { const base64 CryptoJS.enc.Base64.parse(word) const src CryptoJS.enc.Base64.stringify(base64) // 解密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7) const decrypt CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) const decryptedStr decrypt.toString(CryptoJS.enc.Utf8) return decryptedStr.toString() } // 加密方法 const Encrypt function(word, newkey) { const srcs CryptoJS.enc.Utf8.parse(word) const nkey newkey ? CryptoJS.enc.Utf8.parse(newkey) : key const encrypted CryptoJS.AES.encrypt(srcs, nkey, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) } //const test 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; //console.log(JSON.parse(Decrypt(test)), test111111111111111111); const front /proxy/api/front; // 创建 axios 实例 const request axios.create({ baseURL: host, timeout: 20000, // 请求超时时间 }); // 异常拦截处理器 const errorHandler error > { if (error.response) { const { data {}, status, statusText } error.response // 403 无权限 if (status 403) { // showNotify({ // type: danger, // message: (data && data.message) || statusText, // }) console.log(403 无权限); } // 401 未登录/未授权 if (status 401 && data.result && data.result.isLogin) { // showNotify({ // type: danger, // message: 未登录/未授权, // }) console.log(未登录/未授权); } } return Promise.reject(error) } // 请求拦截器 const requestHandler config > { // const common useCommon(pinia) // config.cancelToken new CancelToken((cancel > { // if (Whitelist.includes(config.url) || router.currentRoute?.value?.name Featured) return // common.pushRequest(cancel) // })) config.url front + config.url config.headersdevice 1 // config.headerstoken common.userInfo?.token const userInfo sessionStorage.getItem(userInfo); config.headerstoken userInfo ? JSON.parse(userInfo).token : undefined; if (config.method ! get) { const flag sessionStorage.getItem(flag); const realFlag flag ? flag : AES_KEY; config.dataflag realFlag; // showNotify({ // type: danger, // message: (JSON.stringify(config.data)), // }) config.data { param: Encrypt(JSON.stringify(config.data), realFlag) } } return config } // Add a request interceptor request.interceptors.request.use(requestHandler, errorHandler) // 响应拦截器 const responseHandler response > { // const common useCommon(pinia) // 解密返回的结果 const obj JSON.parse(Decrypt(response.data.data)) response.data.data obj; let { code, msg } response.data if (code 200) { return response.data } else { switch (code) { case 401: // if (common.userInfo?.token!) { // router.push({ name: Home }) // common.clearHeartbeatTimer() // common.setUserInfo(null) // } console.log(未登录); return response.data break case 402: return response.data break case 2001: return response.data break case 2002: // showFailToast(msg) // common.setUserInfo(null) // location.reload(); // flag失效了 sessionStorage.removeItem(flag); location.reload(); break default: // showNotify({ // type: danger, // message: msg, // }) console.log(其他问题); return response.data } } // return response.data } // Add a response interceptor request.interceptors.response.use(responseHandler, errorHandler)// fetch(https://jsonip.com)fetch(https://myip.ipip.net/json).then(response>response.json()).then(res>{ getFingerprint(()>{ new Vue({ el: #app, data: function() { const validateAccount (rule, value, callback) > { if (!value) { return callback(new Error(请输入用户ID/邮箱)); } else { if (value.length > 40) { callback(new Error(用户ID/邮箱长度不能超过40个字符)); } else { if (value.indexOf(@) ! -1) { // 是邮箱 if (!EMAIL_REG?.test(value)) { callback(new Error(邮箱格式不正确)); } } else { if (!REG_ALPHABET_NUM?.test(value)) { callback(new Error(用户ID只能由数字和字母组成)); } } } callback(); } }; const validatePassword (rule, value, callback) > { if (!value) return callback(new Error(请输入密码)) if (value.length > 12) return callback(new Error(密码长度不能超过12个字符)) if (!REG_ALPHABET_NUM.test(value)) return callback(new Error(密码只能由数字和字母组成)) return callback() }; const validateCheckCode (rule, value, callback) > { if (!value) return callback(new Error(请输入验证码)) if (value?.length ! 4) return callback(new Error(请输入正确的验证码)) if (value) return callback() }; return { activeIndex: activeIndex!undefined?activeIndex:1, showSearchInput: false, // 显示搜索框 showSearchResult: false, // 显示搜索结果 showModelResource: false, // 显示模组资源 showPlayer: false, // 显示播放器 searchText: , searchTextVal: , platesList:, morePlatesList: , modelList: , location: window.location, searchPagination: { pageNum: 1, pageSize: 20, total: 0, }, sortList: { id:2, name: 最近更新 }, { id:6, name: 今日热门 }, { id:7, name: 本周热门 }, { id:8, name: 本月热门 }, , sortIndex: 0, searchResultList: , modelResourceList:, modelResourcePagination: { pageNum: 1, pageSize: 20, total: 0, }, modelResourceSortIndex: 0, currentModel: {}, showLoginDialog: false, loginForm: { userId: , password: , verifyCode:, }, confirmCodeUrl: , // 验证码地址 currentVideoInfo: {}, // 当前 播放视频信息 likeList: , // 猜你喜欢列表 likePagination: { pageNum: 1, pageSize: 26, }, userInfo: {}, // 当前登录用户信息 rules:{ userId: { validator: validateAccount, trigger: blur}, password: { validator: validatePassword, trigger: blur}, verifyCode: { validator: validateCheckCode, trigger: blur}, }, sideBarList:, // 播放页侧栏列表 loading: true, player: null, // 播放器对象 window:window, showRotate: false, showMosaic: false, // 是否显示马赛克 } }, async created() { const domainRes await request({ url: `${domainChcek}`, method: POST, data: { domain: location.host } }); const { code, data } domainRes; if(code200){ const { canUse, collectDomain } data; if(canUse0){ // 当前域名不可用,跳收藏页域名 if(collectDomain && collectDomain.length){ check(collectDomain); } } } const userInfoStr sessionStorage.getItem(userInfo); if(userInfoStr){ this.userInfo JSON.parse(userInfoStr); } if(resourceId){ this.showModelResource false; this.showSearchResult false; this.showPlayer true; this.loading false; this.loadGuessLike(); // 加载猜你喜欢 const res await request({ url: `${getVideoResource}`, method: POST, data: { id:resourceId }}); const {code, data, msg} res; if(code200){ this.currentVideoInfo data; const browserId sessionStorage.getItem(fingerprintId); const playRes await request({ url: `${getPlayUrl}`, method: POST, data: { id:resourceId, browserId, userId: browserId }}); if(playRes.code200){ const browserId sessionStorage.getItem(fingerprintId); await request({ url: `${viewRecord}`, method: POST, data: { id:resourceId, browserId }}); // 观看记录 let playerUrl Decrypt(playRes.data); // 视频地址 this.initPlayer(playerUrl); }else{ this.$message(playRes.msg); } }else{ this.$message(msg); } } }, async mounted() { // const flag sessionStorage.getItem(flag); // if(flag){ // this.getPlateAndModel(); // }else{ // 获取flag const browserId sessionStorage.getItem(fingerprintId); const res await request({ url: `${getVersion}`, method: POST, data: { browserId, channelCode: inviteInfo?inviteInfo.mchCode: pingtai } }); const { code, data, msg } res; if(code200){ const { flag } data; sessionStorage.setItem(flag, flag); this.getPlateAndModel(); }else{ this.$message(msg); } // } }, methods: { toggleSearch(){ this.showSearchInput !this.showSearchInput; if(this.showSearchInput){ window.scrollTo(0,0); if(!this.showSearchResult){ this.searchText ; this.searchPagination.pageNum 1; } } }, handleSearch(){ this.searchPagination.pageNum 1; this.search(); }, async search(sortType){ this.loading true; this.activeIndex -1; const res await request({ url: `${searchKeyWord}`, method: POST, data: { type: 1, pageNum: this.searchPagination.pageNum, pageSize: this.searchPagination.pageSize, title: this.searchText, sortType: this.sortListthis.sortIndex.id, } }); this.searchTextVal this.searchText; this.loading false; // this.activeIndex ; this.modelList ; this.showSearchResult true; this.showSearchInput false; if(this.player){ this.player.destroy(); this.player null; } const {code, data, msg } res; if(code200){ const len data.list.length; for (let i 0; i len; i++) { const c data.listi; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } const { list, total } data; this.searchPagination.total total; this.searchResultList list; }else{ this.$message(msg); } }, sortCommand(index) { this.sortIndex index; this.searchPagination.pageNum 1; this.search(this.sortListindex.id); }, modelSortCommand(index) { this.modelResourceSortIndex index; this.modelResourcePagination.pageNum 1; this.loadModelResource(this.sortListindex.id); }, searchPageChange(e){ this.searchPagination.pageNum e; this.search(); window.scrollTo(0,0); }, modelPageChange(e){ this.modelResourcePagination.pageNum e; this.loadModelResource(); window.scrollTo(0,0); }, async loadModelResource(sortType){ this.showModelResource true; this.showSearchResult false; const param { modelId: this.currentModel.id, pageNum: this.modelResourcePagination.pageNum, pageSize: this.modelResourcePagination.pageSize, sortType: sortType?sortType:this.sortList0.id, }; this.loading true; const res await request({ url: `${getModelResource}`, method: POST, data: param }); this.loading false; const {code, data, msg } res; if(code200){ const len data.list.length; for (let index 0; index len; index++) { const item data.listindex; if(item.newImg.includes(images_add)){ const arr item.newImg.split(images_add); item.newImg `${location.origin}/images_add${arr1}`; } } const { list, total } data; this.modelResourcePagination.total total; this.modelResourceList list; }else{ this.$message(msg); } }, clickStatus(){ }, login(){ this.showLoginDialog true; this.loadConfirmCodeUrl(); }, async loadConfirmCodeUrl(){ const res await request({ url: `${getConfirmCode}`, method: POST, data: {}}); const {code, data, msg} res; if(code200){ this.confirmCodeUrl data; }else{ this.$message(msg); } }, async videoClick(id, resourceType1, jumpUrl){ if(resourceType5){ window.open(jumpUrl, _blank); }else if(resourceType1){ // window.scrollTo(0,0); let url `/index.html?resourceId${id}&activeIndex${activeIndex}`; if(moduleId){ url + `&moduleId${moduleId}`; } if(modelId){ url + `&modelId${modelId}`; } window.location.href url; // this.showModelResource false; // this.showSearchResult false; // this.showPlayer true; // this.loadGuessLike(); // 加载猜你喜欢 // const res await request({ url: `${getVideoResource}`, method: POST, data: { id }}); // const {code, data, msg} res; // if(code200){ // this.currentVideoInfo data; // const playRes await request({ url: `${getPlayUrl}`, method: POST, data: { id }}); // if(playRes.code200){ // await request({ url: `${viewRecord}`, method: POST, data: { id }}); // 观看记录 // let playerUrl Decrypt(playRes.data); // 视频地址 // this.initPlayer(playerUrl); // }else{ // this.$message(playRes.msg); // } // }else{ // this.$message(msg); // } } }, initPlayer(url){ this.showMosaic false; let poster; if(this.currentVideoInfo.newImg && this.currentVideoInfo.newImg.startsWith(http)){ poster this.currentVideoInfo.newImg; }else if(this.currentVideoInfo.previewImageUrl && this.currentVideoInfo.previewImageUrl.startsWith(http)){ poster this.currentVideoInfo.previewImageUrl; } this.player new MuiPlayer({ container: #video, title: , src: url, width: 100%, height: 450px, autoplay: true, pageHead: true, autoFit: true, objectFit: cover, poster, videoAttribute: { attrKey: webkit-playsinline, attrValue: webkit-playsinline }, { attrKey: playsinline, attrValue: playsinline }, { attrKey: x5-video-player-type, attrValue: h5-page }, , parse: { type: hls, loader: Hls, config: { debug: false, }, }, plugins: new MuiPlayerMobilePlugin({ showMenuButton: true, hotKeyConfig: { volumeHandle: false }, }), , }); this.player.on(back, function (e) { this.showPlayer false; window.history.back(); }); this.player.on(error, function (e) { console.log(e, e); }); this.player.on(ready, ()> { if(url.endsWith(a.m3u8)){ this.player.video().currentTime 5; } if(this.currentVideoInfo.resourceCode.includes(HSCK)){ this.showMosaic true; } }) }, async loadGuessLike(){ this.showRotate true; const browserId sessionStorage.getItem(fingerprintId); const res await request({ url: `${getLikeList}`, method: POST, data: { type: 1, pageNum: this.likePagination.pageNum, pageSize: this.likePagination.pageSize, browserId, }}); this.showRotate false; if(res.code200){ const len res.data.length; for (let i 0; i len; i++) { const c res.datai; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } const arr ...res.data; this.likeList res.data.splice(0, 20); if(!this.sideBarList.length && arr.length>6){ this.sideBarList arr.splice(-6).map(v>{ if(v.title.length>25){ vsubTitle v.title.split().splice(0, 25).join() + ...; }else{ vsubTitle v.title; } return v; }); } }else{ this.$message(res.msg); } }, changeLike(){ this.loadGuessLike(); }, submitLogin(){ this.$refsloginForm.validate(async valid > { if (valid) { const res await request({ url: `${userLogin}`, method: POST, data: { ...this.loginForm, } }); const { code, data, msg } res; if(code200){ sessionStorage.setItem(flag, data.flag); this.userInfo {...data}; sessionStorage.setItem(userInfo, JSON.stringify({...data})); this.loginClose(); this.$message.success(登录成功); }else{ this.loadConfirmCodeUrl(); this.$message(msg); } } else { return false; } }); }, loginClose(){ this.showLoginDialog false; this.$refsloginForm.resetFields(); }, async getPlateAndModel(){ // 获取AV下的所有版块 const browserId sessionStorage.getItem(fingerprintId); const platesRes await request({ url: `${getAllPlates}`, method: POST, data: { menuType:1, browserId } }); const { code:pCode, data:pData, msg:pMsg } platesRes; if (pCode 200) { this.platesList pData.map(v > ((vchild v.child || ), v)); // 获取原创下的所有版块 const originPlatesRes await request({ url: `${getAllPlates}`, method: POST, data: { menuType:0, browserId } }); const { code:oCode, data:oData, msg:oMsg } originPlatesRes; if(oCode200){ const firstOriginPlate oData.splice(0, 1); // 拼装AV下的版块和原创下的除了第一个版块之外的其他版块 this.platesList this.platesList.concat(oData.map(v > ((vchild v.child || ), v))); // 加载原创第一个版块下的模组作为菜单更多下面的选项 const res await request({ url: `${getModels}`, method: POST, data: { moduleId: firstOriginPlate0.child0.id } }); const { code, msg, data } res; const index data.findIndex(v>v.name最近更新); if(index!-1){ data.splice(index, 1); } const len data.length; for (let i 0; i len; i++) { const item datai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.morePlatesList data; }else{ this.$message(oMsg); } if(moduleId!undefined){ // 获取该板块下的模组 const modelRes await request({ url: `${getModels}`, method: POST, data: { moduleId } }); const { code:mCode, data:mData, msg:mMsg } modelRes; if(mCode200){ const len mData.length; for (let i 0; i len; i++) { const item mDatai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.modelList mData.filter(v>v.child && v.child.length && v.child0.resourceType!0); if(resourceIdundefined){ // 显示第一个模组的数据 this.currentModel { ...this.modelList0 }; this.loadModelResource(); } }else{ this.$message(mMsg); } }else if(modelId!undefined){ // 获取该模组下面的资源 if(resourceIdundefined){ this.currentModel { id: modelId, name: title }; this.loadModelResource(); } }else{ // 获取第一个板块下的模组 if(this.platesList.length>0 && resourceIdundefined){ // 获取第一个板块下的所有模组 const modelRes await request({ url: `${getModels}`, method: POST, data: { moduleId: this.platesList0.child0.id } }); const { code:mCode, data:mData, msg:mMsg } modelRes; if(mCode200){ const len mData.length; for (let i 0; i len; i++) { const item mDatai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.modelList mData.filter(v>v.child && v.child.length && v.child0.resourceType!0); // 显示第一个模组的数据 this.currentModel { ...this.modelList0 }; this.loadModelResource(); }else{ this.$message(mMsg); } } } }else{ this.$message(pMsg); } }, tagClick(tag){ this.searchText tag; this.search(); window.scrollTo(0,0); this.showSearchResult true; } }, }); }, res.data.ip);}); /script>/html>
Port 443
HTTP/1.1 200 OKDate: Wed, 14 May 2025 15:34:47 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareLast-Modified: Mon, 31 Mar 2025 07:57:12 GMTNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Report-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?sKX4tjioBb3LKwwP6SUEERcQTwCnpw%2BYhyG0iSrdxY9wuSnR8hTUtZ0fwE%2FuZTIBdb27Jc6nVbgjlv5R8Y5MK2jbQAyZpOqZ1WkhHzu0dggNshIO7wP3Q1lEpK4sIFQ%3D%3D}}Access-Control-Allow-Origin: *Access-Control-Allow-Methods: GET, POST, OPTIONSAccess-Control-Allow-Headers: *Sy-Debug: *Accept-Ranges: bytesCf-Cache-Status: DYNAMICCF-RAY: 93fb763309f11d89-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html>head> title>MANGO/title> meta charsetUTF-8> link relicon typeimage/x-icon href./images/mango.ico /> !-- import CSS --> !-- link relstylesheet href./style/el.css> --> !-- 引入样式 -->!-- link relstylesheet hrefhttps://unpkg.com/element-ui/lib/theme-chalk/index.css> -->link relstylesheet hrefhttps://unpkg.com/element-ui@2.15.14/lib/theme-chalk/index.css> link relstylesheet href./style/index.css?t8> link relstylesheet href./muplayer/mui-player.min.css>/head>body classbody> div idapp @keydown.enterhandleSearch v-cloak> template> el-backtop :bottom60> img src./images/backUp.png /> /el-backtop> /template> div idheader> a idlogo href/index.html>img src./images/logo.png />/a> !-- img idstatus @clickclickStatus src./images/status.png v-ifuserInfo.id /> span classloginText v-else @clicklogin>登录/span> el-dropdown idlanguage typetext> span classel-dropdown-link> ENi classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item>中文/el-dropdown-item> el-dropdown-item>日语/el-dropdown-item> el-dropdown-item>EN/el-dropdown-item> /el-dropdown-menu> /el-dropdown> --> img idamplifier @clicktoggleSearch src./images/search.png /> el-menu idnavMenu :default-activeactiveIndex classel-menu-demo modehorizontal background-colorrgba(0,0,0,0) text-color#fff active-text-color#FFCB11 > el-menu-item v-for(plate, index) in platesList :keyplate.id :index`${index + 1}` @clickwindow.location.href`?moduleId${plate.child0.id}&activeIndex${index + 1}`> a>{{ plate.name }}/a> /el-menu-item> el-submenu index111> template slottitle>更多/template> el-menu-item :index`111-${subI + 1}` v-for(subP,subI) in morePlatesList :keysubP.id @clickwindow.location.href`?modelId${subP.id}&activeIndex${111- + (subI + 1) }&title${subP.name}` > a>{{ subP.name }}/a> /el-menu-item> /el-submenu> /el-menu> /div> el-collapse-transition> div idsearch v-showshowSearchInput> img src./images/vip.png /> div> el-input placeholder搜索你喜欢的视频 v-model.trimsearchText> template slotappend> div @clickhandleSearch> img src./images/amplifier_black.png /> span stylevertical-align: top;>搜索/span> /div> /template> /el-input> /div> /div> /el-collapse-transition> div classappCon> div classsearchResultContainer v-ifshowSearchResult && !loading> div classtitle>{{ searchTextVal }}的搜索结果/div> div classsort v-ifsearchResultList.length> el-dropdown :tabindexsortIndex @commandsortCommand> span classel-dropdown-link> {{ sortListsortIndex.name }}i classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item v-for(sort, i) in sortList :keysort.id :commandi>{{ sort.name }}/el-dropdown-item> /el-dropdown-menu> /el-dropdown> span>排序:/span> /div> div classsearchResult v-ifsearchResultList.length> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(sr.id) :titlesr.title v-for sr in searchResultList :keysr.id> img :srcsr.newImg || sr.previewImageUrl :originImgsr.previewImageUrl /> span>{{ sr.title }}/span> div classviews> img src./images/eye.png /> span>{{ sr?.actualPlayNum + (sr.virtualPlayNum?sr.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ sr.auditTime?.split( )0 }}/span> /div> /div> /div> el-pagination background :hide-on-single-pagetrue @current-changesearchPageChange layoutprev, pager, next :current-pagesearchPagination.pageNum :page-sizesearchPagination.pageSize :totalsearchPagination.total> /el-pagination> /div> div v-else classnoData> 暂无数据 /div> /div> div classmodelResourceContainer v-if!showSearchResult && showModelResource && !loading> div classtitle>{{ currentModel.remark?currentModel.remark:currentModel.name }}的搜索结果/div> div classsort> el-dropdown :tabindexmodelResourceSortIndex @commandmodelSortCommand> span classel-dropdown-link> {{ sortListmodelResourceSortIndex.name }}i classel-icon-arrow-down el-icon--right>/i> /span> el-dropdown-menu slotdropdown> el-dropdown-item v-for(sort, i) in sortList :keysort.id :commandi>{{ sort.name }}/el-dropdown-item> /el-dropdown-menu> /el-dropdown> span>排序:/span> /div> div classsearchResult v-ifmodelResourceList.length> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(mr.id, mr.resourceType, mr.jumpUrl) :titlemr.title v-for mr in modelResourceList :keymr.id> img :srcmr.newImg || mr.previewImageUrl :originImgmr.previewImageUrl /> span>{{ mr.title }}/span> div classviews v-ifmr.resourceType1> img src./images/eye.png /> span>{{ mr?.actualPlayNum + (mr.virtualPlayNum?mr.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ mr.auditTime?.split( )0 }}/span> /div> /div> /div> el-pagination background :hide-on-single-pagetrue @current-changemodelPageChange layoutprev, pager, next :current-pagemodelResourcePagination.pageNum :page-sizemodelResourcePagination.pageSize :totalmodelResourcePagination.total> /el-pagination> /div> div v-else classnoData> 暂无数据 /div> /div> div classmodelResourceContainer v-ifloading> div classsearchResult> el-row :gutter20> el-skeleton :loadingloading animated :count20> template slottemplate> el-col :span6> div classskelton-list-item> img src./images/skelton.png styleborder-radius: 10px; /> /div> /el-col> /template> /el-skeleton> /el-row> /div> /div> div classplayer v-if!showSearchResult && showPlayer> div classupperContent> div classleftContent> div idvideo> div classtopLeft v-ifshowMosaic> img src./images/mosaic.png /> /div> div classbottomRight v-ifshowMosaic> img src./images/mosaic.png /> /div> /div> div classvideoName>片名: {{ currentVideoInfo.title }}/div> div classtags> span>标签:/span> ul v-ifcurrentVideoInfo.tags> li v-for(tag,i) in currentVideoInfo.tags.split(,) :keyi @clicktagClick(tag)>{{ tag }}/li> /ul> /div> /div> div classrightContent> div v-forsb in sideBarList :keysb.id :titlesb.title @clickvideoClick(sb.id)> img :srcsb.newImg || sb.previewImageUrl :originImgsb.previewImageUrl /> span>{{ sb.subTitle }}/span> /div> /div> /div> div classguessLike> div classguessHeader> span>猜你喜欢/span> div classchange @clickchangeLike>span>换一批/span>img src./images/refresh.png :class{ rotatingElement: showRotate } />/div> /div> div classguessContent> div styledisplay: flex;flex-direction: row;flex-wrap: wrap;> div classlist-item @clickvideoClick(ll.id, ll.resourceType, ll.jumpUrl) :titlell.title v-for ll in likeList :keyll.id> img :srcll.newImg || ll.previewImageUrl :originImgll.previewImageUrl /> span>{{ ll.title }}/span> div classviews v-ifll.resourceType1> img src./images/eye.png /> span>{{ ll?.actualPlayNum + (ll.virtualPlayNum?ll.virtualPlayNum:0) }}/span> img src./images/time.png /> span>{{ ll.auditTime?.split( )0 }}/span> /div> /div> /div> /div> /div> /div> div idfooter> el-row> el-col :span24> !-- img src./images//logo.png /> --> div idresponsity> 免责声明:若本站收录的资源侵犯了您的权益,请联系我们删除,谢谢合作!本站每日更新, 视频中的广告为第三方广告,本站不做担保,请自行鉴别。本站注册在美利坚, 遵守美利坚的法律,无未成年内容。禁止中国大陆和未满18周岁用户访问! /div> /el-col> !-- el-col :span12> el-row :gutter20> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> el-col :span6> span>分类1/span> /el-col> el-col :span6> span>分类2/span> /el-col> el-col :span6> span>分类3/span> /el-col> el-col :span6> span>分类4/span> /el-col> /el-row> /el-col> --> /el-row> /div> div idcopyright> Copyright © 2024 https://mgtv32.com rights reserved /div> /div> !-- 登录弹窗 --> el-dialog title登陆解锁更多体验! :visible.syncshowLoginDialog width548px classloginDialog @closedloginClose> div classtitle>已绑定邮箱的用户,可输入邮箱号+密码登陆/div> el-form :modelloginForm status-icon :rulesrules refloginForm > el-form-item :labelnull propuserId> el-input v-modelloginForm.userId autocompleteoff placeholder请输入账号ID/邮箱>/el-input> /el-form-item> el-form-item :labelnull proppassword> el-input placeholder请输入密码 v-modelloginForm.password show-password typepassword>/el-input> /el-form-item> el-form-item :labelnull propverifyCode> el-input placeholder请输入验证码 v-modelloginForm.verifyCode> template slotappend> img :srcconfirmCodeUrl @clickloadConfirmCodeUrl /> /template> /el-input> /el-form-item> el-button typewarning round stylewidth: 90%; @clicksubmitLogin>提 交/el-button> /el-form> div classloginFooter> span>一键注册/span>span>手动注册/span> div>一键注册自动生成账号和密码,手动注册自行输入账号密码/div> /div> /el-dialog> /div>/body> !-- import Vue before Element --> script src./js/vue.js>/script> !-- import JavaScript --> !-- script src./js/index.js>/script> --> !-- 引入组件库 --> !-- script srchttps://unpkg.com/element-ui/lib/index.js>/script> --> script srchttps://unpkg.com/element-ui@2.15.14/lib/index.js>/script> script src./js/axios.min.js>/script> script src./js/fp.min.js>/script> script typetext/javascript> var CryptoJSCryptoJS||function(u,p){var d{},ld.lib{},sfunction(){},tl.Base{extend:function(a){s.prototypethis;var cnew s;a&&c.mixIn(a);c.hasOwnProperty(init)||(c.initfunction(){c.$super.init.apply(this,arguments)});c.init.prototypec;c.$superthis;return c},create:function(){var athis.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var c in a)a.hasOwnProperty(c)&&(thiscac);a.hasOwnProperty(toString)&&(this.toStringa.toString)},clone:function(){return this.init.prototype.extend(this)}}, rl.WordArrayt.extend({init:function(a,c){athis.wordsa||;this.sigBytesc!p?c:4*a.length},toString:function(a){return(a||v).stringify(this)},concat:function(a){var cthis.words,ea.words,jthis.sigBytes;aa.sigBytes;this.clamp();if(j%4)for(var k0;ka;k++)cj+k>>>2|(ek>>>2>>>24-8*(k%4)&255)24-8*((j+k)%4);else if(65535e.length)for(k0;ka;k+4)cj+k>>>2ek>>>2;else c.push.apply(c,e);this.sigBytes+a;return this},clamp:function(){var athis.words,cthis.sigBytes;ac>>>2&4294967295 32-8*(c%4);a.lengthu.ceil(c/4)},clone:function(){var at.clone.call(this);a.wordsthis.words.slice(0);return a},random:function(a){for(var c,e0;ea;e+4)c.push(4294967296*u.random()|0);return new r.init(c,a)}}),wd.enc{},vw.Hex{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++){var kcj>>>2>>>24-8*(j%4)&255;e.push((k>>>4).toString(16));e.push((k&15).toString(16))}return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j+2)ej>>>3|parseInt(a.substr(j, 2),16)24-4*(j%8);return new r.init(e,c/2)}},bw.Latin1{stringify:function(a){var ca.words;aa.sigBytes;for(var e,j0;ja;j++)e.push(String.fromCharCode(cj>>>2>>>24-8*(j%4)&255));return e.join()},parse:function(a){for(var ca.length,e,j0;jc;j++)ej>>>2|(a.charCodeAt(j)&255)24-8*(j%4);return new r.init(e,c)}},xw.Utf8{stringify:function(a){try{return decodeURIComponent(escape(b.stringify(a)))}catch(c){throw Error(Malformed UTF-8 data);}},parse:function(a){return b.parse(unescape(encodeURIComponent(a)))}}, ql.BufferedBlockAlgorithmt.extend({reset:function(){this._datanew r.init;this._nDataBytes0},_append:function(a){stringtypeof a&&(ax.parse(a));this._data.concat(a);this._nDataBytes+a.sigBytes},_process:function(a){var cthis._data,ec.words,jc.sigBytes,kthis.blockSize,bj/(4*k),ba?u.ceil(b):u.max((b|0)-this._minBufferSize,0);ab*k;ju.min(4*a,j);if(a){for(var q0;qa;q+k)this._doProcessBlock(e,q);qe.splice(0,a);c.sigBytes-j}return new r.init(q,j)},clone:function(){var at.clone.call(this); a._datathis._data.clone();return a},_minBufferSize:0});l.Hasherq.extend({cfg:t.extend(),init:function(a){this.cfgthis.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,e){return(new a.init(e)).finalize(b)}},_createHmacHelper:function(a){return function(b,e){return(new n.HMAC.init(a, e)).finalize(b)}}});var nd.algo{};return d}(Math); (function(){var uCryptoJS,pu.lib.WordArray;u.enc.Base64{stringify:function(d){var ld.words,pd.sigBytes,tthis._map;d.clamp();d;for(var r0;rp;r+3)for(var w(lr>>>2>>>24-8*(r%4)&255)16|(lr+1>>>2>>>24-8*((r+1)%4)&255)8|lr+2>>>2>>>24-8*((r+2)%4)&255,v0;4>v&&r+0.75*vp;v++)d.push(t.charAt(w>>>6*(3-v)&63));if(lt.charAt(64))for(;d.length%4;)d.push(l);return d.join()},parse:function(d){var ld.length,sthis._map,ts.charAt(64);t&&(td.indexOf(t),-1!t&&(lt));for(var t,r0,w0;w l;w++)if(w%4){var vs.indexOf(d.charAt(w-1))2*(w%4),bs.indexOf(d.charAt(w))>>>6-2*(w%4);tr>>>2|(v|b)24-8*(r%4);r++}return p.create(t,r)},_map:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/}})(); (function(u){function p(b,n,a,c,e,j,k){bb+(n&a|~n&c)+e+k;return(bj|b>>>32-j)+n}function d(b,n,a,c,e,j,k){bb+(n&c|a&~c)+e+k;return(bj|b>>>32-j)+n}function l(b,n,a,c,e,j,k){bb+(n^a^c)+e+k;return(bj|b>>>32-j)+n}function s(b,n,a,c,e,j,k){bb+(a^(n|~c))+e+k;return(bj|b>>>32-j)+n}for(var tCryptoJS,rt.lib,wr.WordArray,vr.Hasher,rt.algo,b,x0;64>x;x++)bx4294967296*u.abs(u.sin(x+1))|0;rr.MD5v.extend({_doReset:function(){this._hashnew w.init(1732584193,4023233417,2562383102,271733878)}, _doProcessBlock:function(q,n){for(var a0;16>a;a++){var cn+a,eqc;qc(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360}var athis._hash.words,cqn+0,eqn+1,jqn+2,kqn+3,zqn+4,rqn+5,tqn+6,wqn+7,vqn+8,Aqn+9,Bqn+10,Cqn+11,uqn+12,Dqn+13,Eqn+14,xqn+15,fa0,ma1,ga2,ha3,fp(f,m,g,h,c,7,b0),hp(h,f,m,g,e,12,b1),gp(g,h,f,m,j,17,b2),mp(m,g,h,f,k,22,b3),fp(f,m,g,h,z,7,b4),hp(h,f,m,g,r,12,b5),gp(g,h,f,m,t,17,b6),mp(m,g,h,f,w,22,b7), fp(f,m,g,h,v,7,b8),hp(h,f,m,g,A,12,b9),gp(g,h,f,m,B,17,b10),mp(m,g,h,f,C,22,b11),fp(f,m,g,h,u,7,b12),hp(h,f,m,g,D,12,b13),gp(g,h,f,m,E,17,b14),mp(m,g,h,f,x,22,b15),fd(f,m,g,h,e,5,b16),hd(h,f,m,g,t,9,b17),gd(g,h,f,m,C,14,b18),md(m,g,h,f,c,20,b19),fd(f,m,g,h,r,5,b20),hd(h,f,m,g,B,9,b21),gd(g,h,f,m,x,14,b22),md(m,g,h,f,z,20,b23),fd(f,m,g,h,A,5,b24),hd(h,f,m,g,E,9,b25),gd(g,h,f,m,k,14,b26),md(m,g,h,f,v,20,b27),fd(f,m,g,h,D,5,b28),hd(h,f, m,g,j,9,b29),gd(g,h,f,m,w,14,b30),md(m,g,h,f,u,20,b31),fl(f,m,g,h,r,4,b32),hl(h,f,m,g,v,11,b33),gl(g,h,f,m,C,16,b34),ml(m,g,h,f,E,23,b35),fl(f,m,g,h,e,4,b36),hl(h,f,m,g,z,11,b37),gl(g,h,f,m,w,16,b38),ml(m,g,h,f,B,23,b39),fl(f,m,g,h,D,4,b40),hl(h,f,m,g,c,11,b41),gl(g,h,f,m,k,16,b42),ml(m,g,h,f,t,23,b43),fl(f,m,g,h,A,4,b44),hl(h,f,m,g,u,11,b45),gl(g,h,f,m,x,16,b46),ml(m,g,h,f,j,23,b47),fs(f,m,g,h,c,6,b48),hs(h,f,m,g,w,10,b49),gs(g,h,f,m, E,15,b50),ms(m,g,h,f,r,21,b51),fs(f,m,g,h,u,6,b52),hs(h,f,m,g,k,10,b53),gs(g,h,f,m,B,15,b54),ms(m,g,h,f,e,21,b55),fs(f,m,g,h,v,6,b56),hs(h,f,m,g,x,10,b57),gs(g,h,f,m,t,15,b58),ms(m,g,h,f,D,21,b59),fs(f,m,g,h,z,6,b60),hs(h,f,m,g,C,10,b61),gs(g,h,f,m,j,15,b62),ms(m,g,h,f,A,21,b63);a0a0+f|0;a1a1+m|0;a2a2+g|0;a3a3+h|0},_doFinalize:function(){var bthis._data,nb.words,a8*this._nDataBytes,c8*b.sigBytes;nc>>>5|12824-c%32;var eu.floor(a/ 4294967296);n(c+64>>>94)+15(e8|e>>>24)&16711935|(e24|e>>>8)&4278255360;n(c+64>>>94)+14(a8|a>>>24)&16711935|(a24|a>>>8)&4278255360;b.sigBytes4*(n.length+1);this._process();bthis._hash;nb.words;for(a0;4>a;a++)cna,na(c8|c>>>24)&16711935|(c24|c>>>8)&4278255360;return b},clone:function(){var bv.clone.call(this);b._hashthis._hash.clone();return b}});t.MD5v._createHelper(r);t.HmacMD5v._createHmacHelper(r)})(Math); (function(){var uCryptoJS,pu.lib,dp.Base,lp.WordArray,pu.algo,sp.EvpKDFd.extend({cfg:d.extend({keySize:4,hasher:p.MD5,iterations:1}),init:function(d){this.cfgthis.cfg.extend(d)},compute:function(d,r){for(var pthis.cfg,sp.hasher.create(),bl.create(),ub.words,qp.keySize,pp.iterations;u.lengthq;){n&&s.update(n);var ns.update(d).finalize(r);s.reset();for(var a1;ap;a++)ns.finalize(n),s.reset();b.concat(n)}b.sigBytes4*q;return b}});u.EvpKDFfunction(d,l,p){return s.create(p).compute(d, l)}})(); CryptoJS.lib.Cipher||function(u){var pCryptoJS,dp.lib,ld.Base,sd.WordArray,td.BufferedBlockAlgorithm,rp.enc.Base64,wp.algo.EvpKDF,vd.Ciphert.extend({cfg:l.extend(),createEncryptor:function(e,a){return this.create(this._ENC_XFORM_MODE,e,a)},createDecryptor:function(e,a){return this.create(this._DEC_XFORM_MODE,e,a)},init:function(e,a,b){this.cfgthis.cfg.extend(b);this._xformModee;this._keya;this.reset()},reset:function(){t.reset.call(this);this._doReset()},process:function(e){this._append(e);return this._process()}, finalize:function(e){e&&this._append(e);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(e){return{encrypt:function(b,k,d){return(stringtypeof k?c:a).encrypt(e,b,k,d)},decrypt:function(b,k,d){return(stringtypeof k?c:a).decrypt(e,b,k,d)}}}});d.StreamCipherv.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var bp.mode{},xfunction(e,a,b){var cthis._iv;c?this._ivu:cthis._prevBlock;for(var d0;db;d++)ea+d^ cd},q(d.BlockCipherModel.extend({createEncryptor:function(e,a){return this.Encryptor.create(e,a)},createDecryptor:function(e,a){return this.Decryptor.create(e,a)},init:function(e,a){this._ciphere;this._iva}})).extend();q.Encryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize;x.call(this,e,a,c);b.encryptBlock(e,a);this._prevBlocke.slice(a,a+c)}});q.Decryptorq.extend({processBlock:function(e,a){var bthis._cipher,cb.blockSize,de.slice(a,a+c);b.decryptBlock(e,a);x.call(this, e,a,c);this._prevBlockd}});bb.CBCq;q(p.pad{}).Pkcs7{pad:function(a,b){for(var c4*b,cc-a.sigBytes%c,dc24|c16|c8|c,l,n0;nc;n+4)l.push(d);cs.create(l,c);a.concat(c)},unpad:function(a){a.sigBytes-a.wordsa.sigBytes-1>>>2&255}};d.BlockCipherv.extend({cfg:v.cfg.extend({mode:b,padding:q}),reset:function(){v.reset.call(this);var athis.cfg,ba.iv,aa.mode;if(this._xformModethis._ENC_XFORM_MODE)var ca.createEncryptor;else ca.createDecryptor,this._minBufferSize1;this._modec.call(a, this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var athis.cfg.padding;if(this._xformModethis._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var bthis._process(!0)}else bthis._process(!0),a.unpad(b);return b},blockSize:4});var nd.CipherParamsl.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),b(p.format{}).OpenSSL{stringify:function(a){var ba.ciphertext;aa.salt;return(a?s.create(1398893684, 1701076831).concat(a).concat(b):b).toString(r)},parse:function(a){ar.parse(a);var ba.words;if(1398893684b0&&1701076831b1){var cs.create(b.slice(2,4));b.splice(0,4);a.sigBytes-16}return n.create({ciphertext:a,salt:c})}},ad.SerializableCipherl.extend({cfg:l.extend({format:b}),encrypt:function(a,b,c,d){dthis.cfg.extend(d);var la.createEncryptor(c,d);bl.finalize(b);ll.cfg;return n.create({ciphertext:b,key:c,iv:l.iv,algorithm:a,mode:l.mode,padding:l.padding,blockSize:a.blockSize,formatter:d.format})}, decrypt:function(a,b,c,d){dthis.cfg.extend(d);bthis._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){returnstringtypeof a?b.parse(a,this):a}}),p(p.kdf{}).OpenSSL{execute:function(a,b,c,d){d||(ds.random(8));aw.create({keySize:b+c}).compute(a,d);cs.create(a.words.slice(b),4*c);a.sigBytes4*b;return n.create({key:a,iv:c,salt:d})}},cd.PasswordBasedCiphera.extend({cfg:a.cfg.extend({kdf:p}),encrypt:function(b,c,d,l){lthis.cfg.extend(l);dl.kdf.execute(d, b.keySize,b.ivSize);l.ivd.iv;ba.encrypt.call(this,b,c,d.key,l);b.mixIn(d);return b},decrypt:function(b,c,d,l){lthis.cfg.extend(l);cthis._parse(c,l.format);dl.kdf.execute(d,b.keySize,b.ivSize,c.salt);l.ivd.iv;return a.decrypt.call(this,b,c,d.key,l)}})}(); (function(){for(var uCryptoJS,pu.lib.BlockCipher,du.algo,l,s,t,r,w,v,b,x,q,n,a,c0;256>c;c++)ac128>c?c1:c1^283;for(var e0,j0,c0;256>c;c++){var kj^j1^j2^j3^j4,kk>>>8^k&255^99;lek;ske;var zae,Faz,GaF,y257*ak^16843008*k;tey24|y>>>8;rey16|y>>>16;wey8|y>>>24;vey;y16843009*G^65537*F^257*z^16843008*e;bky24|y>>>8;xky16|y>>>16;qky8|y>>>24;nky;e?(ez^aaaG^z,j^aaj):ej1}var H0,1,2,4,8, 16,32,64,128,27,54,dd.AESp.extend({_doReset:function(){for(var athis._key,ca.words,da.sigBytes/4,a4*((this._nRoundsd+6)+1),ethis._keySchedule,j0;ja;j++)if(jd)ejcj;else{var kej-1;j%d?6d&&4j%d&&(klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255):(kk8|k>>>24,klk>>>2424|lk>>>16&25516|lk>>>8&2558|lk&255,k^Hj/d|024);ejej-d^k}cthis._invKeySchedule;for(d0;da;d++)ja-d,kd%4?ej:ej-4,cd4>d||4>j?k:blk>>>24^xlk>>>16&255^qlk>>> 8&255^nlk&255},encryptBlock:function(a,b){this._doCryptBlock(a,b,this._keySchedule,t,r,w,v,l)},decryptBlock:function(a,c){var dac+1;ac+1ac+3;ac+3d;this._doCryptBlock(a,c,this._invKeySchedule,b,x,q,n,s);dac+1;ac+1ac+3;ac+3d},_doCryptBlock:function(a,b,c,d,e,j,l,f){for(var mthis._nRounds,gab^c0,hab+1^c1,kab+2^c2,nab+3^c3,p4,r1;rm;r++)var qdg>>>24^eh>>>16&255^jk>>>8&255^ln&255^cp++,sdh>>>24^ek>>>16&255^jn>>>8&255^lg&255^cp++,t dk>>>24^en>>>16&255^jg>>>8&255^lh&255^cp++,ndn>>>24^eg>>>16&255^jh>>>8&255^lk&255^cp++,gq,hs,kt;q(fg>>>2424|fh>>>16&25516|fk>>>8&2558|fn&255)^cp++;s(fh>>>2424|fk>>>16&25516|fn>>>8&2558|fg&255)^cp++;t(fk>>>2424|fn>>>16&25516|fg>>>8&2558|fh&255)^cp++;n(fn>>>2424|fg>>>16&25516|fh>>>8&2558|fk&255)^cp++;abq;ab+1s;ab+2t;ab+3n},keySize:8});u.AESp._createHelper(d)})(); /script> script src./muplayer/mui-player.min.js>/script> script src./muplayer/hls.min.js>/script> script src./muplayer/mui-player-mobile-plugin.min.js>/script> script> const getFingerprint async (cb, ip)>{ const fpPromise await FingerprintJS.load({debug: false}); // 调用FingerprintJS.load()返回一个Promise对象,用于加载和初始化FingerprintJS库。 // 可给FingerprintJS.load()传参{debug: true}开启调试模式 const result await fpPromise.get(); const { fontPreferences, audio, canvas, hardwareConcurrency, plugins, touchSupport, pdfViewerEnabled, screenResolution, localStorage, ...components } result.components; const extendedComponents { ...components, ip:{ value: ip, duration:0 }, userAgent: { value: navigator.userAgent, duration: 0, } }; // console.log(extendedComponents, extendedComponents); // 调用fpPromise.get()获取访问者指纹信息,并返回一个包含指纹ID和其他信息的结果对象。 const fingerprintId FingerprintJS.hashComponents(extendedComponents); sessionStorage.setItem(fingerprintId, fingerprintId); cb(); }; let inviteInfo null; const getInviteCode () > { let url decodeURIComponent(location.href) if (url.includes(?)) { inviteInfo url .split(?)1 .split(&) .reduce((tar, v) > { let key v.split() key0 channelCode && (tarmchCode key1?.replace(/(\#).*/, )) key0 inviteCode && (tarinvitationCode key1?.replace(/\#.*/, )) return tar }, {}) } return } getInviteCode(); // 图片加载失败用备用图片 window.addEventListener(error, event > { // 过滤js error let target event.target || event.srcElement; if(target.src && target.src.endsWith(.txt)){ (tg>{ fetch(target.src) .then(response>response.text()) .then(res>{ // console.log(++c, count); tg.src res; }, err>{ // 取源地址 let attribute target.attributes.originImg; if(target instanceof HTMLImageElement && attribute && target.src!attribute.value) { target.src target.attributes.originImg.value; }; }); })(target); }else{ let attribute target.attributes.originImg; if(target instanceof HTMLImageElement && attribute && target.src!attribute.value) { target.src target.attributes.originImg.value; }; } }, true); // 获取url参数 const urlParams new URLSearchParams(window.location.search); const moduleId urlParams.get(moduleId); const modelId urlParams.get(modelId); const title urlParams.get(title); const resourceId urlParams.get(resourceId); const activeIndex moduleId!undefined || modelId !undefined ? urlParams.get(activeIndex) : 1; // 地址 // const host http://18.163.32.129:18892; // 测试环境 const host /; // 线上环境 const getVersion /platform/app-version; // 获取flag const getAllPlates /module/load-module; // 获取所有版块 const getModels /model/load-model; // 获取模块 const searchKeyWord /res/search; // 关键字搜索 const getModelResource /model/load-model-resource; // 查询你模组资源; const getConfirmCode /user/captcha; // 获取验证码 const getVideoResource /res/load-details; // 通过id获取视频资源 const getPlayUrl /res/play; // 获取播放地址 const viewRecord /res/watch; // 观看记录 const getLikeList /res/load-home; // 获取猜你喜欢列表 const userLogin /user/login/v1; // 用户登录 const domainChcek /front-domain/domain-can-use; // 验证当前域名是否可用 // AES 解密公钥 const AES_KEY f34923d8ef8a427d; const AES_IV 3492302601345106; const key CryptoJS.enc.Utf8.parse(AES_KEY) // 十六位十六进制数作为密钥 const iv CryptoJS.enc.Utf8.parse(AES_IV) // 十六位十六进制数作为密钥偏移量 // 正则,数字和字母 const REG_ALPHABET_NUM /^0-9a-zA-Z*$/; // 邮箱正则表达式 const EMAIL_REG /^\w+((.\w+)|(-\w+))@A-Za-z0-9+((.|-)A-Za-z0-9+).A-Za-z0-9+$/; // 跳收藏页协议 const schme https://; // 测试环境是http 线上是https const check domainList>{ const firstDomain domainList.shift(); const xhr new XMLHttpRequest(); xhr.open(GET, `${schme}${firstDomain}`, true); xhr.onreadystatechange function(){ if(xhr.readyState4){ if(xhr.status200){ // 域名可用,直接跳转 window.location.href `${schme}${firstDomain}?channelCode${inviteInfo?inviteInfo.mchCode: pingtai}`; }else{ // 域名不可用,调用下一个备用域名 if(domainList.length){ check(domainList); } } } } xhr.send(); } // 解密方法 const Decrypt function(word) { const base64 CryptoJS.enc.Base64.parse(word) const src CryptoJS.enc.Base64.stringify(base64) // 解密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7) const decrypt CryptoJS.AES.decrypt(src, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) const decryptedStr decrypt.toString(CryptoJS.enc.Utf8) return decryptedStr.toString() } // 加密方法 const Encrypt function(word, newkey) { const srcs CryptoJS.enc.Utf8.parse(word) const nkey newkey ? CryptoJS.enc.Utf8.parse(newkey) : key const encrypted CryptoJS.AES.encrypt(srcs, nkey, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, }) return CryptoJS.enc.Base64.stringify(encrypted.ciphertext) } //const test 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; //console.log(JSON.parse(Decrypt(test)), test111111111111111111); const front /proxy/api/front; // 创建 axios 实例 const request axios.create({ baseURL: host, timeout: 20000, // 请求超时时间 }); // 异常拦截处理器 const errorHandler error > { if (error.response) { const { data {}, status, statusText } error.response // 403 无权限 if (status 403) { // showNotify({ // type: danger, // message: (data && data.message) || statusText, // }) console.log(403 无权限); } // 401 未登录/未授权 if (status 401 && data.result && data.result.isLogin) { // showNotify({ // type: danger, // message: 未登录/未授权, // }) console.log(未登录/未授权); } } return Promise.reject(error) } // 请求拦截器 const requestHandler config > { // const common useCommon(pinia) // config.cancelToken new CancelToken((cancel > { // if (Whitelist.includes(config.url) || router.currentRoute?.value?.name Featured) return // common.pushRequest(cancel) // })) config.url front + config.url config.headersdevice 1 // config.headerstoken common.userInfo?.token const userInfo sessionStorage.getItem(userInfo); config.headerstoken userInfo ? JSON.parse(userInfo).token : undefined; if (config.method ! get) { const flag sessionStorage.getItem(flag); const realFlag flag ? flag : AES_KEY; config.dataflag realFlag; // showNotify({ // type: danger, // message: (JSON.stringify(config.data)), // }) config.data { param: Encrypt(JSON.stringify(config.data), realFlag) } } return config } // Add a request interceptor request.interceptors.request.use(requestHandler, errorHandler) // 响应拦截器 const responseHandler response > { // const common useCommon(pinia) // 解密返回的结果 const obj JSON.parse(Decrypt(response.data.data)) response.data.data obj; let { code, msg } response.data if (code 200) { return response.data } else { switch (code) { case 401: // if (common.userInfo?.token!) { // router.push({ name: Home }) // common.clearHeartbeatTimer() // common.setUserInfo(null) // } console.log(未登录); return response.data break case 402: return response.data break case 2001: return response.data break case 2002: // showFailToast(msg) // common.setUserInfo(null) // location.reload(); // flag失效了 sessionStorage.removeItem(flag); location.reload(); break default: // showNotify({ // type: danger, // message: msg, // }) console.log(其他问题); return response.data } } // return response.data } // Add a response interceptor request.interceptors.response.use(responseHandler, errorHandler)// fetch(https://jsonip.com)fetch(https://myip.ipip.net/json).then(response>response.json()).then(res>{ getFingerprint(()>{ new Vue({ el: #app, data: function() { const validateAccount (rule, value, callback) > { if (!value) { return callback(new Error(请输入用户ID/邮箱)); } else { if (value.length > 40) { callback(new Error(用户ID/邮箱长度不能超过40个字符)); } else { if (value.indexOf(@) ! -1) { // 是邮箱 if (!EMAIL_REG?.test(value)) { callback(new Error(邮箱格式不正确)); } } else { if (!REG_ALPHABET_NUM?.test(value)) { callback(new Error(用户ID只能由数字和字母组成)); } } } callback(); } }; const validatePassword (rule, value, callback) > { if (!value) return callback(new Error(请输入密码)) if (value.length > 12) return callback(new Error(密码长度不能超过12个字符)) if (!REG_ALPHABET_NUM.test(value)) return callback(new Error(密码只能由数字和字母组成)) return callback() }; const validateCheckCode (rule, value, callback) > { if (!value) return callback(new Error(请输入验证码)) if (value?.length ! 4) return callback(new Error(请输入正确的验证码)) if (value) return callback() }; return { activeIndex: activeIndex!undefined?activeIndex:1, showSearchInput: false, // 显示搜索框 showSearchResult: false, // 显示搜索结果 showModelResource: false, // 显示模组资源 showPlayer: false, // 显示播放器 searchText: , searchTextVal: , platesList:, morePlatesList: , modelList: , location: window.location, searchPagination: { pageNum: 1, pageSize: 20, total: 0, }, sortList: { id:2, name: 最近更新 }, { id:6, name: 今日热门 }, { id:7, name: 本周热门 }, { id:8, name: 本月热门 }, , sortIndex: 0, searchResultList: , modelResourceList:, modelResourcePagination: { pageNum: 1, pageSize: 20, total: 0, }, modelResourceSortIndex: 0, currentModel: {}, showLoginDialog: false, loginForm: { userId: , password: , verifyCode:, }, confirmCodeUrl: , // 验证码地址 currentVideoInfo: {}, // 当前 播放视频信息 likeList: , // 猜你喜欢列表 likePagination: { pageNum: 1, pageSize: 26, }, userInfo: {}, // 当前登录用户信息 rules:{ userId: { validator: validateAccount, trigger: blur}, password: { validator: validatePassword, trigger: blur}, verifyCode: { validator: validateCheckCode, trigger: blur}, }, sideBarList:, // 播放页侧栏列表 loading: true, player: null, // 播放器对象 window:window, showRotate: false, showMosaic: false, // 是否显示马赛克 } }, async created() { const domainRes await request({ url: `${domainChcek}`, method: POST, data: { domain: location.host } }); const { code, data } domainRes; if(code200){ const { canUse, collectDomain } data; if(canUse0){ // 当前域名不可用,跳收藏页域名 if(collectDomain && collectDomain.length){ check(collectDomain); } } } const userInfoStr sessionStorage.getItem(userInfo); if(userInfoStr){ this.userInfo JSON.parse(userInfoStr); } if(resourceId){ this.showModelResource false; this.showSearchResult false; this.showPlayer true; this.loading false; this.loadGuessLike(); // 加载猜你喜欢 const res await request({ url: `${getVideoResource}`, method: POST, data: { id:resourceId }}); const {code, data, msg} res; if(code200){ this.currentVideoInfo data; const browserId sessionStorage.getItem(fingerprintId); const playRes await request({ url: `${getPlayUrl}`, method: POST, data: { id:resourceId, browserId, userId: browserId }}); if(playRes.code200){ const browserId sessionStorage.getItem(fingerprintId); await request({ url: `${viewRecord}`, method: POST, data: { id:resourceId, browserId }}); // 观看记录 let playerUrl Decrypt(playRes.data); // 视频地址 this.initPlayer(playerUrl); }else{ this.$message(playRes.msg); } }else{ this.$message(msg); } } }, async mounted() { // const flag sessionStorage.getItem(flag); // if(flag){ // this.getPlateAndModel(); // }else{ // 获取flag const browserId sessionStorage.getItem(fingerprintId); const res await request({ url: `${getVersion}`, method: POST, data: { browserId, channelCode: inviteInfo?inviteInfo.mchCode: pingtai } }); const { code, data, msg } res; if(code200){ const { flag } data; sessionStorage.setItem(flag, flag); this.getPlateAndModel(); }else{ this.$message(msg); } // } }, methods: { toggleSearch(){ this.showSearchInput !this.showSearchInput; if(this.showSearchInput){ window.scrollTo(0,0); if(!this.showSearchResult){ this.searchText ; this.searchPagination.pageNum 1; } } }, handleSearch(){ this.searchPagination.pageNum 1; this.search(); }, async search(sortType){ this.loading true; this.activeIndex -1; const res await request({ url: `${searchKeyWord}`, method: POST, data: { type: 1, pageNum: this.searchPagination.pageNum, pageSize: this.searchPagination.pageSize, title: this.searchText, sortType: this.sortListthis.sortIndex.id, } }); this.searchTextVal this.searchText; this.loading false; // this.activeIndex ; this.modelList ; this.showSearchResult true; this.showSearchInput false; if(this.player){ this.player.destroy(); this.player null; } const {code, data, msg } res; if(code200){ const len data.list.length; for (let i 0; i len; i++) { const c data.listi; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } const { list, total } data; this.searchPagination.total total; this.searchResultList list; }else{ this.$message(msg); } }, sortCommand(index) { this.sortIndex index; this.searchPagination.pageNum 1; this.search(this.sortListindex.id); }, modelSortCommand(index) { this.modelResourceSortIndex index; this.modelResourcePagination.pageNum 1; this.loadModelResource(this.sortListindex.id); }, searchPageChange(e){ this.searchPagination.pageNum e; this.search(); window.scrollTo(0,0); }, modelPageChange(e){ this.modelResourcePagination.pageNum e; this.loadModelResource(); window.scrollTo(0,0); }, async loadModelResource(sortType){ this.showModelResource true; this.showSearchResult false; const param { modelId: this.currentModel.id, pageNum: this.modelResourcePagination.pageNum, pageSize: this.modelResourcePagination.pageSize, sortType: sortType?sortType:this.sortList0.id, }; this.loading true; const res await request({ url: `${getModelResource}`, method: POST, data: param }); this.loading false; const {code, data, msg } res; if(code200){ const len data.list.length; for (let index 0; index len; index++) { const item data.listindex; if(item.newImg.includes(images_add)){ const arr item.newImg.split(images_add); item.newImg `${location.origin}/images_add${arr1}`; } } const { list, total } data; this.modelResourcePagination.total total; this.modelResourceList list; }else{ this.$message(msg); } }, clickStatus(){ }, login(){ this.showLoginDialog true; this.loadConfirmCodeUrl(); }, async loadConfirmCodeUrl(){ const res await request({ url: `${getConfirmCode}`, method: POST, data: {}}); const {code, data, msg} res; if(code200){ this.confirmCodeUrl data; }else{ this.$message(msg); } }, async videoClick(id, resourceType1, jumpUrl){ if(resourceType5){ window.open(jumpUrl, _blank); }else if(resourceType1){ // window.scrollTo(0,0); let url `/index.html?resourceId${id}&activeIndex${activeIndex}`; if(moduleId){ url + `&moduleId${moduleId}`; } if(modelId){ url + `&modelId${modelId}`; } window.location.href url; // this.showModelResource false; // this.showSearchResult false; // this.showPlayer true; // this.loadGuessLike(); // 加载猜你喜欢 // const res await request({ url: `${getVideoResource}`, method: POST, data: { id }}); // const {code, data, msg} res; // if(code200){ // this.currentVideoInfo data; // const playRes await request({ url: `${getPlayUrl}`, method: POST, data: { id }}); // if(playRes.code200){ // await request({ url: `${viewRecord}`, method: POST, data: { id }}); // 观看记录 // let playerUrl Decrypt(playRes.data); // 视频地址 // this.initPlayer(playerUrl); // }else{ // this.$message(playRes.msg); // } // }else{ // this.$message(msg); // } } }, initPlayer(url){ this.showMosaic false; let poster; if(this.currentVideoInfo.newImg && this.currentVideoInfo.newImg.startsWith(http)){ poster this.currentVideoInfo.newImg; }else if(this.currentVideoInfo.previewImageUrl && this.currentVideoInfo.previewImageUrl.startsWith(http)){ poster this.currentVideoInfo.previewImageUrl; } this.player new MuiPlayer({ container: #video, title: , src: url, width: 100%, height: 450px, autoplay: true, pageHead: true, autoFit: true, objectFit: cover, poster, videoAttribute: { attrKey: webkit-playsinline, attrValue: webkit-playsinline }, { attrKey: playsinline, attrValue: playsinline }, { attrKey: x5-video-player-type, attrValue: h5-page }, , parse: { type: hls, loader: Hls, config: { debug: false, }, }, plugins: new MuiPlayerMobilePlugin({ showMenuButton: true, hotKeyConfig: { volumeHandle: false }, }), , }); this.player.on(back, function (e) { this.showPlayer false; window.history.back(); }); this.player.on(error, function (e) { console.log(e, e); }); this.player.on(ready, ()> { if(url.endsWith(a.m3u8)){ this.player.video().currentTime 5; } if(this.currentVideoInfo.resourceCode.includes(HSCK)){ this.showMosaic true; } }) }, async loadGuessLike(){ this.showRotate true; const browserId sessionStorage.getItem(fingerprintId); const res await request({ url: `${getLikeList}`, method: POST, data: { type: 1, pageNum: this.likePagination.pageNum, pageSize: this.likePagination.pageSize, browserId, }}); this.showRotate false; if(res.code200){ const len res.data.length; for (let i 0; i len; i++) { const c res.datai; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } const arr ...res.data; this.likeList res.data.splice(0, 20); if(!this.sideBarList.length && arr.length>6){ this.sideBarList arr.splice(-6).map(v>{ if(v.title.length>25){ vsubTitle v.title.split().splice(0, 25).join() + ...; }else{ vsubTitle v.title; } return v; }); } }else{ this.$message(res.msg); } }, changeLike(){ this.loadGuessLike(); }, submitLogin(){ this.$refsloginForm.validate(async valid > { if (valid) { const res await request({ url: `${userLogin}`, method: POST, data: { ...this.loginForm, } }); const { code, data, msg } res; if(code200){ sessionStorage.setItem(flag, data.flag); this.userInfo {...data}; sessionStorage.setItem(userInfo, JSON.stringify({...data})); this.loginClose(); this.$message.success(登录成功); }else{ this.loadConfirmCodeUrl(); this.$message(msg); } } else { return false; } }); }, loginClose(){ this.showLoginDialog false; this.$refsloginForm.resetFields(); }, async getPlateAndModel(){ // 获取AV下的所有版块 const browserId sessionStorage.getItem(fingerprintId); const platesRes await request({ url: `${getAllPlates}`, method: POST, data: { menuType:1, browserId } }); const { code:pCode, data:pData, msg:pMsg } platesRes; if (pCode 200) { this.platesList pData.map(v > ((vchild v.child || ), v)); // 获取原创下的所有版块 const originPlatesRes await request({ url: `${getAllPlates}`, method: POST, data: { menuType:0, browserId } }); const { code:oCode, data:oData, msg:oMsg } originPlatesRes; if(oCode200){ const firstOriginPlate oData.splice(0, 1); // 拼装AV下的版块和原创下的除了第一个版块之外的其他版块 this.platesList this.platesList.concat(oData.map(v > ((vchild v.child || ), v))); // 加载原创第一个版块下的模组作为菜单更多下面的选项 const res await request({ url: `${getModels}`, method: POST, data: { moduleId: firstOriginPlate0.child0.id } }); const { code, msg, data } res; const index data.findIndex(v>v.name最近更新); if(index!-1){ data.splice(index, 1); } const len data.length; for (let i 0; i len; i++) { const item datai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.morePlatesList data; }else{ this.$message(oMsg); } if(moduleId!undefined){ // 获取该板块下的模组 const modelRes await request({ url: `${getModels}`, method: POST, data: { moduleId } }); const { code:mCode, data:mData, msg:mMsg } modelRes; if(mCode200){ const len mData.length; for (let i 0; i len; i++) { const item mDatai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.modelList mData.filter(v>v.child && v.child.length && v.child0.resourceType!0); if(resourceIdundefined){ // 显示第一个模组的数据 this.currentModel { ...this.modelList0 }; this.loadModelResource(); } }else{ this.$message(mMsg); } }else if(modelId!undefined){ // 获取该模组下面的资源 if(resourceIdundefined){ this.currentModel { id: modelId, name: title }; this.loadModelResource(); } }else{ // 获取第一个板块下的模组 if(this.platesList.length>0 && resourceIdundefined){ // 获取第一个板块下的所有模组 const modelRes await request({ url: `${getModels}`, method: POST, data: { moduleId: this.platesList0.child0.id } }); const { code:mCode, data:mData, msg:mMsg } modelRes; if(mCode200){ const len mData.length; for (let i 0; i len; i++) { const item mDatai; if(item.child && item.child.length){ for (let j 0; j item.child.length; j++) { const c item.childj; if(c.newImg.includes(images_add)){ const arr c.newImg.split(images_add); c.newImg `${location.origin}/images_add${arr1}`; } } } } this.modelList mData.filter(v>v.child && v.child.length && v.child0.resourceType!0); // 显示第一个模组的数据 this.currentModel { ...this.modelList0 }; this.loadModelResource(); }else{ this.$message(mMsg); } } } }else{ this.$message(pMsg); } }, tagClick(tag){ this.searchText tag; this.search(); window.scrollTo(0,0); this.showSearchResult true; } }, }); }, res.data.ip);}); /script>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]