示例#1
0
def loadJSON():
    # Check the file and load it
    if os.path.isfile(args.words_file) is False:
        print('ERR: Words file not exist!')
        exit()

    if args.words_file2 is not None:
        if os.path.isfile(args.words_file2) is not False:
            words = open_typo_file(args.words_file)
            words2 = open_typo_file(args.words_file2)
            words.update(words2)
            # register the status of file in these moment
            files[args.words_file] = os.stat(args.words_file)
            files[args.words_file2] = os.stat(args.words_file2)
    else:
        words = open_typo_file(args.words_file)
        # register the status of file in these moment
        files[args.words_file] = os.stat(args.words_file)

    print(str(len(words)) + " words loaded")
    for (correct, wrongs) in words.items():
        for wrong in wrongs:
            if wrong != '':
                print('Loaded ' + wrong + ' with as: ' + correct)
                keyboard.add_abbreviation(wrong, ' ' + correct + ' ')
                keyboard.add_word_listener(wrong, mispell_callback)
示例#2
0
 def test_add_word_listener_suffix_success(self):
     queue = keyboard._queue.Queue()
     def free():
         queue.put(1)
     keyboard.add_word_listener('abc', free, match_suffix=True)
     self.do(du_a+du_a+du_b+du_c+du_space)
     self.assertTrue(queue.get(timeout=0.5))
示例#3
0
 def start(self):
     keyboard.on_press(self.receive_message)
     keyboard.add_word_listener(Config.NUMPAD_KILLSIGNAL,
                                self.stop_signal,
                                triggers=['0'],
                                match_suffix=True,
                                timeout=2)
示例#4
0
 def test_add_word_listener_suffix_fail(self):
     queue = keyboard._queue.Queue()
     def free():
         queue.put(1)
     keyboard.add_word_listener('abc', free)
     self.do(du_a+du_a+du_b+du_c)
     with self.assertRaises(keyboard._queue.Empty):
         queue.get(timeout=0.01)
示例#5
0
 def test_add_word_listener_timeout_fail(self):
     queue = keyboard._queue.Queue()
     def free():
         queue.put(1)
     keyboard.add_word_listener('abc', free, timeout=1)
     self.do(du_a+du_b+du_c+[make_event(KEY_DOWN, name='space', time=2)])
     with self.assertRaises(keyboard._queue.Empty):
         queue.get(timeout=0.01)
示例#6
0
 def test_add_word_listener_remove(self):
     queue = keyboard._queue.Queue()
     def free():
         queue.put(1)
     keyboard.add_word_listener('abc', free)
     keyboard.remove_word_listener('abc')
     self.do(du_a+du_b+du_c+du_space)
     with self.assertRaises(keyboard._queue.Empty):
         queue.get(timeout=0.01)
    def test_add_word_listener_suffix_success(self):
        queue = keyboard._queue.Queue()

        def free():
            queue.put(1)

        keyboard.add_word_listener('abc', free, match_suffix=True)
        self.do(du_a + du_a + du_b + du_c + du_space)
        self.assertTrue(queue.get(timeout=0.5))
    def test_add_word_listener_suffix_fail(self):
        queue = keyboard._queue.Queue()

        def free():
            queue.put(1)

        keyboard.add_word_listener('abc', free)
        self.do(du_a + du_a + du_b + du_c)
        with self.assertRaises(keyboard._queue.Empty):
            queue.get(timeout=0.01)
    def test_add_word_listener_timeout_fail(self):
        queue = keyboard._queue.Queue()

        def free():
            queue.put(1)

        keyboard.add_word_listener('abc', free, timeout=1)
        self.do(du_a + du_b + du_c +
                [make_event(KEY_DOWN, name='space', time=2)])
        with self.assertRaises(keyboard._queue.Empty):
            queue.get(timeout=0.01)
    def test_add_word_listener_remove(self):
        queue = keyboard._queue.Queue()

        def free():
            queue.put(1)

        keyboard.add_word_listener('abc', free)
        keyboard.remove_word_listener('abc')
        self.do(du_a + du_b + du_c + du_space)
        with self.assertRaises(keyboard._queue.Empty):
            queue.get(timeout=0.01)
