mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2024-11-13 04:56:35 +03:00
Add #haste command to assistant and fix typo
This commit is contained in:
parent
091180b32d
commit
0d8b15a109
|
@ -101,4 +101,4 @@ or even the TelegramClient_ itself to learn how it works.
|
||||||
See the mentioned :ref:`telethon-client` to find the available methods.
|
See the mentioned :ref:`telethon-client` to find the available methods.
|
||||||
|
|
||||||
.. _InteractiveTelegramClient: https://github.com/LonamiWebs/Telethon/blob/master/telethon_examples/interactive_telegram_client.py
|
.. _InteractiveTelegramClient: https://github.com/LonamiWebs/Telethon/blob/master/telethon_examples/interactive_telegram_client.py
|
||||||
.. _TelegramClient: https://github.com/LonamiWebs/Telethon/blob/master/telethon/telegram_client.py
|
.. _TelegramClient: https://github.com/LonamiWebs/Telethon/tree/master/telethon/client
|
||||||
|
|
|
@ -7,12 +7,17 @@ import sys
|
||||||
import time
|
import time
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
|
|
||||||
from telethon import TelegramClient, events, custom
|
from telethon import TelegramClient, events, types, custom, utils
|
||||||
from telethon.extensions import markdown
|
from telethon.extensions import markdown
|
||||||
|
|
||||||
logging.basicConfig(level=logging.WARNING)
|
logging.basicConfig(level=logging.WARNING)
|
||||||
logging.getLogger('asyncio').setLevel(logging.ERROR)
|
logging.getLogger('asyncio').setLevel(logging.ERROR)
|
||||||
|
|
||||||
|
try:
|
||||||
|
import aiohttp
|
||||||
|
except ImportError:
|
||||||
|
aiohttp = None
|
||||||
|
logging.warning('aiohttp module not available; #haste command disabled')
|
||||||
|
|
||||||
def get_env(name, message, cast=str):
|
def get_env(name, message, cast=str):
|
||||||
if name in os.environ:
|
if name in os.environ:
|
||||||
|
@ -298,6 +303,48 @@ async def handler(event):
|
||||||
await message.delete()
|
await message.delete()
|
||||||
|
|
||||||
|
|
||||||
|
if aiohttp:
|
||||||
|
@bot.on(events.NewMessage(pattern='(?i)#[hp]aste(bin)?', forwards=False))
|
||||||
|
async def handler(event):
|
||||||
|
"""
|
||||||
|
#haste: Replaces the message you reply to with a hastebin link.
|
||||||
|
"""
|
||||||
|
await event.delete()
|
||||||
|
if not event.reply_to_msg_id:
|
||||||
|
return
|
||||||
|
|
||||||
|
msg = await event.get_reply_message()
|
||||||
|
sent = await event.respond(
|
||||||
|
'Uploading paste...', reply_to=msg.reply_to_msg_id)
|
||||||
|
|
||||||
|
name = utils.get_display_name(await msg.get_sender()) or 'A user'
|
||||||
|
text = msg.raw_text
|
||||||
|
code = ''
|
||||||
|
for _, string in msg.get_entities_text((
|
||||||
|
types.MessageEntityCode, types.MessageEntityPre)):
|
||||||
|
code += f'{string}\n'
|
||||||
|
text = text.replace(string, '')
|
||||||
|
|
||||||
|
code = code.rstrip()
|
||||||
|
if code:
|
||||||
|
text = re.sub(r'\s+', ' ', text)
|
||||||
|
else:
|
||||||
|
code = msg.raw_text
|
||||||
|
text = ''
|
||||||
|
|
||||||
|
async with aiohttp.ClientSession() as session:
|
||||||
|
async with session.post('https://hastebin.com/documents',
|
||||||
|
data=code.encode('utf-8')) as resp:
|
||||||
|
haste = (await resp.json())['key']
|
||||||
|
|
||||||
|
await asyncio.wait([
|
||||||
|
msg.delete(),
|
||||||
|
sent.edit(f'[{name}](tg://user?id={msg.sender_id}) '
|
||||||
|
f'said: {text} hastebin.com/{haste}.py'
|
||||||
|
.replace(' ', ' '))
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
# ============================== Commands ==============================
|
# ============================== Commands ==============================
|
||||||
# ============================== Inline ==============================
|
# ============================== Inline ==============================
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user