update
This commit is contained in:
69
TwitchChannelPointsMiner/classes/entities/Message.py
Normal file
69
TwitchChannelPointsMiner/classes/entities/Message.py
Normal file
@ -0,0 +1,69 @@
|
||||
import json
|
||||
|
||||
from TwitchChannelPointsMiner.utils import server_time
|
||||
|
||||
|
||||
class Message(object):
|
||||
__slots__ = [
|
||||
"topic",
|
||||
"topic_user",
|
||||
"message",
|
||||
"type",
|
||||
"data",
|
||||
"timestamp",
|
||||
"channel_id",
|
||||
"identifier",
|
||||
]
|
||||
|
||||
def __init__(self, data):
|
||||
self.topic, self.topic_user = data["topic"].split(".")
|
||||
|
||||
self.message = json.loads(data["message"])
|
||||
self.type = self.message["type"]
|
||||
|
||||
self.data = self.message["data"] if "data" in self.message else None
|
||||
|
||||
self.timestamp = self.__get_timestamp()
|
||||
self.channel_id = self.__get_channel_id()
|
||||
|
||||
self.identifier = f"{self.type}.{self.topic}.{self.channel_id}"
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.message}"
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.message}"
|
||||
|
||||
def __get_timestamp(self):
|
||||
return (
|
||||
server_time(self.message)
|
||||
if self.data is None
|
||||
else (
|
||||
self.data["timestamp"]
|
||||
if "timestamp" in self.data
|
||||
else server_time(self.data)
|
||||
)
|
||||
)
|
||||
|
||||
def __get_channel_id(self):
|
||||
return (
|
||||
self.topic_user
|
||||
if self.data is None
|
||||
else (
|
||||
self.data["prediction"]["channel_id"]
|
||||
if "prediction" in self.data
|
||||
else (
|
||||
self.data["claim"]["channel_id"]
|
||||
if "claim" in self.data
|
||||
else (
|
||||
self.data["channel_id"]
|
||||
if "channel_id" in self.data
|
||||
else (
|
||||
self.data["balance"]["channel_id"]
|
||||
if "balance" in self.data
|
||||
else self.topic_user
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user