diff --git a/flag.ahk b/flag.ahk new file mode 100644 index 0000000..7be791c --- /dev/null +++ b/flag.ahk @@ -0,0 +1,162 @@ +; AutoHotkey.exe C:\Users\Leand.000\Documents\D3K\flag.ahk [Script Parameters] + +#SingleInstance force ; Only one instance at a time +FileEncoding, UTF-8 ; Makes sure special characters dont break stuff +global whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") + + +global userID := "" + + +func := A_Args[1] +col := A_Args[2] +Switch A_Args[3] +{ + Case "hold": + length := 10000 + Case A_Args[3] is number: + length := A_Args[3] + Default: + length := 0 +} + +If (A_Args.Length() < 2) +{ + If (func = "off") + { + off() + } Else { + MsgBox,, Flag, Not enough parameters passed to script + } + ExitApp +} + +Switch func + { + Case "s": + solid(col, length) + Case "b": + blink(col, length) + Case "p": + patt(col, length) + Default: + MsgBox,, Flag, % "Incorrect parameters passed to script: " func ", " col ", " length + } + +solid(input, length := 0) +{ + Switch input + { + Case "red", "green", "yellow", "blue", "white", "cyan", "magenta": + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "color": "%input%" + } + } + ) + Default: + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "color": "custom", + "custom_color": "%input%" + } + } + ) + } + req("https://api.luxafor.com/webhook/v1/actions/solid_color", json_str, length) +} + +blink(input, length) +{ + Switch input + { + Case "red", "green", "yellow", "blue", "white", "cyan", "magenta": + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "color": "%input%" + } + } + ) + req("https://api.luxafor.com/webhook/v1/actions/blink", json_str, length) + Default: + MsgBox % input " is not an accepted input" + } +} + +patt(input, length) +{ + Switch input + { + Case "police", "traffic_lights", "random1", "random2", "random3", "random4", "random5": + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "pattern": "%input%" + } + } + ) + req("https://api.luxafor.com/webhook/v1/actions/pattern", json_str, length) + Default: + MsgBox % input " is not an accepted input" + } +} + +req(url, data, len := 0) +{ + If (InStr(url, "solid")) + { + If (len = 0) + { + whr.Open("POST", url, false) + whr.SetRequestHeader("Content-Type", "application/json") + whr.Send(data) + } Else { + whr.Open("POST", url, false) + whr.SetRequestHeader("Content-Type", "application/json") + whr.Send(data) + Sleep, (len * 1000) + off() + } + } Else { + start_time := A_TickCount + time_to_run := len * 1000 + end_time := start_time + time_to_run + while (A_tickcount < end_time) { + whr.Open("POST", url, false) + whr.SetRequestHeader("Content-Type", "application/json") + whr.Send(data) + whr.WaitForResponse() + } + } + +} + +off() +{ + data = + ( + { + "userId": "%userID%", + "actionFields":{ + "color": "custom", + "custom_color": "000000" + } + } + ) + whr.Open("POST", "https://api.luxafor.com/webhook/v1/actions/solid_color", false) + whr.SetRequestHeader("Content-Type", "application/json") + whr.Send(data) +} + +ExitApp