Skip to content

Instantly share code, notes, and snippets.

@x0x8x
Created April 25, 2020 01:43
Show Gist options
  • Save x0x8x/1d363d548d4b3b098764506d14861d60 to your computer and use it in GitHub Desktop.
Save x0x8x/1d363d548d4b3b098764506d14861d60 to your computer and use it in GitHub Desktop.
Simplest Telethon Client with an minimum of functionality
import io, asyncio
from asyncio import sleep
from telethon import TelegramClient, events
from telethon.events import NewMessage, MessageEdited
client = TelegramClient("session", 4, "014b35b6184100b085b0d0572f9b5103")
@client.on(events.ChatAction(func=lambda e: e.chat.id == 1234567890))
async def welcome(event):
if event.user_joined or event.user_added:
await event.reply("Hi there, welcome to group")
await asyncio.sleep(5)
@client.on(events.NewMessage(outgoing=True, pattern=r"(?i).*(\,r)"))
@client.on(events.MessageEdited(outgoing=True, pattern=r"(?i).*(\,r)"))
async def raw(event: NewMessage.Event) -> None:
the_real_message = None
reply_to_id = None
if event.reply_to_msg_id:
previous_message = await event.get_reply_message()
the_real_message = previous_message.stringify()
reply_to_id = event.reply_to_msg_id
else:
the_real_message = event.stringify()
reply_to_id = event.message.id
if len(the_real_message) > 4096:
with io.BytesIO(str.encode(the_real_message)) as out_file:
out_file.name = "raw.txt"
await client.send_file(
event.chat_id,
out_file,
force_document=True,
allow_cache=False,
reply_to=reply_to_id,
)
await event.delete()
else:
await client.send_message("me", f"```{the_real_message}```")
await event.delete()
client.start()
client.run_until_disconnected()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment