mirror of
https://github.com/onyx-and-iris/obsws-python.git
synced 2024-11-22 12:50:53 +00:00
add attrs to dataclasses
This commit is contained in:
parent
00a97b1d8b
commit
ce9bc7e8d6
@ -21,7 +21,7 @@ class Callback:
|
|||||||
|
|
||||||
for fn in self._callbacks:
|
for fn in self._callbacks:
|
||||||
if fn.__name__ == f"on_{to_snake_case(event)}":
|
if fn.__name__ == f"on_{to_snake_case(event)}":
|
||||||
fn(as_dataclass(event, data.get("eventData")))
|
fn(as_dataclass(event, data))
|
||||||
|
|
||||||
def register(self, fns: Union[Iterable, Callable]):
|
def register(self, fns: Union[Iterable, Callable]):
|
||||||
"""registers callback functions"""
|
"""registers callback functions"""
|
||||||
|
@ -57,7 +57,10 @@ class EventClient(object):
|
|||||||
self.running = True
|
self.running = True
|
||||||
while self.running:
|
while self.running:
|
||||||
self.data = json.loads(self.base_client.ws.recv())
|
self.data = json.loads(self.base_client.ws.recv())
|
||||||
event, data = (self.data["d"].get("eventType"), self.data["d"])
|
event, data = (
|
||||||
|
self.data["d"].get("eventType"),
|
||||||
|
self.data["d"].get("eventData"),
|
||||||
|
)
|
||||||
self.callback.trigger(event, data)
|
self.callback.trigger(event, data)
|
||||||
time.sleep(self.DELAY)
|
time.sleep(self.DELAY)
|
||||||
|
|
||||||
|
@ -11,10 +11,16 @@ def to_snake_case(s):
|
|||||||
|
|
||||||
|
|
||||||
def as_dataclass(identifier, data):
|
def as_dataclass(identifier, data):
|
||||||
|
def attrs():
|
||||||
|
return list(data.keys())
|
||||||
|
|
||||||
return dataclass(
|
return dataclass(
|
||||||
type(
|
type(
|
||||||
f"{identifier}Dataclass",
|
f"{identifier}Dataclass",
|
||||||
(),
|
(),
|
||||||
{**{to_snake_case(k): v for k, v in data.items()}},
|
{
|
||||||
|
"attrs": attrs,
|
||||||
|
**{to_snake_case(k): v for k, v in data.items()},
|
||||||
|
},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user