From d691f884284318393fe98cd8e9b54ca98dfb3f81 Mon Sep 17 00:00:00 2001 From: Blake Vandercar Date: Tue, 7 May 2024 15:31:38 -0600 Subject: [PATCH 1/5] fix: move applies moveDelay --- src/spoof.ts | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/spoof.ts b/src/spoof.ts index 33907e1..c3a252f 100644 --- a/src/spoof.ts +++ b/src/spoof.ts @@ -287,11 +287,13 @@ export const createCursor = ( }), true) previous = rand } - if (options?.moveDelay !== undefined && options.moveDelay >= 0) { - await delay(Math.random() * options.moveDelay) - } else { - await delay(Math.random() * 2000) // 2s by default - } + + const moveDelay = + options?.moveDelay !== undefined && options?.moveDelay >= 0 + ? options.moveDelay + : 2000 // 2s by default + await delay(Math.random() * moveDelay) + randomMove().then( (_) => {}, (_) => {} @@ -313,7 +315,11 @@ export const createCursor = ( actions.toggleRandomMove(false) if (selector !== undefined) { - await actions.move(selector, options) + await actions.move(selector, { + ...options, + // apply moveDelay after click, but not after actual move + moveDelay: 0 + }) actions.toggleRandomMove(false) } @@ -330,11 +336,11 @@ export const createCursor = ( log('Warning: could not click mouse, error message:', error) } - if (options?.moveDelay !== undefined && options.moveDelay >= 0) { - await delay(Math.random() * options.moveDelay) - } else { - await delay(Math.random() * 2000) // 2s by default - } + const moveDelay = + options?.moveDelay !== undefined && options?.moveDelay >= 0 + ? options.moveDelay + : 2000 // 2s by default + await delay(Math.random() * moveDelay) actions.toggleRandomMove(true) }, @@ -426,7 +432,13 @@ export const createCursor = ( return await go(iteration + 1) } } - return await go(0) + await go(0) + + const moveDelay = + options?.moveDelay !== undefined && options?.moveDelay >= 0 + ? options.moveDelay + : 2000 // 2s by default + await delay(Math.random() * moveDelay) }, async moveTo (destination: Vector): Promise { actions.toggleRandomMove(false) From 9318509edab2cfff66c729e4a9b81747c4619936 Mon Sep 17 00:00:00 2001 From: Blake Vandercar Date: Tue, 7 May 2024 15:53:49 -0600 Subject: [PATCH 2/5] fix: default --- src/spoof.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/spoof.ts b/src/spoof.ts index c3a252f..6724c85 100644 --- a/src/spoof.ts +++ b/src/spoof.ts @@ -28,7 +28,7 @@ export interface MoveOptions extends BoxOptions { readonly waitForSelector?: number /** * Delay after moving the mouse in milliseconds. - * @default 2000 + * @default 0 */ readonly moveDelay?: number /** @@ -54,6 +54,11 @@ export interface ClickOptions extends MoveOptions { * @default 0 */ readonly waitForClick?: number + /** + * Delay after performing the click in milliseconds. + * @default 2000 + */ + readonly moveDelay?: number } export interface PathOptions { @@ -437,7 +442,7 @@ export const createCursor = ( const moveDelay = options?.moveDelay !== undefined && options?.moveDelay >= 0 ? options.moveDelay - : 2000 // 2s by default + : 0 // No move delay by default await delay(Math.random() * moveDelay) }, async moveTo (destination: Vector): Promise { From f26497c2a3721cde57efbb5942fd8a626bd49555 Mon Sep 17 00:00:00 2001 From: Blake Vandercar Date: Tue, 7 May 2024 15:55:32 -0600 Subject: [PATCH 3/5] fix: readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a7fa3e..804b85e 100644 --- a/README.md +++ b/README.md @@ -97,7 +97,7 @@ Moves the mouse to the specified selector or element. - **options (optional):** Additional options for moving. - `paddingPercentage (number):` Percentage of padding to be added around the element. Default is `0`. - `waitForSelector (number):` Time to wait for the selector to appear in milliseconds. Default is to not wait for selector. - - `moveDelay (number):` Delay after moving the mouse in milliseconds. Default is `2000`. + - `moveDelay (number):` Delay after moving the mouse in milliseconds. Default is `0`. - `maxTries (number):` Maximum number of attempts to mouse-over the element. Default is `10`. - `moveSpeed (number):` Speed of mouse movement. Default is random. From 0aa252d6b13e5358e86aa2f1af51ebb56c555724 Mon Sep 17 00:00:00 2001 From: Blake Vandercar Date: Tue, 7 May 2024 16:15:22 -0600 Subject: [PATCH 4/5] style: pass whole object --- src/spoof.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/spoof.ts b/src/spoof.ts index 6724c85..114657b 100644 --- a/src/spoof.ts +++ b/src/spoof.ts @@ -287,9 +287,7 @@ export const createCursor = ( try { if (!moving) { const rand = await getRandomPagePoint(page) - await tracePath(path(previous, rand, { - moveSpeed: options?.moveSpeed - }), true) + await tracePath(path(previous, rand, options), true) previous = rand } From af27479b49a547985cd2fe4b7e189e657429d1b0 Mon Sep 17 00:00:00 2001 From: Blake Vandercar Date: Tue, 7 May 2024 17:04:55 -0600 Subject: [PATCH 5/5] style: revert --- src/spoof.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/spoof.ts b/src/spoof.ts index 114657b..6724c85 100644 --- a/src/spoof.ts +++ b/src/spoof.ts @@ -287,7 +287,9 @@ export const createCursor = ( try { if (!moving) { const rand = await getRandomPagePoint(page) - await tracePath(path(previous, rand, options), true) + await tracePath(path(previous, rand, { + moveSpeed: options?.moveSpeed + }), true) previous = rand }