Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F10360946
screenshot.mjs
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
screenshot.mjs
View Options
import
fs
from
"fs"
;
import
{
sleep
}
from
"./utils.mjs"
;
import
{
WebSocket
}
from
"ws"
;
export
const
android_websocket
=
new
WebSocket
(
"ws://android:3000"
);
let
doneWrite
=
0
;
let
screenshotPromise
=
null
;
async
function
screenshot
()
{
const
time_start
=
Date
.
now
();
let
retries
=
0
;
while
(
android_websocket
.
readyState
!=
WebSocket
.
OPEN
)
{
await
sleep
(
15
);
retries
++
;
if
(
retries
>
50
)
{
console
.
error
(
"Screenshot ws timeout"
);
doneWrite
=
0
;
screenshotPromise
=
null
;
return
;
}
}
android_websocket
.
send
(
"screenshot"
);
while
(
!
doneWrite
)
{
await
sleep
(
15
);
if
(
Date
.
now
()
-
time_start
>
2000
)
{
console
.
error
(
"Screenshot timed out after 2s"
);
break
;
// timeout
}
}
doneWrite
=
0
;
screenshotPromise
=
null
;
}
export
async
function
guardedScreenshot
()
{
if
(
!
screenshotPromise
)
{
screenshotPromise
=
screenshot
();
}
else
{
console
.
log
(
"ongoing screenshot promise not taking a new one"
);
}
return
screenshotPromise
;
}
export
async
function
waitFullBoot
()
{
var
start
=
performance
.
now
();
var
counter
=
0
;
//will timeout after 10 min
while
(
performance
.
now
()
-
start
<
600
*
1000
)
{
var
before
=
performance
.
now
();
await
screenshot
();
var
after
=
performance
.
now
();
if
(
after
-
before
<
process
.
env
.
screenshotDelayMs
)
counter
++
;
else
counter
=
0
;
if
(
counter
===
10
)
return
;
}
throw
new
Error
(
"wait for screenshot time to be less than 0.5s timed out"
);
}
android_websocket
.
on
(
"message"
,
(
dataBuf
)
=>
{
let
fd
;
fd
=
fs
.
openSync
(
"/code/screenshot.png"
,
"w"
);
fs
.
writeSync
(
fd
,
dataBuf
);
fs
.
close
(
fd
);
doneWrite
=
1
;
});
File Metadata
Details
Attached
Mime Type
text/x-java
Expires
Sat, Nov 8, 10:11 (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1034446
Default Alt Text
screenshot.mjs (1 KB)
Attached To
Mode
R134 rentgen-android
Attached
Detach File
Event Timeline
Log In to Comment