Fixed casting message id to int

Added message deletion to interactive telegram client and bumped dialog count up to 15 (feels better, correct me if I'm wrong)
This commit is contained in:
JosXa 2017-10-01 22:23:10 +02:00
parent 2dc47912bc
commit f85e565158
3 changed files with 20 additions and 7 deletions

3
.gitignore vendored
View File

@ -101,3 +101,6 @@ ENV/
# Rope project settings
.ropeproject
# Developer tests
test.py

View File

@ -3,9 +3,7 @@ import re
from datetime import datetime, timedelta
from functools import lru_cache
from mimetypes import guess_type
from .tl.functions import channels
from .tl.functions import messages
from pprint import pprint
try:
import socks
@ -34,6 +32,10 @@ from .tl.functions.messages import (
GetDialogsRequest, GetHistoryRequest, ReadHistoryRequest, SendMediaRequest,
SendMessageRequest, GetChatsRequest
)
from .tl.functions import channels
from .tl.functions import messages
from .tl.functions.users import (
GetUsersRequest
)
@ -366,12 +368,12 @@ class TelegramClient(TelegramBareClient):
:param entity: ID or Entity of the chat
:param list message_ids: ID(s) or `Message` object(s) of the message(s) to delete
:param revoke: Delete the message for everyone or just this client
:returns messages.AffectedMessages: Messages affected by deletion.
:returns .messages.AffectedMessages: Messages affected by deletion.
"""
if not isinstance(message_ids, list):
message_ids = [message_ids]
message_ids = [m.id if isinstance(m, Message) else m for m in message_ids]
message_ids = [m.id if isinstance(m, Message) else int(m) for m in message_ids]
if entity is None:
return self(messages.DeleteMessagesRequest(message_ids, revoke=revoke))

View File

@ -94,11 +94,11 @@ class InteractiveTelegramClient(TelegramClient):
# Enter a while loop to chat as long as the user wants
while True:
# Retrieve the top dialogs
dialog_count = 10
dialog_count = 15
# Entities represent the user, chat or channel
# corresponding to the dialog on the same index
dialogs, entities = self.get_dialogs(dialog_count)
dialogs, entities = self.get_dialogs(limit=dialog_count)
i = None
while i is None:
@ -141,6 +141,7 @@ class InteractiveTelegramClient(TelegramClient):
print(' !h: prints the latest messages (message History).')
print(' !up <path>: Uploads and sends the Photo from path.')
print(' !uf <path>: Uploads and sends the File from path.')
print(' !d <msg-id>: Deletes a message by its id')
print(' !dm <msg-id>: Downloads the given message Media (if any).')
print(' !dp: Downloads the current dialog Profile picture.')
print()
@ -206,6 +207,13 @@ class InteractiveTelegramClient(TelegramClient):
# Slice the message to get the path
self.send_document(path=msg[len('!uf '):], entity=entity)
# Delete messages
elif msg.startswith('!d '):
# Slice the message to get message ID
deleted_msg = self.delete_messages(entity, msg[len('!d '):])
print('Deleted. {}'.format(deleted_msg))
# Download media
elif msg.startswith('!dm '):
# Slice the message to get message ID