added key_duration, to differentiate from key_delay

This commit is contained in:
liyunze 2024-05-08 21:13:43 +08:00
parent 01881f9c53
commit 3d107add87
2 changed files with 12 additions and 5 deletions

View file

@ -9,8 +9,11 @@ import win32con # Windows only
class TwitchPlaysX: class TwitchPlaysX:
def __init__(self, key_delay, keymap, channel_name, x_limit, kill_commands) -> None: def __init__(
self, key_duration, key_delay, keymap, channel_name, x_limit, kill_commands
) -> None:
self.os = self.get_os() self.os = self.get_os()
self.key_duration = key_duration
self.key_delay = key_delay self.key_delay = key_delay
self.keymap = keymap self.keymap = keymap
self.channel_name = channel_name.lower() self.channel_name = channel_name.lower()
@ -19,13 +22,16 @@ class TwitchPlaysX:
# not tested # not tested
def sendKeyLinux(self, button): def sendKeyLinux(self, button):
subprocess.run(["xdotool", "key", button]) subprocess.run(["xdotool", "keydown", button])
time.sleep(self.key_duration)
subprocess.run(["xdotool", "keyup", button])
time.sleep(self.key_delay) time.sleep(self.key_delay)
def sendKeyWindows(self, button): def sendKeyWindows(self, button):
win32api.keybd_event(self.keymap[button], 0, 0, 0) win32api.keybd_event(self.keymap[button], 0, 0, 0)
time.sleep(self.key_delay) time.sleep(self.key_duration)
win32api.keybd_event(self.keymap[button], 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(self.keymap[button], 0, win32con.KEYEVENTF_KEYUP, 0)
time.sleep(self.key_delay)
def get_os(self): def get_os(self):
os_name = platform.system() os_name = platform.system()

View file

@ -5,7 +5,8 @@ import asyncio
# SETTINGS # SETTINGS
CHANNEL_NAME = "CHANNEL_NAME" # Twitch channel name CHANNEL_NAME = "CHANNEL_NAME" # Twitch channel name
KEYDELAY = 0.3 KEY_DURATION = 0.5
KEY_DELAY = 0.1
X_LIMIT = 10 # "up20" will be converted to "up10" if X_LIMIT is 10 X_LIMIT = 10 # "up20" will be converted to "up10" if X_LIMIT is 10
KILL_SWITCH_COMMANDS = ["!killpokemon"] # must be all lowercase KILL_SWITCH_COMMANDS = ["!killpokemon"] # must be all lowercase
@ -48,7 +49,7 @@ async def main():
keymap = windowsKeyMap if os_type == "Windows" else linuxKeyMap keymap = windowsKeyMap if os_type == "Windows" else linuxKeyMap
twitchPlaysX = TwitchPlaysX( twitchPlaysX = TwitchPlaysX(
KEYDELAY, keymap, CHANNEL_NAME, X_LIMIT, KILL_SWITCH_COMMANDS KEY_DURATION, KEY_DELAY, keymap, CHANNEL_NAME, X_LIMIT, KILL_SWITCH_COMMANDS
) )
print(f"Starting TwitchPlaysX for channel: {CHANNEL_NAME}") print(f"Starting TwitchPlaysX for channel: {CHANNEL_NAME}")