-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathpreload.js
93 lines (88 loc) · 2.36 KB
/
preload.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
const { ipcRenderer } = require('electron')
// /**
// * @type {MediaRecorder | undefined}
// */
// let mediaRecorder
// let recentDeath = false
//
// function startRecording() {
// const canvas = document.querySelector('canvas#main-canvas')
// if (!canvas) {
// if (mediaRecorder) {
// mediaRecorder.stop()
// mediaRecorder = null
// }
// return
// }
//
// mediaRecorder = new MediaRecorder(canvas.captureStream(25))
// mediaRecorder.addEventListener('dataavailable', (e) => {
// if (!recentDeath) {
// return
// }
// recentDeath = false
//
// const blob = new Blob([e.data], { 'type': e.data.type })
// const reader = new FileReader()
// reader.addEventListener('load', () => {
// /** @type {string} */
// const dataUrl = reader.result
// ipcRenderer.send('death-recording', dataUrl)
// })
// reader.addEventListener('error', (e) => {
// console.error('There was an error reading the video blob', e.error)
// })
// reader.readAsDataURL(blob)
// })
// mediaRecorder.addEventListener('error', (e) => {
// console.error('There was an error recording the video stream', e.error)
// })
// mediaRecorder.start()
// }
class WebSocketProxy extends window.WebSocket {
/**
* @param {string | URL} url
* @param {string | string[]}protocols
*/
constructor(url, protocols = []) {
super(url, protocols)
this.addEventListener('message', (event) => {
ipcRenderer.send('received-ws-data', event.data)
//
// const data = JSON.parse(event.data)
// if (data[1] === 'combat' && data[2] === 0) {
// window.setTimeout(((oldMediaRecorder) => () => {
// if (oldMediaRecorder && oldMediaRecorder.state !== 'inactive') {
// oldMediaRecorder.stop()
// }
// })(mediaRecorder), 500)
//
// startRecording()
// }
//
// if (
// data[1] === 'hit'
// && Array.isArray(data[2])
// && data[2].some((hit) => hit.target === dw?.c?.id && hit.rip === 1)
// ) {
// recentDeath = true
// }
})
}
/**
* @param {any} data
*/
send(data) {
ipcRenderer.send('send-ws-data', data)
super.send(data)
}
}
window.WebSocket = WebSocketProxy
//
// setInterval(() => {
// if (mediaRecorder) {
// return
// }
//
// startRecording()
// }, 100)