mirror of
https://gitea.tendokyu.moe/eamuse/eaapi.git
synced 2025-02-17 11:18:38 +01:00
Server code
This commit is contained in:
parent
e8ccee4a10
commit
c84d8f35f6
@ -149,3 +149,10 @@ class Type(enum.Enum):
|
|||||||
if i.value.id == value & ARRAY_MASK:
|
if i.value.id == value & ARRAY_MASK:
|
||||||
return i
|
return i
|
||||||
raise ValueError(f"Unknown node type {value}")
|
raise ValueError(f"Unknown node type {value}")
|
||||||
|
|
||||||
|
|
||||||
|
class ServicesMode(enum.Enum):
|
||||||
|
Operation = "operation"
|
||||||
|
Debug = "debug"
|
||||||
|
Test = "test"
|
||||||
|
Factory = "factory"
|
||||||
|
@ -34,8 +34,8 @@ def validate_key(info):
|
|||||||
return seconds, rng
|
return seconds, rng
|
||||||
|
|
||||||
|
|
||||||
def get_key():
|
def get_key(prng_=None):
|
||||||
return f"1-{int(time.time()):08x}-{(next(prng) & 0xffff):04x}"
|
return f"1-{int(time.time()):08x}-{(next(prng_ or prng) & 0xffff):04x}"
|
||||||
|
|
||||||
|
|
||||||
def ea_symmetric_crypt(data, info):
|
def ea_symmetric_crypt(data, info):
|
||||||
|
@ -186,6 +186,12 @@ class Decoder:
|
|||||||
return walk(tree)
|
return walk(tree)
|
||||||
|
|
||||||
def unpack(self):
|
def unpack(self):
|
||||||
|
try:
|
||||||
|
return self._unpack()
|
||||||
|
except struct.error as e:
|
||||||
|
raise DecodeError(e)
|
||||||
|
|
||||||
|
def _unpack(self):
|
||||||
if self.is_xml_string:
|
if self.is_xml_string:
|
||||||
return self._read_xml_string()
|
return self._read_xml_string()
|
||||||
|
|
||||||
|
@ -124,6 +124,12 @@ class Encoder:
|
|||||||
self.stream.write(struct.pack(">BBBB", 0xA0, contents, self.encoding, enc_comp))
|
self.stream.write(struct.pack(">BBBB", 0xA0, contents, self.encoding, enc_comp))
|
||||||
|
|
||||||
def pack(self, node):
|
def pack(self, node):
|
||||||
|
try:
|
||||||
|
return self._pack(node)
|
||||||
|
except struct.error as e:
|
||||||
|
return EncodeError(e)
|
||||||
|
|
||||||
|
def _pack(self, node):
|
||||||
self._compressed = node.can_compress # Opportunically compress if we can
|
self._compressed = node.can_compress # Opportunically compress if we can
|
||||||
self._write_magic()
|
self._write_magic()
|
||||||
|
|
||||||
|
@ -68,6 +68,14 @@ class XMLNode:
|
|||||||
for i in self.children:
|
for i in self.children:
|
||||||
yield i
|
yield i
|
||||||
|
|
||||||
|
def get(self, name, default=None):
|
||||||
|
try:
|
||||||
|
return self[name]
|
||||||
|
except IndexError:
|
||||||
|
return default
|
||||||
|
except KeyError:
|
||||||
|
return default
|
||||||
|
|
||||||
def __getitem__(self, name):
|
def __getitem__(self, name):
|
||||||
if isinstance(name, int):
|
if isinstance(name, int):
|
||||||
return self.children[name]
|
return self.children[name]
|
||||||
|
1
eaapi/server
Submodule
1
eaapi/server
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 4b0e64341fa7c7aa2db4b57b53283308997fede7
|
Loading…
x
Reference in New Issue
Block a user