| |
| |
| |
| |
| #NoEnv |
| #SingleInstance Force |
| #MaxThreadsPerHotkey 1 |
| SetBatchLines, -1 |
| ListLines, Off |
|
|
| |
| DllCall("SetProcessDPIAware") |
| |
| CoordMode, Mouse, Screen |
| SendMode, Input |
| SetKeyDelay, 50, 50 |
| SetMouseDelay, 50 |
|
|
| |
| |
| |
|
|
| |
| remixButtonX := 0 |
| remixButtonY := 0 |
|
|
| |
| pictureButtonX := 0 |
| pictureButtonY := 0 |
|
|
| |
| START_CURRENT_ID := 1 |
|
|
| TargetURL := "https://sora.chatgpt.com/g/gen_01kph9ac6sf54a370pd1v039kr" |
|
|
| |
| |
| |
|
|
| prompts := [] |
|
|
| prompts.Push("a male rogue with a hood and a knife and he looks sneaky") |
| prompts.Push("a male warrior with a sword looking mean") |
| prompts.Push("a female healer who has a white robe looking healy") |
|
|
| |
| |
| |
|
|
| global gRunning := false |
| global gClipboardBackup := "" |
| global gHasClipboardBackup := false |
| |
| OnExit, __Cleanup |
|
|
| |
| |
| |
|
|
| F9:: |
| if (gRunning) |
| return |
|
|
| gRunning := true |
| RunSoraLoop() |
| gRunning := false |
| return |
|
|
|
|
| |
| |
| $Esc:: |
| ExitApp |
| return |
|
|
|
|
| |
| |
| |
|
|
| RunSoraLoop() { |
| global remixButtonX, remixButtonY |
| global pictureButtonX, pictureButtonY |
| global START_CURRENT_ID |
| global TargetURL |
| global prompts |
| global gClipboardBackup, gHasClipboardBackup |
|
|
| if (remixButtonX = 0 || remixButtonY = 0 || pictureButtonX = 0 || pictureButtonY = 0) { |
| MsgBox, 16, Missing Coordinates, Edit the button pixel positions before running. |
| return |
| } |
|
|
| totalPrompts := prompts.Length() |
|
|
| if (START_CURRENT_ID < 1 || START_CURRENT_ID > totalPrompts) { |
| MsgBox, 16, Invalid CURRENT ID, START_CURRENT_ID is outside the prompt list. |
| return |
| } |
|
|
| |
| gClipboardBackup := ClipboardAll |
| gHasClipboardBackup := true |
|
|
| currentID := START_CURRENT_ID |
|
|
| while (currentID <= totalPrompts) { |
|
|
| currentPrompt := prompts[currentID] |
|
|
| |
| Sleep, 1000 |
|
|
| |
| SendInput, ^l |
|
|
| |
| Sleep, 200 |
| SendInput, %TargetURL% |
|
|
| |
| SendInput, {Enter} |
|
|
| |
| Sleep, 3000 |
|
|
| |
| SendInput, e |
|
|
| |
| Sleep, 1000 |
|
|
| |
| SendInput, ^a |
|
|
| |
| Sleep, 1000 |
|
|
| |
| SendInput, {Delete} |
|
|
| |
| Sleep, 1000 |
|
|
| |
| Clipboard := |
| Clipboard := currentPrompt |
| ClipWait, 2 |
|
|
| |
| Sleep, 1000 |
|
|
| |
| SendInput, ^v |
|
|
| |
| Sleep, 1000 |
|
|
| |
| Click, %remixButtonX%, %remixButtonY% |
|
|
| |
| Sleep, 60000 |
|
|
| |
| SendInput, {Esc} |
|
|
| |
| Sleep, 2000 |
|
|
| |
| SendInput, {Home} |
|
|
| |
| Sleep, 1000 |
|
|
| |
| Click, %pictureButtonX%, %pictureButtonY% |
|
|
| |
| Sleep, 1000 |
|
|
| |
| SendInput, d |
| Sleep, 2000 |
|
|
| |
| SendInput, {Right} |
| Sleep, 2000 |
|
|
| |
| SendInput, d |
| Sleep, 1000 |
|
|
| |
| SendInput, {Right} |
| Sleep, 2000 |
|
|
| |
| SendInput, d |
| Sleep, 1000 |
|
|
| |
| SendInput, {Right} |
| Sleep, 2000 |
|
|
| |
| SendInput, d |
| Sleep, 1000 |
|
|
| |
| SendInput, {Esc} |
| Sleep, 1000 |
|
|
| |
| currentID++ |
| } |
|
|
| |
| if (gHasClipboardBackup) { |
| Clipboard := gClipboardBackup |
| gClipboardBackup := |
| gHasClipboardBackup := false |
| } |
| |
| MsgBox, 64, Finished, Finished all prompts. |
| } |
|
|
|
|
| |
| |
| |
|
|
| __Cleanup: |
| global gClipboardBackup, gHasClipboardBackup |
|
|
| if (gHasClipboardBackup) { |
| Clipboard := gClipboardBackup |
| gClipboardBackup := |
| gHasClipboardBackup := false |
| } |
|
|
| ExitApp |
| return |