From 17cf53a2f075a2c454d1871d9bcc75ac194ee4f4 Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 06:58:48 +0300 Subject: [PATCH 1/8] Update --- telegram/update.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/telegram/update.py b/telegram/update.py index ab6af5e..c751f28 100644 --- a/telegram/update.py +++ b/telegram/update.py @@ -1,21 +1,35 @@ class Update: def __init__(self, update) -> None: - pass + self.base_update = update - def fromDict(self)->dict: ''' Convert User object to dictionary Returns: dict: dictionary of user data ''' - pass + data = self.base_update[-1]['message']['from'] + id = data['id'] + first_name = data.get('first_name') + last_name = data.get('last_name') + username = data.get('username') + dicData = { + 'id':id, + 'first_name':first_name, + 'last_name':last_name, + 'username':username + } + return dicData + + #Override the __str__ method to print the user data def __str__(self): ''' Print the user data ''' - pass - \ No newline at end of file + data = self.fromDict() + first_name = data['first_name'] + username = data['username'] + return f'First_name:{first_name},\nUsername:{username.title()}' \ No newline at end of file From 68549867cfc08f3d6d647a1f60b03ef4b4182d25 Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 07:05:49 +0300 Subject: [PATCH 2/8] __str__ --- telegram/user.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/telegram/user.py b/telegram/user.py index a607dfd..1d6a1c3 100644 --- a/telegram/user.py +++ b/telegram/user.py @@ -43,6 +43,7 @@ def __str__(self): ''' Print the user data ''' - pass - - \ No newline at end of file + data = self.fromDict() + last_name = data['last_name'] + username = data['username'] + return f'Last_name:{last_name},\nUsername{username}' \ No newline at end of file From bd558c20302eef1a718fe08c4ddde9ae848dff9c Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 07:33:30 +0300 Subject: [PATCH 3/8] Message --- telegram/message.py | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/telegram/message.py b/telegram/message.py index b70dc57..1c62069 100644 --- a/telegram/message.py +++ b/telegram/message.py @@ -1,7 +1,7 @@ class Message: def __init__(self, message) -> None: - pass + self.base_message = message def fromDict(self)->dict: ''' @@ -9,12 +9,39 @@ def fromDict(self)->dict: Returns: dict: dictionary of user data ''' - pass + if len(self.base_message) > 0: + data_messag = self.base_message[-1]['message']['from'] + data = { + 'id':data_messag.get('id'), + 'last_name':data_messag.get('last_name'), + 'first_name':data_messag.get('first_name'), + 'username':data_messag.get('username'), + 'is_bot':data_messag.get('is_bot'), + "language_code":data_messag.get('language_code'), + 'is_premium':data_messag.get('is_premium'), + 'added_to_attachment_menu':data_messag.get('added_to_attachment_menu'), + 'can_join_groups':data_messag.get('can_join_groups'), + 'can_read_all_group_messages':data_messag.get('can_read_all_group_messages'), + 'supports_inline_queries':data_messag.get('supports_inline_queries'), + } + + dictMessag = {} + for k,q in data.items(): + if q != None: + dictMessag[k] = q + + return data_messag #Override the __str__ method to print the user data def __str__(self): ''' Print the user data ''' - pass - \ No newline at end of file + data = self.fromDict() + + id = data.get('id') + last_name = data.get('last_name') + first_name = data.get('first_name') + username = data.get('username') + + return f'id:{id},\nlast_name:{last_name},\nfirst_name:{first_name},\nusername:{username}' \ No newline at end of file From 8ba1723e14e5124771d77cd7826140b2ad1840a7 Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 07:38:33 +0300 Subject: [PATCH 4/8] __init__ git commit -m __init__ git commit -m __init__ --- telegram/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/telegram/__init__.py b/telegram/__init__.py index b3cd280..97dbdfa 100644 --- a/telegram/__init__.py +++ b/telegram/__init__.py @@ -1 +1,4 @@ -from .bot import Bot \ No newline at end of file +from .bot import Bot +from .update import Update +from .message import Message +from .user import User \ No newline at end of file From 82602ad6e5f282eb9463238210ea5f14df538976 Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 07:41:21 +0300 Subject: [PATCH 5/8] __ --- main.py | 5 +++-- telegram/bot.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 1a2e9f9..28b9c46 100644 --- a/main.py +++ b/main.py @@ -4,5 +4,6 @@ bot = telegram.Bot(TOKEN) -user=bot.getMe() -print(user.username) +user=bot.getUpdates() +u = telegram.Message(user) +print(u) diff --git a/telegram/bot.py b/telegram/bot.py index 02e3574..e102cec 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -53,7 +53,7 @@ def getUpdates(self): data = answer.json() # Get result form data - result = data['result'] + result = data['result'] return result def sendPhoto(self, From 871669b64e37ba3acbdb513c72b1e3e39dfe436e Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 08:04:39 +0300 Subject: [PATCH 6/8] sendSticker --- telegram/bot.py | 35 ++++++++++++++++------------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/telegram/bot.py b/telegram/bot.py index e102cec..18fb00d 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -17,7 +17,6 @@ def getMe(self)->User: return User(user_data) - def sendMessage(self,chat_id,text): """Use this method to send text messages. Args: @@ -30,14 +29,11 @@ def sendMessage(self,chat_id,text): A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendMessage" + url = f"{self.base_url}/sendMessage" data={'chat_id': chat_id, 'text': text} answer = requests.post(url,data) return answer.json() - - - def getUpdates(self): """Use this method to receive incoming updates using long polling. Args: @@ -45,17 +41,14 @@ def getUpdates(self): Returns: A telegram.Update object is returned. """ - - url = f'{self.base_url}/getUpdates' - answer = requests.get(url) data = answer.json() - + # Get result form data result = data['result'] return result - + def sendPhoto(self, chat_id, photo, @@ -82,11 +75,10 @@ def sendPhoto(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendPhoto" + url = f"{self.base_url}/sendPhoto" data={'chat_id': chat_id,'photo':photo} answer = requests.post(url,data) return answer.json() - def sendSticker(self, chat_id, @@ -110,7 +102,7 @@ def sendSticker(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendSticker" + url = f"{self.base_url}/sendSticker" data={'chat_id': chat_id, 'sticker':sticker} answer = requests.post(url,data) return answer.json() @@ -138,7 +130,7 @@ def sendLocation(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendLocation" + url = f"{self.base_url}/sendLocation" data={'chat_id': chat_id, 'latitude':latitude, 'longitude':longitude} answer = requests.post(url,data) return answer.json() @@ -165,11 +157,11 @@ def sendDocument(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendDocument" + url = f"{self.base_url}/sendDocument" data={'chat_id': chat_id, 'document':document} answer = requests.post(url,data) return answer.json() - + def sendAudio(self, chat_id, audio, @@ -195,12 +187,11 @@ def sendAudio(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendAudio" + url = f"{self.base_url}/sendAudio" data={'chat_id': chat_id, 'audio':audio} answer = requests.post(url,data) return answer.json() - def sendVideo(self, chat_id, video, @@ -224,7 +215,13 @@ def sendVideo(self, Returns: A telegram.Message instance representing the message posted. """ - url = self.base_url+"/sendVideo" + url = f"{self.base_url}/sendVideo" data={'chat_id': chat_id, 'video':video} answer = requests.post(url,data) return answer.json() + + def sendContact(self, chat_id, phone_number, first_name): + url = f'{self.base_url}/sendContact' + p = {'chat_id':chat_id, 'phone_number':phone_number, 'first_name':first_name} + r = requests.get(url, params=p) + return r.json() \ No newline at end of file From d698058fda122c8d0f6121e3c7a5b5f99944cb75 Mon Sep 17 00:00:00 2001 From: tajriba Date: Sun, 21 Aug 2022 08:06:09 +0300 Subject: [PATCH 7/8] sendContact --- telegram/bot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/telegram/bot.py b/telegram/bot.py index 18fb00d..122e24f 100644 --- a/telegram/bot.py +++ b/telegram/bot.py @@ -224,4 +224,5 @@ def sendContact(self, chat_id, phone_number, first_name): url = f'{self.base_url}/sendContact' p = {'chat_id':chat_id, 'phone_number':phone_number, 'first_name':first_name} r = requests.get(url, params=p) + return r.json() \ No newline at end of file From eb8403c2c13c69545c6901fefae269f9e94d9006 Mon Sep 17 00:00:00 2001 From: tajriba Date: Tue, 23 Aug 2022 09:41:11 +0300 Subject: [PATCH 8/8] chat --- telegram/chat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telegram/chat.py b/telegram/chat.py index 00b7b2f..3049bd7 100644 --- a/telegram/chat.py +++ b/telegram/chat.py @@ -23,7 +23,7 @@ def fromDict(self) -> dict: } newdict = {} for key, value in chat_dict.items(): - if value: + if value != None: newdict[key] = value return newdict