__main__.py 673 B

1234567891011121314151617
  1. # -*- coding: utf-8 -*-
  2. import keyboard
  3. import fileinput
  4. import json
  5. import sys
  6. def print_event_json(event):
  7. # Could use json.dumps(event.__dict__()), but this way we guarantee semantic order.
  8. if event.name:
  9. print('{{"event_type": "{}", "name": "{}", "scan_code": {}, "time": {}}}'.format(event.event_type, event.name, event.scan_code, event.time))
  10. else:
  11. print('{{"event_type": "{}", "scan_code": {}, "time": {}}}'.format(event.event_type, event.scan_code, event.time))
  12. sys.stdout.flush()
  13. keyboard.hook(print_event_json)
  14. parse_event_json = lambda line: keyboard.KeyboardEvent(**json.loads(line))
  15. keyboard.play(parse_event_json(line) for line in fileinput.input())