mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-08 04:52:30 +00:00
Fixed revert by hand (I hope)
This commit is contained in:
@@ -62,7 +62,6 @@ class TLGenerator:
|
||||
with SourceBuilder(file) as builder:
|
||||
# Both types and functions inherit from MTProtoRequest so they all can be sent
|
||||
builder.writeln('from telethon.tl.mtproto_request import MTProtoRequest')
|
||||
builder.writeln('import json')
|
||||
builder.writeln()
|
||||
builder.writeln()
|
||||
builder.writeln('class {}(MTProtoRequest):'.format(TLGenerator.get_class_name(tlobject)))
|
||||
@@ -133,17 +132,6 @@ class TLGenerator:
|
||||
TLGenerator.write_onsend_code(builder, arg, tlobject.args)
|
||||
builder.end_block()
|
||||
|
||||
# Generate the empty() function, which returns an "empty"
|
||||
# instance, in which all attributes are set to None
|
||||
builder.writeln('@staticmethod')
|
||||
builder.writeln('def empty():')
|
||||
builder.writeln('"""Returns an "empty" instance (all attributes are None)"""')
|
||||
builder.writeln('return {}({})'.format(
|
||||
TLGenerator.get_class_name(tlobject),
|
||||
', '.join('None' for _ in range(len(args)))
|
||||
))
|
||||
builder.end_block()
|
||||
|
||||
# Write the on_response(self, reader) function
|
||||
builder.writeln('def on_response(self, reader):')
|
||||
# Do not read constructor's ID, since that's already been read somewhere else
|
||||
@@ -165,47 +153,6 @@ class TLGenerator:
|
||||
|
||||
builder.writeln('def __str__(self):')
|
||||
builder.writeln("return {}".format(str(tlobject)))
|
||||
builder.end_block()
|
||||
|
||||
# Write JSON encoding
|
||||
builder.writeln('def json_encode(self):')
|
||||
builder.writeln('return json.dumps({')
|
||||
builder.current_indent += 1
|
||||
|
||||
for arg in args:
|
||||
if TLGenerator.is_tlobject(arg.type):
|
||||
if arg.is_vector:
|
||||
builder.writeln("'{0}': [{0}_item.json_encode() "
|
||||
"for {0}_item in self.{0}],".format(arg.name))
|
||||
else:
|
||||
builder.writeln("'{0}': self.{0}.json_encode(),".format(arg.name))
|
||||
else:
|
||||
builder.writeln("'{0}': self.{0},".format(arg.name))
|
||||
|
||||
builder.current_indent -= 1
|
||||
builder.writeln('})')
|
||||
builder.end_block()
|
||||
|
||||
# Write JSON decoding
|
||||
builder.writeln('@staticmethod')
|
||||
builder.writeln('def json_decode(json_string):')
|
||||
builder.writeln('# Create an empty instance which will be filled with the JSON values')
|
||||
builder.writeln('instance = {}.empty()'.format(TLGenerator.get_class_name(tlobject)))
|
||||
builder.writeln('dictionary = json.loads(json_string)')
|
||||
builder.writeln()
|
||||
for arg in args:
|
||||
if TLGenerator.is_tlobject(arg.type):
|
||||
if arg.is_vector:
|
||||
builder.writeln("instance.{0} = [{0}_item.json_decode() "
|
||||
"for {0}_item in dictionary['{0}']]".format(arg.name))
|
||||
else:
|
||||
builder.writeln("instance.{0} = dictionary['{0}'].json_decode() if '{0}' in dictionary "
|
||||
"and dictionary['{0}'] is not None else None".format(arg.name))
|
||||
else:
|
||||
builder.writeln("instance.{0} = dictionary.get('{0}', None)".format(arg.name))
|
||||
|
||||
builder.writeln()
|
||||
builder.writeln('return instance')
|
||||
# builder.end_block() # There is no need to end the last block
|
||||
|
||||
# Once all the objects have been generated, we can now group them in a single file
|
||||
@@ -276,12 +223,6 @@ class TLGenerator:
|
||||
else:
|
||||
return result
|
||||
|
||||
@staticmethod
|
||||
def is_tlobject(type):
|
||||
"""Determines whether the type is a "basic" type or another TLObject"""
|
||||
return type not in ['int', 'long', 'int128', 'int256', 'double',
|
||||
'string', 'Bool', 'true', 'bytes', 'date']
|
||||
|
||||
@staticmethod
|
||||
def write_onsend_code(builder, arg, args, name=None):
|
||||
"""
|
||||
|
Reference in New Issue
Block a user