import os from telethon import TelegramClient, events from telethon.tl.custom import Dialog from telethon.tl.types import Channel, User, Chat # Use your own values from my.telegram.org api_id = os.environ['api_id'] api_hash = os.environ['api_hash'] client = TelegramClient('ubot', api_id, api_hash) @client.on(events.NewMessage) async def edit(event): msg = event.raw_text if '.alive' in msg: rpl = "Userbot alive and well!" await event.edit(rpl) if '.shg' in msg: rpl = f"¯\_(ツ)_/¯" msg = event.text.replace('.shg', rpl) await event.edit(msg) if '.stats' in msg: pms = bots = 0 groups = gadmin = gcreator = 0 chans = cadmin = ccreator = 0 unread = mentions = 0 dialog: Dialog async for dialog in event.client.iter_dialogs(): entity = dialog.entity if isinstance(entity, Channel): if entity.broadcast: chans += 1 if entity.creator or entity.admin_rights: cadmin += 1 if entity.creator: ccreator += 1 elif entity.megagroup: groups += 1 if entity.creator or entity.admin_rights: gadmin += 1 if entity.creator: gcreator += 1 elif isinstance(entity, Chat): groups += 1 if entity.creator or entity.admin_rights: gadmin += 1 if entity.creator: gcreator += 1 elif isinstance(entity, User): pms += 1 if entity.bot: bots +=1 mentions += dialog.unread_mentions_count unread += dialog.unread_count me = await client.get_me() name = (me.first_name) rpl = f'**Stats for {name}**\n' rpl += f'**Private:** {pms} ({pms - bots} users / {bots} bots)\n' rpl += f'**Groups:** {groups} ({gadmin} admin / {gcreator} creator)\n' rpl += f'**Channels:** {chans} ({cadmin} admin / {ccreator} creator)\n' rpl += f'**Unread:** {unread} ({mentions} mentions)\n' await event.edit(rpl) if '.fire' in msg: rpl = 'IMA FIRING MAH LAZER' await event.edit(rpl) if '.sauce' in msg: rpl = 'Sauce: [ghnou/ubot](https://git.ghnou.su/ghnou/ubot)' await event.edit(rpl) if '.purgeme' in msg: count = int(msg.split()[1]) i = 1 async for msgs in client.iter_messages(event.chat_id, from_user='me'): if (i > count + 1): break i = i + 1 await msgs.delete() rpl = "Purge complete! Purged " + str(count) + " messages." await client.send_message('me', rpl) if '.help' in msg: rpl = '**Available userbot commands:**\n' rpl += '.alive - Check whether the bot is running.\n' rpl += '.shg - ¯\_(ツ)_/¯\n' rpl += '.stats - Get user account stats.\n' rpl += '.fire - IMA FIRING MAH LAZER\n' rpl += '.sauce - Get the bot\'s source code.\n' rpl += '.help - Show this help message.\n' await event.edit(rpl) client.start() client.run_until_disconnected()