mirror of
https://github.com/python-telegram-bot/python-telegram-bot.git
synced 2025-03-29 09:40:31 +01:00
Add to_json method to classes
This commit is contained in:
parent
73cbd11307
commit
b90b608fb1
16 changed files with 240 additions and 8 deletions
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Audio(object):
|
class Audio(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
file_id,
|
file_id,
|
||||||
|
@ -18,3 +21,15 @@ class Audio(object):
|
||||||
duration=data.get('duration', None),
|
duration=data.get('duration', None),
|
||||||
mime_type=data.get('mime_type', None),
|
mime_type=data.get('mime_type', None),
|
||||||
file_size=data.get('file_size', None))
|
file_size=data.get('file_size', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'file_id': self.file_id,
|
||||||
|
'duration': self.duration}
|
||||||
|
if self.mime_type:
|
||||||
|
json_data['mime_type'] = self.mime_type
|
||||||
|
if self.file_size:
|
||||||
|
json_data['file_size'] = self.file_size
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -197,7 +197,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
@ -243,7 +246,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
@ -286,7 +292,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
@ -329,7 +338,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
@ -373,7 +385,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
@ -418,7 +433,10 @@ class Bot(object):
|
||||||
if reply_to_message_id:
|
if reply_to_message_id:
|
||||||
data['reply_to_message_id'] = reply_to_message_id
|
data['reply_to_message_id'] = reply_to_message_id
|
||||||
if reply_markup:
|
if reply_markup:
|
||||||
data['reply_markup'] = reply_markup
|
if isinstance(reply_markup, ReplyMarkup):
|
||||||
|
data['reply_markup'] = reply_markup.to_json()
|
||||||
|
else:
|
||||||
|
data['reply_markup'] = reply_markup
|
||||||
|
|
||||||
json_data = self._requestUrl(url, 'POST', data=data)
|
json_data = self._requestUrl(url, 'POST', data=data)
|
||||||
data = self._parseAndCheckTelegram(json_data.content)
|
data = self._parseAndCheckTelegram(json_data.content)
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Contact(object):
|
class Contact(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
phone_number,
|
phone_number,
|
||||||
|
@ -18,3 +21,15 @@ class Contact(object):
|
||||||
first_name=data.get('first_name', None),
|
first_name=data.get('first_name', None),
|
||||||
last_name=data.get('last_name', None),
|
last_name=data.get('last_name', None),
|
||||||
user_id=data.get('user_id', None))
|
user_id=data.get('user_id', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'phone_number': self.phone_number,
|
||||||
|
'first_name': self.first_name}
|
||||||
|
if self.last_name:
|
||||||
|
json_data['last_name'] = self.last_name
|
||||||
|
if self.user_id:
|
||||||
|
json_data['user_id'] = self.user_id
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Document(object):
|
class Document(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
file_id,
|
file_id,
|
||||||
|
@ -27,3 +30,17 @@ class Document(object):
|
||||||
file_name=data.get('file_name', None),
|
file_name=data.get('file_name', None),
|
||||||
mime_type=data.get('mime_type', None),
|
mime_type=data.get('mime_type', None),
|
||||||
file_size=data.get('file_size', None))
|
file_size=data.get('file_size', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'file_id': self.file_id,
|
||||||
|
'thumb': self.thumb.to_json()}
|
||||||
|
if self.file_name:
|
||||||
|
json_data['file_name'] = self.file_name
|
||||||
|
if self.mime_type:
|
||||||
|
json_data['mime_type'] = self.mime_type
|
||||||
|
if self.file_size:
|
||||||
|
json_data['file_size'] = self.file_size
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -22,3 +22,6 @@ class ForceReply(ReplyMarkup):
|
||||||
if self.selective:
|
if self.selective:
|
||||||
json_data['selective'] = self.selective
|
json_data['selective'] = self.selective
|
||||||
return json.dumps(json_data)
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class GroupChat(object):
|
class GroupChat(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
id,
|
id,
|
||||||
|
@ -12,3 +15,11 @@ class GroupChat(object):
|
||||||
def de_json(data):
|
def de_json(data):
|
||||||
return GroupChat(id=data.get('id', None),
|
return GroupChat(id=data.get('id', None),
|
||||||
title=data.get('title', None))
|
title=data.get('title', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'id': self.id,
|
||||||
|
'title': self.title}
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Location(object):
|
class Location(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
longitude,
|
longitude,
|
||||||
|
@ -12,3 +15,11 @@ class Location(object):
|
||||||
def de_json(data):
|
def de_json(data):
|
||||||
return Location(longitude=data.get('longitude', None),
|
return Location(longitude=data.get('longitude', None),
|
||||||
latitude=data.get('latitude', None))
|
latitude=data.get('latitude', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'longitude': self.longitude,
|
||||||
|
'latitude': self.latitude}
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Message(object):
|
class Message(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
message_id,
|
message_id,
|
||||||
|
@ -52,7 +55,7 @@ class Message(object):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def de_json(data):
|
def de_json(data):
|
||||||
if 'from' in data: # from is a reserved word, use user_from instead.
|
if 'from' in data: # from is a reserved word, use from_user instead.
|
||||||
from telegram import User
|
from telegram import User
|
||||||
from_user = User.de_json(data['from'])
|
from_user = User.de_json(data['from'])
|
||||||
else:
|
else:
|
||||||
|
@ -154,3 +157,47 @@ class Message(object):
|
||||||
new_chat_photo=data.get('new_chat_photo', None),
|
new_chat_photo=data.get('new_chat_photo', None),
|
||||||
delete_chat_photo=data.get('delete_chat_photo', None),
|
delete_chat_photo=data.get('delete_chat_photo', None),
|
||||||
group_chat_created=data.get('group_chat_created', None))
|
group_chat_created=data.get('group_chat_created', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'message_id': self.message_id,
|
||||||
|
'from': self.from_user.to_json(),
|
||||||
|
'date': self.date,
|
||||||
|
'chat': self.chat.to_json()}
|
||||||
|
if self.forward_from:
|
||||||
|
json_data['forward_from'] = self.forward_from
|
||||||
|
if self.forward_date:
|
||||||
|
json_data['forward_date'] = self.forward_date
|
||||||
|
if self.reply_to_message:
|
||||||
|
json_data['reply_to_message'] = self.reply_to_message
|
||||||
|
if self.text:
|
||||||
|
json_data['text'] = self.text
|
||||||
|
if self.audio:
|
||||||
|
json_data['audio'] = self.audio.to_json()
|
||||||
|
if self.document:
|
||||||
|
json_data['document'] = self.document.to_json()
|
||||||
|
if self.photo:
|
||||||
|
json_data['photo'] = self.photo.to_json()
|
||||||
|
if self.sticker:
|
||||||
|
json_data['sticker'] = self.sticker.to_json()
|
||||||
|
if self.video:
|
||||||
|
json_data['video'] = self.video.to_json()
|
||||||
|
if self.contact:
|
||||||
|
json_data['contact'] = self.contact.to_json()
|
||||||
|
if self.location:
|
||||||
|
json_data['location'] = self.location.to_json()
|
||||||
|
if self.new_chat_participant:
|
||||||
|
json_data['new_chat_participant'] = self.new_chat_participant
|
||||||
|
if self.left_chat_participant:
|
||||||
|
json_data['left_chat_participant'] = self.left_chat_participant
|
||||||
|
if self.new_chat_title:
|
||||||
|
json_data['new_chat_title'] = self.new_chat_title
|
||||||
|
if self.new_chat_photo:
|
||||||
|
json_data['new_chat_photo'] = self.new_chat_photo
|
||||||
|
if self.delete_chat_photo:
|
||||||
|
json_data['delete_chat_photo'] = self.delete_chat_photo
|
||||||
|
if self.group_chat_created:
|
||||||
|
json_data['group_chat_created'] = self.group_chat_created
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class PhotoSize(object):
|
class PhotoSize(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
file_id,
|
file_id,
|
||||||
|
@ -18,3 +21,14 @@ class PhotoSize(object):
|
||||||
width=data.get('width', None),
|
width=data.get('width', None),
|
||||||
height=data.get('height', None),
|
height=data.get('height', None),
|
||||||
file_size=data.get('file_size', None))
|
file_size=data.get('file_size', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'file_id': self.file_id,
|
||||||
|
'width': self.width,
|
||||||
|
'height': self.height}
|
||||||
|
if self.file_size:
|
||||||
|
json_data['file_size'] = self.file_size
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -4,3 +4,6 @@
|
||||||
class ReplyMarkup(object):
|
class ReplyMarkup(object):
|
||||||
def to_json(self):
|
def to_json(self):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Sticker(object):
|
class Sticker(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
file_id,
|
file_id,
|
||||||
|
@ -27,3 +30,15 @@ class Sticker(object):
|
||||||
height=data.get('height', None),
|
height=data.get('height', None),
|
||||||
thumb=thumb,
|
thumb=thumb,
|
||||||
file_size=data.get('file_size', None))
|
file_size=data.get('file_size', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'file_id': self.file_id,
|
||||||
|
'width': self.width,
|
||||||
|
'height': self.height,
|
||||||
|
'thumb': self.thumb.to_json()}
|
||||||
|
if self.file_size:
|
||||||
|
json_data['file_size'] = self.file_size
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Update(object):
|
class Update(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
update_id,
|
update_id,
|
||||||
|
@ -18,3 +21,12 @@ class Update(object):
|
||||||
|
|
||||||
return Update(update_id=data.get('update_id', None),
|
return Update(update_id=data.get('update_id', None),
|
||||||
message=message)
|
message=message)
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'update_id': self.update_id}
|
||||||
|
if self.message:
|
||||||
|
json_data['message'] = self.message.to_json()
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class User(object):
|
class User(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
id,
|
id,
|
||||||
|
@ -18,3 +21,15 @@ class User(object):
|
||||||
first_name=data.get('first_name', None),
|
first_name=data.get('first_name', None),
|
||||||
last_name=data.get('last_name', None),
|
last_name=data.get('last_name', None),
|
||||||
username=data.get('username', None))
|
username=data.get('username', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'id': self.id,
|
||||||
|
'first_name': self.first_name}
|
||||||
|
if self.last_name:
|
||||||
|
json_data['last_name'] = self.last_name
|
||||||
|
if self.username:
|
||||||
|
json_data['username'] = self.username
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class UserProfilePhotos(object):
|
class UserProfilePhotos(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
total_count,
|
total_count,
|
||||||
|
@ -20,3 +23,16 @@ class UserProfilePhotos(object):
|
||||||
|
|
||||||
return UserProfilePhotos(total_count=data.get('total_count', None),
|
return UserProfilePhotos(total_count=data.get('total_count', None),
|
||||||
photos=photos)
|
photos=photos)
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {}
|
||||||
|
if self.total_count:
|
||||||
|
json_data['total_count'] = self.total_count
|
||||||
|
if self.photos:
|
||||||
|
json_data['photos'] = []
|
||||||
|
for photo in self.photos:
|
||||||
|
json_data['photos'].append([x.to_json() for x in photo])
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
class Video(object):
|
class Video(object):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
file_id,
|
file_id,
|
||||||
|
@ -36,3 +39,20 @@ class Video(object):
|
||||||
mime_type=data.get('mime_type', None),
|
mime_type=data.get('mime_type', None),
|
||||||
file_size=data.get('file_size', None),
|
file_size=data.get('file_size', None),
|
||||||
caption=data.get('caption', None))
|
caption=data.get('caption', None))
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
json_data = {'file_id': self.file_id,
|
||||||
|
'width': self.width,
|
||||||
|
'height': self.height,
|
||||||
|
'duration': self.duration,
|
||||||
|
'thumb': self.thumb.to_json()}
|
||||||
|
if self.mime_type:
|
||||||
|
json_data['mime_type'] = self.mime_type
|
||||||
|
if self.file_size:
|
||||||
|
json_data['file_size'] = self.file_size
|
||||||
|
if self.caption:
|
||||||
|
json_data['caption'] = self.caption
|
||||||
|
return json.dumps(json_data)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_json()
|
||||||
|
|
|
@ -33,7 +33,7 @@ class BotTest(unittest.TestCase):
|
||||||
'''Test the telegram.Bot getUpdates method'''
|
'''Test the telegram.Bot getUpdates method'''
|
||||||
print 'Testing getUpdates'
|
print 'Testing getUpdates'
|
||||||
updates = self._bot.getUpdates()
|
updates = self._bot.getUpdates()
|
||||||
self.assertEqual(129566524, updates[0].update_id)
|
self.assertEqual(129566562, updates[0].update_id)
|
||||||
|
|
||||||
def testForwardMessage(self):
|
def testForwardMessage(self):
|
||||||
'''Test the telegram.Bot forwardMessage method'''
|
'''Test the telegram.Bot forwardMessage method'''
|
||||||
|
|
Loading…
Add table
Reference in a new issue