Fixed Light Command

Able to use RGB Values (0 to 1)
ex: !lights 1 1 1

Able to use Colors
ex: !lights red
This commit is contained in:
Alex Orid 2021-04-07 17:24:37 -04:00
parent 8f60e00a6d
commit b519a50702
3 changed files with 28 additions and 15 deletions

View File

@ -11,7 +11,7 @@ class CommandRoll(AbstractCommand, metaclass=ABCMeta):
""" """
this is the roll command. this is the roll command.
""" """
command = "!rgb" command = "!lights"
def __init__(self): def __init__(self):
super().__init__(CommandRoll.command, n_args=3, command_type=AbstractCommand.CommandType.TWITCH) super().__init__(CommandRoll.command, n_args=3, command_type=AbstractCommand.CommandType.TWITCH)
@ -19,21 +19,25 @@ class CommandRoll(AbstractCommand, metaclass=ABCMeta):
def do_command(self, bot, twitch_message): def do_command(self, bot, twitch_message):
LightModule = lights_module.Lights_Module() LightModule = lights_module.Lights_Module()
LightModule.main() LightModule.main()
print("\nRGB Command Detected!")
tempParsedMessage = twitch_message.text.split(" ") tempParsedMessage = twitch_message.text.split(" ")
print("\nParsed Command! ", twitch_message.text)
run_lightsCommand = False if (len(tempParsedMessage)) > 2:
if (utilities.does_contain_OnlyNumbers(tempParsedMessage[1]) & print("\nRGB Command!")
utilities.does_contain_OnlyNumbers(tempParsedMessage[2]) &
utilities.does_contain_OnlyNumbers(tempParsedMessage[3])) == True:
rgb_r = float(tempParsedMessage[1]) rgb_r = float(tempParsedMessage[1])
rgb_g = float(tempParsedMessage[2]) rgb_g = float(tempParsedMessage[2])
rgb_b = float(tempParsedMessage[3]) rgb_b = float(tempParsedMessage[3])
xy_result = LightModule.rgb_to_xy(rgb_r, rgb_g, rgb_b) xy_result = LightModule.rgb_to_xy(rgb_r, rgb_g, rgb_b)
print("got XY")
LightModule.bridge_.set_group(16, "xy", xy_result) LightModule.bridge_.set_group(16, "xy", xy_result)
print("sent color")
else: else:
print("\nColor Command!")
xy_result = LightModule.color_string_parser(tempParsedMessage) xy_result = LightModule.color_string_parser(tempParsedMessage)
print("got XY")
LightModule.bridge_.set_group(16, "xy", xy_result) LightModule.bridge_.set_group(16, "xy", xy_result)
print("sent color")
returnMessage = "@" + twitch_message.sender + " changed the colors!" returnMessage = "@" + twitch_message.sender + " changed the colors!"
bot.send_message(returnMessage) bot.send_message(returnMessage)

View File

@ -106,13 +106,18 @@ class Lights_Module():
return [x, y] return [x, y]
def color_string_parser(self, message): def color_string_parser(self, message):
xy_color = 0 print("trying to find color")
xy_color = [0, 0]
for text in message: for text in message:
if "red" in message.lower(): print("testing word")
if "red" in text.lower():
xy_color = self.rgb_to_xy(1,0,0) xy_color = self.rgb_to_xy(1,0,0)
if "blue" in message.lower(): print("found: red")
if "blue" in text.lower():
print("found: blue")
xy_color = self.rgb_to_xy(0,0,1) xy_color = self.rgb_to_xy(0,0,1)
if "green" in message.lower(): if "green" in text.lower():
print("found: green")
xy_color = self.rgb_to_xy(0,1,0) xy_color = self.rgb_to_xy(0,1,0)
return xy_color return xy_color

View File

@ -21,14 +21,18 @@ def get_args(text: str) -> list:
return text.split(" ") return text.split(" ")
def does_contain_OnlyNumbers(self, text): def does_contain_OnlyNumbers(self, text):
isJustNumbers = False isJustNumbers = False
print("checking numbers")
try:
for x in range(10): for x in range(10):
if str(x) in text: if str(x) in str(text):
isJustNumbers = True isJustNumbers = True
else: else:
isJustNumbers = False isJustNumbers = False
except:
pass
return isJustNumbers return isJustNumbers
def contains_slur(self, input: str): def contains_slur(self, input: str):
containsSlur: bool = False containsSlur: bool = False