mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-04 20:20:23 +03:00
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:
parent
2dc47912bc
commit
f85e565158
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -101,3 +101,6 @@ ENV/
|
|||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# Developer tests
|
||||
test.py
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user