Claude: Add a short delay before taking any screenshot

This commit is contained in:
Alessandro Pignotti 2024-12-20 12:29:44 +01:00
parent 4a5a228011
commit 0c567163b2

View File

@ -352,11 +352,11 @@
}
return null;
}
async function yieldHelper()
async function yieldHelper(timeout)
{
return new Promise(function(f2, r2)
{
setTimeout(f2, 0);
setTimeout(f2, timeout);
});
}
async function kmsSendChar(textArea, charStr)
@ -366,7 +366,7 @@
textArea.dispatchEvent(ke);
var ke = new KeyboardEvent("keyup");
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
}
async function handleTool(tool)
{
@ -412,6 +412,8 @@
{
case "screenshot":
{
// Insert a 3 seconds delay unconditionally, the reference implementation uses 2
await yieldHelper(3000);
var delayCount = 0;
var display = document.getElementById("display");
var dc = get(displayConfig);
@ -439,7 +441,7 @@
console.warn("Identical screenshot, rate limiting");
delayCount++;
// Wait some time and retry
await new Promise(function(f, r) { setTimeout(f, 5000); });
await yieldHelper(5000);
continue;
}
}
@ -514,7 +516,7 @@
key = key.substr("shift+".length);
var ke = new KeyboardEvent("keydown", {keyCode: 0x10});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
continue;
}
else if(key.startsWith("ctrl+"))
@ -523,7 +525,7 @@
key = key.substr("ctrl+".length);
var ke = new KeyboardEvent("keydown", {keyCode: 0x11});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
continue;
}
else if(key.startsWith("alt+"))
@ -532,7 +534,7 @@
key = key.substr("alt+".length);
var ke = new KeyboardEvent("keydown", {keyCode: 0x12});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
continue;
}
break;
@ -559,19 +561,19 @@
{
var ke = new KeyboardEvent("keyup", {keyCode: 0x10});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
}
if(isCtrl)
{
var ke = new KeyboardEvent("keyup", {keyCode: 0x11});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
}
if(isAlt)
{
var ke = new KeyboardEvent("keyup", {keyCode: 0x12});
textArea.dispatchEvent(ke);
await yieldHelper();
await yieldHelper(0);
}
return ret;
}