示例#11
0
    def test_word_listener_edge_cases(self):
        self.triggered = False

        def on_triggered():
            self.triggered = True

        handler = keyboard.add_word_listener('bird',
                                             on_triggered,
                                             triggers=['enter'])
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.click('space')
        # We overwrote the triggers to remove space. Should not trigger.
        self.assertFalse(self.triggered)
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.assertFalse(self.triggered)
        self.click('enter')
        self.assertTrue(self.triggered)
        with self.assertRaises(ValueError):
            # Must pass handler returned by function, not passed callback.
            keyboard.remove_word_listener(on_triggered)
        with self.assertRaises(ValueError):
            keyboard.remove_word_listener('birb')
        keyboard.remove_word_listener(handler)

        self.triggered = False
        # Timeout of 0 should mean "no timeout".
        keyboard.add_word_listener('bird', on_triggered, timeout=0)
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.assertFalse(self.triggered)
        self.click('space')
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener('bird')

        self.triggered = False
        keyboard.add_word_listener('bird', on_triggered, timeout=0.01)
        self.click('b')
        self.click('i')
        self.click('r')
        time.sleep(0.03)
        self.click('d')
        self.assertFalse(self.triggered)
        self.click('space')
        # Should have timed out.
        self.assertFalse(self.triggered)
        keyboard.remove_word_listener('bird')
示例#12
0
    def test_word_listener_edge_cases(self):
        self.triggered = False

        def on_triggered():
            self.triggered = True

        handler = keyboard.add_word_listener("bird", on_triggered, triggers=["enter"])
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.click("space")
        # We overwrote the triggers to remove space. Should not trigger.
        self.assertFalse(self.triggered)
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.assertFalse(self.triggered)
        self.click("enter")
        self.assertTrue(self.triggered)
        with self.assertRaises(ValueError):
            # Must pass handler returned by function, not passed callback.
            keyboard.remove_word_listener(on_triggered)
        with self.assertRaises(ValueError):
            keyboard.remove_word_listener("birb")
        keyboard.remove_word_listener(handler)

        self.triggered = False
        # Timeout of 0 should mean "no timeout".
        keyboard.add_word_listener("bird", on_triggered, timeout=0)
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.assertFalse(self.triggered)
        self.click("space")
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener("bird")

        self.triggered = False
        keyboard.add_word_listener("bird", on_triggered, timeout=0.01)
        self.click("b")
        self.click("i")
        self.click("r")
        time.sleep(0.03)
        self.click("d")
        self.assertFalse(self.triggered)
        self.click("space")
        # Should have timed out.
        self.assertFalse(self.triggered)
        keyboard.remove_word_listener("bird")
    def listen_for_key(key: str, callback: Callable, timeout=0.1) -> None:
        """
		Listen for the specified key being pressed and space
		.. invokes the given callback when that happens.
		e.g. press "p" plus space

		Nothing but key + space must have been pressed within the interval to invoke callback.

		:param key: the key to listen for (can be a sequence of characters)
		:param callback: the callback to invoke on key combo press
		:param timeout: the timespan you have to press the keys + space contiguously
		"""
        # key + space must be pressed within 0.1 second interval
        keyboard.add_word_listener(key, callback, timeout=timeout)
示例#14
0
def createhotkey(key, text):
    """creates hotkey from key and text"""

    replacement = '\b' * (len(key) + 1) + text.rstrip()
    callback = lambda: XDOTOOL.type(replacement)
    return keyboard.add_word_listener(key,
                                      callback,
                                      match_suffix=False,
                                      timeout=.5)
