diff --git a/flag.ahk b/flag.ahk index 7be791c..97f39d0 100644 --- a/flag.ahk +++ b/flag.ahk @@ -1,28 +1,13 @@ -; 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 := "" +global userID := "user ID from control software" -func := A_Args[1] -col := A_Args[2] -Switch A_Args[3] +If (A_Args.Length() < 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") + If (A_Args[1] = "off") { off() } Else { @@ -31,19 +16,30 @@ If (A_Args.Length() < 2) ExitApp } -Switch func +Switch A_Args[3] +{ + Case A_Args[3] is number: + length := A_Args[3] + Case "hold": + length := 100000 + Default: + length := 0 +} + +Switch A_Args[1] { Case "s": - solid(col, length) + solid(A_Args[2], length) Case "b": - blink(col, length) + blink(A_Args[2], length) Case "p": - patt(col, length) + patt(A_Args[2], length) Default: - MsgBox,, Flag, % "Incorrect parameters passed to script: " func ", " col ", " length + MsgBox,, Flag, % "Incorrect parameters passed to script: " A_Args[1] ", " A_Args[2] ", " length } -solid(input, length := 0) + +solid(input, length) { Switch input { @@ -65,11 +61,11 @@ solid(input, length := 0) "actionFields":{ "color": "custom", "custom_color": "%input%" - } + } } ) } - req("https://api.luxafor.com/webhook/v1/actions/solid_color", json_str, length) + translate("https://api.luxafor.com/webhook/v1/actions/solid_color", json_str, length) } blink(input, length) @@ -77,69 +73,81 @@ 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) + color := input Default: MsgBox % input " is not an accepted input" + ExitApp } + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "color": "%color%" + } + } + ) + translate("https://api.luxafor.com/webhook/v1/actions/blink", json_str, length) } 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) + Case "police", "rainbow", "sea", "synthetic": + pattern := input + Case "traffic_lights": + pattern := "traffic lights" + Case "white_wave": + pattern := "white wave" + Case "random": + Random, rando, 1, 5 + pattern := "random %rando%" + Case "random1": + pattern := "random 1" + Case "random2": + pattern := "random 2" + Case "random3": + pattern := "random 3" + Case "random4": + pattern := "random 4" + Case "random5": + pattern := "random 5" Default: MsgBox % input " is not an accepted input" + ExitApp } + json_str = + ( + { + "userId": "%userID%", + "actionFields":{ + "pattern": "%pattern%" + } + } + ) + translate("https://api.luxafor.com/webhook/v1/actions/pattern", json_str, length) } -req(url, data, len := 0) +translate(url, data, length) { - If (InStr(url, "solid")) + If (length = 0) { - 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() - } + req(url, data) } Else { start_time := A_TickCount - time_to_run := len * 1000 + time_to_run := length * 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() + req(url, data) } } - + + If (InStr(url, "solid")) + { + Sleep, (length * 1000) + off() + } } off() @@ -154,9 +162,18 @@ off() } } ) - whr.Open("POST", "https://api.luxafor.com/webhook/v1/actions/solid_color", false) - whr.SetRequestHeader("Content-Type", "application/json") - whr.Send(data) + url := "https://api.luxafor.com/webhook/v1/actions/solid_color" + req(url, data) } -ExitApp +req(url, data) +{ + whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") + whr.Open("POST", url, false) + whr.SetRequestHeader("Content-Type", "application/json") + whr.Send(data) + whr.WaitForResponse() +} + + +ExitApp \ No newline at end of file