157 lines
No EOL
6.8 KiB
HTML
157 lines
No EOL
6.8 KiB
HTML
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<link type="text/css" rel="stylesheet" href="https://source.zoom.us/1.9.1/css/bootstrap.css" />
|
|
<link type="text/css" rel="stylesheet" href="https://source.zoom.us/1.9.1/css/react-select.css" />
|
|
</head>
|
|
<body>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/react.min.js"></script>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/react-dom.min.js"></script>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/redux.min.js"></script>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/redux-thunk.min.js"></script>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/jquery.min.js"></script>
|
|
<script src="https://source.zoom.us/1.9.1/lib/vendor/lodash.min.js"></script>
|
|
<script src="https://source.zoom.us/zoom-meeting-1.9.1.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9/crypto-js.min.js"></script>
|
|
<script type="text/javascript">
|
|
var audioJoin = 0;
|
|
var videoJoin = 0;
|
|
|
|
function controlUserInterface(_) {
|
|
var audioButton = document.getElementsByClassName('join-audio-by-voip__join-btn')[0];
|
|
var audioContainer = document.getElementsByClassName('join-audio-container')[0];
|
|
var leave = document.getElementsByClassName('footer__leave-btn-container')[0];
|
|
var more = document.getElementsByClassName('more-button')[0];
|
|
var participantControls = document.getElementsByClassName('participants-item__buttons')[0];
|
|
var raiseHandContainer = document.getElementsByClassName('participants-section-container__participants-footer')[0];
|
|
var videoButton = document.getElementsByClassName('send-video-container__btn')[0];
|
|
var videoContainer = document.getElementsByClassName('send-video-container')[0];
|
|
|
|
if (audioButton && !'%_AUDIO_MUTED_%' && audioJoin < 500) {
|
|
audioButton.click();
|
|
audioJoin++;
|
|
}
|
|
|
|
if (audioContainer && !'%_AUDIO_MUTED_%') {
|
|
audioContainer.style.visibility = 'hidden';
|
|
}
|
|
|
|
if (leave) {
|
|
leave.style.visibility = 'hidden';
|
|
}
|
|
|
|
if (more) {
|
|
more.style.visibility = 'hidden';
|
|
}
|
|
|
|
if (participantControls) {
|
|
participantControls.style.visibility = 'hidden';
|
|
}
|
|
|
|
if (raiseHandContainer && !'%_ALLOW_RAISE_HAND_%') {
|
|
raiseHandContainer.style.visibility = 'hidden';
|
|
}
|
|
|
|
if (videoButton && !'%_VIDEO_MUTED_%' && videoJoin < 500) {
|
|
videoButton.click();
|
|
videoJoin++;
|
|
}
|
|
|
|
if (videoContainer && !'%_VIDEO_MUTED_%') {
|
|
videoContainer.style.visibility = 'hidden';
|
|
}
|
|
|
|
requestAnimationFrame(controlUserInterface);
|
|
}
|
|
|
|
function startMeeting(credentials) {
|
|
const ATTENDEE = 0;
|
|
var signature = credentials.signature;
|
|
|
|
if (!ZoomMtg.checkSystemRequirements()) {
|
|
alert('This system does not meet the necessary requirements for Zoom!');
|
|
}
|
|
|
|
ZoomMtg.setZoomJSLib('https://source.zoom.us/1.9.1/lib', '/av');
|
|
ZoomMtg.preLoadWasm();
|
|
ZoomMtg.prepareJssdk();
|
|
|
|
if (!signature) {
|
|
signature = ZoomMtg.generateSignature({
|
|
meetingNumber: credentials.meetingNumber,
|
|
apiKey: credentials.apiKey,
|
|
apiSecret: credentials.apiSecret,
|
|
role: ATTENDEE,
|
|
error: function (res) {
|
|
alert(`Failed to generate signature: ${JSON.stringify(res)}`);
|
|
}
|
|
});
|
|
}
|
|
|
|
ZoomMtg.init({
|
|
audioPanelAlwaysOpen: false,
|
|
disableCallOut: true,
|
|
disableInvite: true,
|
|
disableJoinAudio: false,
|
|
disableRecord: true,
|
|
disableReport: true,
|
|
disableVoIP: false,
|
|
leaveUrl: 'doesnotexist',
|
|
isLockBottom: true,
|
|
isShowJoiningErrorDialog: true,
|
|
isSupportAV: true,
|
|
isSupportBreakout: false,
|
|
isSupportChat: '%_ALLOW_CHAT_%',
|
|
isSupportCC: '%_ALLOW_CLOSED_CAPTIONS_%',
|
|
isSupportPolling: false,
|
|
isSupportQA: false,
|
|
isSupportNonverbal: false,
|
|
screenShare: false,
|
|
sharingMode: 'both',
|
|
showMeetingHeader: true,
|
|
showPureSharingContent: false,
|
|
videoDrag: true,
|
|
videoHeader: true,
|
|
meetingInfo: [
|
|
'topic',
|
|
'host',
|
|
'participant',
|
|
//'mn',
|
|
//'pwd',
|
|
//'telPwd',
|
|
//'invite',
|
|
//'dc'
|
|
],
|
|
error: function (res) {
|
|
alert(`Failed to initialize meeting: ${JSON.stringify(res)}`);
|
|
},
|
|
success: function () {
|
|
ZoomMtg.join({
|
|
apiKey: credentials.apiKey,
|
|
meetingNumber: credentials.meetingNumber,
|
|
passWord: credentials.password,
|
|
signature: signature,
|
|
userName: credentials.userName,
|
|
error: function (res) {
|
|
alert(`Failed to join meeting: ${JSON.stringify(res)}`);
|
|
},
|
|
success: function (res) {
|
|
requestAnimationFrame(controlUserInterface);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function webMessageReceived(args) {
|
|
if ('credentials' in args.data) {
|
|
startMeeting(args.data.credentials);
|
|
}
|
|
}
|
|
|
|
window.addEventListener('unload', () => ZoomMtg.leaveMeeting({}));
|
|
window.chrome.webview.addEventListener('message', webMessageReceived);
|
|
window.chrome.webview.postMessage('credentials');
|
|
</script>
|
|
</body>
|
|
</html> |