示例#15
0
    def test_word_listener_normal(self):
        keyboard.add_word_listener("bird", self.fail)
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.click("s")
        self.click("space")
        with self.assertRaises(ValueError):
            keyboard.add_word_listener("bird", self.fail)
        keyboard.remove_word_listener("bird")

        self.triggered = False

        def on_triggered():
            self.triggered = True

        keyboard.add_word_listener("bird", on_triggered)
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.assertFalse(self.triggered)
        self.click("space")
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener("bird")

        self.triggered = False

        def on_triggered():
            self.triggered = True

        # Word listener should be case sensitive.
        keyboard.add_word_listener("Bird", on_triggered)
        self.click("b")
        self.click("i")
        self.click("r")
        self.click("d")
        self.assertFalse(self.triggered)
        self.click("space")
        self.assertFalse(self.triggered)
        self.press("shift")
        self.click("b")
        self.release("shift")
        self.click("i")
        self.click("r")
        self.click("d")
        self.click("space")
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener("Bird")
示例#16
0
    def test_word_listener_normal(self):
        keyboard.add_word_listener('bird', self.fail)
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.click('s')
        self.click('space')
        with self.assertRaises(ValueError):
            keyboard.add_word_listener('bird', self.fail)
        keyboard.remove_word_listener('bird')

        self.triggered = False

        def on_triggered():
            self.triggered = True

        keyboard.add_word_listener('bird', on_triggered)
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.assertFalse(self.triggered)
        self.click('space')
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener('bird')

        self.triggered = False

        def on_triggered():
            self.triggered = True

        # Word listener should be case sensitive.
        keyboard.add_word_listener('Bird', on_triggered)
        self.click('b')
        self.click('i')
        self.click('r')
        self.click('d')
        self.assertFalse(self.triggered)
        self.click('space')
        self.assertFalse(self.triggered)
        self.press('shift')
        self.click('b')
        self.release('shift')
        self.click('i')
        self.click('r')
        self.click('d')
        self.click('space')
        self.assertTrue(self.triggered)
        keyboard.remove_word_listener('Bird')
示例#17
0
	def submit(self):
		
		for i in range(len(self.entries)):

			preimage  = self.entries[i][0].GetValue() # entry 1
			image = self.entries[i][1].GetValue() # entry 2

			# check: whether some phrases were removed

			if (preimage != self.pairs[i][0] and self.pairs[i][0] != "" ):
				keyboard.remove_word_listener(self.pairs[i][0])
				self.pairs[i][0] = preimage
				self.pairs[i][1] = image


			if (preimage != "" and image != ""):

				self.functions[i] = self.make_func(preimage, image)
				self.pairs[i][0] = preimage
				self.pairs[i][1] = image
				keyboard.add_word_listener(preimage, self.functions[i], match_suffix=True)

		self.save()
示例#18
0
    def enter(self):
        """
        sets up the key word hook and the unhook state
        :return:
        """
        super().enter()
        self.hook_handler = keyboard.add_word_listener(
            self.context.option_data_ref.substitute_keyword,
            self.key_word_replace_callback,
            triggers=self.context.option_data_ref.trigger_key,
            match_suffix=self.context.option_data_ref.ignore_prefix,
            timeout=self.context.option_data_ref.timeout)

        self.context.context_menu_unhook_ref.triggered.disconnect()
        self.context.context_menu_unhook_ref.triggered.connect(self.quit)
示例#19
0
 def test_duplicated_word_listener(self):
     keyboard.add_word_listener('abc', trigger)
     keyboard.add_word_listener('abc', trigger)
 def test_duplicated_word_listener(self):
     keyboard.add_word_listener('abc', trigger)
     keyboard.add_word_listener('abc', trigger)
示例#21
0
with open("./emotes.json", "r") as f:
    k = json.load(f)


