нажатие на тип события из сокет соединения в Python - PullRequest
0 голосов
/ 22 марта 2019

Прежде всего, я совершенно новичок в программировании.Мой последний опыт программирования был в школе с Turbo Pascal, 15 лет назад :) Я до сих пор искал свой код в интернете и получил некоторые идеи из подобного javascript.

Я хочу нажать клавишу, если определенное событиеТип исходит из сокетного соединения.код для подключения к серверу уже работает, но я не могу отфильтровать типы, поступающие из сокета.

Вот мой код для подключения:

# Imports #
import socketio

# Vars #
sio = socketio.Client()

# Your Socket API Token from streamlabs /settings/api-settings #
token = ''

# Connection #
sio.connect('https://sockets.streamlabs.com?token=' + token)

# Code #
@sio.on("connect")
def on_connect():
    print("Connected to Streamlabs, Wait for Events")

@sio.on("event")
def on_message(data):
    print((data))

@sio.on("disconnect")
def on_disconnect():
    print("Disconnected.....")

Теперь, если я имитирую событие отслеживания на сервере, я получаю этот вывод:

{'type': 'follow', 'message': [{'name': 'KayPure', 'isTest': True, '_id': 
'31a0f9db75b6f815c0e25cc6f14d015a'}], 'for': 'twitch_account', 'event_id': 
'evt_db9fc4f099a6bd83aa9779d43fccf4a9'}

илисобытие подписки:

{'type': 'subscription', 'message': [{'name': 'KayPure', 'isTest': True, 
'months': 1, 'message': 'This is a test', 'emotes': None, 'sub_plan': 
'1000', '_id': '725cb1e1cbdbb31d4122ccf266d4a7bf'}], 'for': 
'twitch_account', 'event_id': 'evt_6ad1f8d2f38e5410eaaed3cbf40843b5'}

Я хочу вывести только тип и название событий.мне не нужна остальная информация о событии.затем я хочу смоделировать, например, нажатие клавиши «a» при подписке, нажатие клавиши «b» при подписке.

фон: нажатие клавиши запускает сцену в программном обеспечении молнии.это программное обеспечение работает на той же машине, что и скрипт, но оно не на переднем плане. Так что это другой вопрос.как нажать клавишу в определенном окне, которое находится в фоновом режиме или свернуто.

Я получил javascript, похожий на этот, и это уже работает.но программное обеспечение должно быть на переднем плане.Так как в будущем я хотел больше писать на python, мне бы очень хотелось, чтобы это работало на python.

есть идеи?Я много пытался вывести только тип события, но я не знаю, куда поместить код.

привет из Германии

k

1 Ответ

0 голосов
/ 22 марта 2019

Надеюсь, я вас правильно понял. Чтобы ограничить вывод, вам нужно получить соответствующие значения для ключей type и name в вашем словаре data:

@sio.on("event")
def on_message(data):
    print(data.get('type'), data.get('message')[0].get('name'))

data - это словарь. С помощью get вы получаете доступ к значению соответствующего ключа. Однако, чтобы получить name, вам сначала нужно получить значение message, которое является списком. Первый и единственный элемент списка - это другой словарь. Итак, вы получаете доступ к первому элементу [0] списка, а затем снова get к соответствующему значению ключа словаря.

Для имитации нажатия клавиш вы можете использовать модуль PyAutoGUI . Как это:

import pyautogui
pyautogui.typewrite('a')

Это должно помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...