mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-05 04:30:22 +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
|
# Rope project settings
|
||||||
.ropeproject
|
.ropeproject
|
||||||
|
|
||||||
|
# Developer tests
|
||||||
|
test.py
|
||||||
|
|
|
@ -3,9 +3,7 @@ import re
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from mimetypes import guess_type
|
from mimetypes import guess_type
|
||||||
|
from pprint import pprint
|
||||||
from .tl.functions import channels
|
|
||||||
from .tl.functions import messages
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import socks
|
import socks
|
||||||
|
@ -34,6 +32,10 @@ from .tl.functions.messages import (
|
||||||
GetDialogsRequest, GetHistoryRequest, ReadHistoryRequest, SendMediaRequest,
|
GetDialogsRequest, GetHistoryRequest, ReadHistoryRequest, SendMediaRequest,
|
||||||
SendMessageRequest, GetChatsRequest
|
SendMessageRequest, GetChatsRequest
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from .tl.functions import channels
|
||||||
|
from .tl.functions import messages
|
||||||
|
|
||||||
from .tl.functions.users import (
|
from .tl.functions.users import (
|
||||||
GetUsersRequest
|
GetUsersRequest
|
||||||
)
|
)
|
||||||
|
@ -366,12 +368,12 @@ class TelegramClient(TelegramBareClient):
|
||||||
:param entity: ID or Entity of the chat
|
: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 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
|
: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):
|
if not isinstance(message_ids, list):
|
||||||
message_ids = [message_ids]
|
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:
|
if entity is None:
|
||||||
return self(messages.DeleteMessagesRequest(message_ids, revoke=revoke))
|
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
|
# Enter a while loop to chat as long as the user wants
|
||||||
while True:
|
while True:
|
||||||
# Retrieve the top dialogs
|
# Retrieve the top dialogs
|
||||||
dialog_count = 10
|
dialog_count = 15
|
||||||
|
|
||||||
# Entities represent the user, chat or channel
|
# Entities represent the user, chat or channel
|
||||||
# corresponding to the dialog on the same index
|
# 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
|
i = None
|
||||||
while i is None:
|
while i is None:
|
||||||
|
@ -141,6 +141,7 @@ class InteractiveTelegramClient(TelegramClient):
|
||||||
print(' !h: prints the latest messages (message History).')
|
print(' !h: prints the latest messages (message History).')
|
||||||
print(' !up <path>: Uploads and sends the Photo from path.')
|
print(' !up <path>: Uploads and sends the Photo from path.')
|
||||||
print(' !uf <path>: Uploads and sends the File 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(' !dm <msg-id>: Downloads the given message Media (if any).')
|
||||||
print(' !dp: Downloads the current dialog Profile picture.')
|
print(' !dp: Downloads the current dialog Profile picture.')
|
||||||
print()
|
print()
|
||||||
|
@ -206,6 +207,13 @@ class InteractiveTelegramClient(TelegramClient):
|
||||||
# Slice the message to get the path
|
# Slice the message to get the path
|
||||||
self.send_document(path=msg[len('!uf '):], entity=entity)
|
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
|
# Download media
|
||||||
elif msg.startswith('!dm '):
|
elif msg.startswith('!dm '):
|
||||||
# Slice the message to get message ID
|
# Slice the message to get message ID
|
||||||
|
|
Loading…
Reference in New Issue
Block a user