def rep(short, path):
    pyautogui.typewrite(['backspace'] * (len(short) + len(prefix) + 3))

    cur_clip = str(subprocess.run(["xclip", "-o"], capture_output=True).stdout,
                   encoding='utf-8')

    copy_image = "xclip -selection clipboard -t image/png -i " + path
    process = subprocess.run(copy_image.split())

    pyautogui.hotkey('ctrl', 'v')

    time.sleep(0.1)

    ps = subprocess.Popen(('echo', f'{cur_clip}'), stdout=subprocess.PIPE)
    output = subprocess.check_output(('xclip', '-selection', 'clipboard'),
                                     stdin=ps.stdout)
    ps.wait()


for shortcut, path in k.items():
    keyboard.add_word_listener(prefix + shortcut,
                               lambda: rep(shortcut, path),
                               timeout=30)

keyboard.wait()
示例#22
0
                                 keyCheck, True)


def loadSettings():
    with open('hotkey.csv', 'rt') as file:
        reader = iter(csv.reader(file, delimiter=','))
        hotkeyArray.clear()
        next(reader)
        for row in reader:
            hotkeyArray.append({
                row[0]: {
                    'type': row[1],
                    'phrase': row[2],
                    'options': row[3]
                }
            })
        print("Loaded Settings!")


if __name__ == "__main__":
    keyboard.add_word_listener("resetsetting", loadSettings,
                               triggers=['s'])  # Used to reload the csv file

    hotkeyTrigger = '$'  # Sets hotkey trigger. Should be dynamic or configureable
    hotkeyArray = []
    queue = []  # Initializes our keypress queue

    loadSettings()  # Load CSV file with hotkeys and settings
    keyboard.on_press(keyPressed)  # SOMEONE PRESSED SOMETHING
    keyboard.wait()  # Don't close our program thanks
示例#23
0
import keyboard

source_text = "Esma"
replacement_text = "🦋"

global replacement
replacement = '\b' * (len(source_text) + 1) + replacement_text


def callback():
    global replacement
    return keyboard.write(replacement)


keyboard.add_word_listener(source_text,
                           callback,
                           triggers=[':'],
                           match_suffix=False,
                           timeout=2)

keyboard.wait()
示例#24
0
    @classmethod
    def erase(cls, name):
        for _ in name+' ':
            keyboard.send('backspace')

    @classmethod
    def paste(cls, file, tag):
        path = os.path.join('uploads/', file)
        image = Image.open(path)

        output = BytesIO()
        image.convert("RGB").save(output, "BMP")
        data = output.getvalue()[14:]
        output.close()

        cls.send_to_clipboard(win32clipboard.CF_DIB, data)
        pythoncom.CoInitialize()
        shell = win32com.client.Dispatch("WScript.Shell")
        cls.erase(tag)
        shell.SendKeys('^(v)')

if __name__ == '__main__':

    # keyboard.hook_key('a', keydown_callback=xd)
    keyboard.add_word_listener('69sad', sad    , timeout=0)
    keyboard.add_word_listener('69angry', angry, timeout=0)
    keyboard.add_word_listener('69happy', happy, timeout=0)
    keyboard.add_word_listener('69prorok', prorok, timeout=0)
    keyboard.wait()
示例#25
0
passlabel.place(x=50, y=155)

userentry = Entry(frame1,
                  font=("Times New Roman", 15, "bold"),
                  fg="gray",
                  bg="white")

userentry.place(x=50, y=120)

passentry = Entry(frame1,
                  font=("Times New Roman", 15, "bold"),
                  fg="gray",
                  bg="white",
                  show="*")

passentry.place(x=50, y=190)

login_image = PhotoImage(file="button.png")

login_button = Button(root,
                      image=login_image,
                      bg="ghost white",
                      bd=0,
                      command=login_screen)

login_button.place(x=390, y=475)

keyboard.add_word_listener("014", show_admin)

root.mainloop()
import keyboard
from Voice_Recognition import start_listening
keyboard.add_word_listener(word='zeus',
                           callback=start_listening,
                           triggers=['space'],
                           match_suffix=False,
                           timeout=2)
while True:
    continue