workaround for brave, wait till we get focus
This commit is contained in:
parent
a51c1ebdb4
commit
8df5d36207
@ -1,7 +1,7 @@
|
||||
// ==UserScript==
|
||||
// @name LeetRay
|
||||
// @namespace http://tampermonkey.net/
|
||||
// @version 2023-01-04T01:21:05+05:30
|
||||
// @version 2023-01-05T01:00:39+05:30
|
||||
// @description Take beautiful screenshots of your code in Leetcode instantly with Ray.so
|
||||
// @updateURL https://git.sangeeth.dev/x/userscripts/raw/branch/main/leetray/LeetRay.user.js
|
||||
// @downloadURL https://git.sangeeth.dev/x/userscripts/raw/branch/main/leetray/LeetRay.user.js
|
||||
@ -16,6 +16,7 @@
|
||||
// @grant GM_log
|
||||
// @grant GM_getTab
|
||||
// @grant GM_setValue
|
||||
// @grant GM_getValue
|
||||
// @grant GM_addValueChangeListener
|
||||
// @grant GM_removeValueChangeListener
|
||||
// @grant unsafeWindow
|
||||
@ -53,6 +54,18 @@
|
||||
});
|
||||
}
|
||||
|
||||
async function waitTillFocused() {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(function check() {
|
||||
if (document.visibilityState === "visible") {
|
||||
resolve();
|
||||
} else {
|
||||
setTimeout(check, 500);
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
|
||||
function debug(stuff) {
|
||||
GM_log(`LeetRay DEBUG ${stuff}`);
|
||||
}
|
||||
@ -61,6 +74,16 @@
|
||||
GM_log(`LeetRay ERROR ${stuff}`);
|
||||
}
|
||||
|
||||
async function isClipboardAllowedForRobots() {
|
||||
try {
|
||||
await navigator.clipboard.writeText("");
|
||||
return true;
|
||||
} catch (e) {
|
||||
error(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function leetcodeMain() {
|
||||
const menu_command_id = GM_registerMenuCommand(
|
||||
"Copy screenshot",
|
||||
@ -117,7 +140,9 @@
|
||||
|
||||
await waitForRaysoExit();
|
||||
|
||||
if (GM_getValue("leetray.clip")) {
|
||||
window.focus();
|
||||
}
|
||||
|
||||
handler.onclose = () => {
|
||||
alert("Copied screenshot");
|
||||
@ -140,11 +165,19 @@
|
||||
let id = GM_addValueChangeListener("leetray.screenshot", async () => {
|
||||
window.focus();
|
||||
|
||||
await waitTillFocused();
|
||||
|
||||
const cbAllowed = await isClipboardAllowedForRobots();
|
||||
|
||||
await raysoCopyScreenshot();
|
||||
|
||||
GM_removeValueChangeListener(id);
|
||||
GM_setValue("leetray.rayso.exit", Date.now());
|
||||
GM_setValue("leetray.clip", cbAllowed);
|
||||
|
||||
if (cbAllowed) {
|
||||
uwindow.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user