Module 8917

3,021 characters · in no known chunk
Dependencies
Source Raw
function(e,t,n){"use strict";let r;n.d(t,{A:()=>G}),n(393431),n(532706),n(42231),n(232424),n(949626),n(767709),n(65162);var i=n(284009),s=n.n(i),a=n(735438),o=n.n(a),l=n(562465),u=n(823598),c=n(201327),d=n(451988),_=n(73153),f=n(626584),p=n(253932),h=n(616356),m=n(961350),E=n(723702),g=n(837921),A=n(652896),I=n(502075),T=n(652215),S=n(731854);let y=3e5,v=6e4,N=new d.Ep,C=!1,R=window.document.createElement("canvas"),O=512,b=288;R.width=512,R.height=b;let D=R.getContext("2d");function L(){N.stop(),null!=r&&(r=null)}let w=o().debounce((e,t,n,r)=>{P(e,(0,A._z)({streamType:null!=t?I.U4.GUILD:I.U4.CALL,guildId:t,channelId:n,ownerId:r}))},500);function M(e){let t=Math.min(O/e.width,b/e.height),n=e.width*t,r=e.height*t;R.width=n,R.height=r;let i=window.document.createElement("canvas"),s=i.getContext("2d");i.width=e.width,i.height=e.height;let a=new ImageData(e.data,e.width,e.height);s?.putImageData(a,0,0),D?.drawImage(i,0,0,e.width,e.height,0,0,n,r)}async function P(e,t){if(r!==e||(0,E.isWeb)()&&p.uh.getSetting()||h.A.getIsActiveStreamPreviewDisabled(t))return;let n=()=>P(e,t);if(!C)try{let n=await x(e,60);M(n);let r=R.toDataURL("image/jpeg");if(_.h.dispatch({type:"STREAM_PREVIEW_FETCH_SUCCESS",streamKey:t,previewURL:r}),E.isPlatformEmbedded){let e=m.default.getToken();s()(null!=e,"Auth token was null while sending screenshot."),await g.Ay.makeChunkedRequest(T.Rsh.STREAM_PREVIEW(t),{thumbnail:r},{method:"POST",token:e})}else await l.Bo.post({url:T.Rsh.STREAM_PREVIEW(t),body:{thumbnail:r},oldFormErrors:!0,rejectWithError:!1})}catch(t){new f.A("ApplicationStreamPreviewUploadManager").error("Failed to post stream preview",t),r===e&&N.start(v,n);return}r===e&&(C?N.start(v,n):N.start(y,n))}function x(e,t){let n=0;return(E.isPlatformEmbedded?U:k)(e,e=>{if(new Uint32Array(e.data.buffer).some(e=>0!==e))return!0;if(++n>t)throw Error(`Timed out awaiting non-black frame after ${t} frames`);return!1})}function k(e,t){let n=(0,c.yL)(e);if(null==n)return Promise.resolve(new ImageData(0,0));let{width:r,height:i}=n.getVideoTracks()[0].getSettings(),s=document.createElement("video"),a=document.createElement("canvas");s.width=a.width=r??O,s.height=a.height=i??b,s.srcObject=n,s.play();let o=a.getContext("2d");return new Promise((e,n)=>{s.ontimeupdate=()=>{o?.drawImage(s,0,0,a.width,a.height);let r=o?.getImageData(0,0,a.width,a.height);try{null!=r&&t(r)&&e(r)}catch(e){n(e)}}}).finally(()=>{s.ontimeupdate=null,s.removeAttribute("srcObject"),s.load()})}function U(e,t){let n=(0,u.lE)();return new Promise((i,s)=>{let a=e=>{try{null!=e&&t(e)&&i(e)}catch(e){s(e)}};n.getNextVideoOutputFrame(e).then(a,t=>{r===e&&s(t)})})}let G={init(){_.h.subscribe("CONNECTION_OPEN",L),_.h.subscribe("LOGOUT",L),_.h.subscribe("STREAM_DELETE",L),_.h.subscribe("RTC_CONNECTION_VIDEO",e=>{let{guildId:t,channelId:n,userId:i,streamId:s,context:a}=e;null==s||a!==S.x.STREAM||i!==m.default.getId()||__OVERLAY__||(L(),r=s,w(s,t,n,i))}),_.h.subscribe("MEDIA_ENGINE_VIDEO_STATE_CHANGED",e=>{let{videoState:t}=e;C=t===T.uPF.PAUSED})}}}