Exemplo n.º 1
0

async def send_quote(event):
    if event.fwd_from:
        return
    reply = await event.get_reply_message()
    msg = reply.message
    repliedreply = await reply.get_reply_message()
    user = (
        await event.client.get_entity(reply.forward.sender)
        if reply.fwd_from
        else reply.sender
    )
    res, canvas = await process(msg, user, event.client, reply, repliedreply)
    if not res:
        return
    canvas.save("sticker.webp")
    await event.client.send_file(
        event.chat_id, "sticker.webp", reply_to=event.reply_to_msg_id
    )
    os.remove("sticker.webp")


QUOTE_HANDLER = send_quote, events.NewMessage(pattern="^[!/]q")

telethn.add_event_handler(*QUOTE_HANDLER)

__mod_name__ = "Quotes"
__command_list__ = ["q"]
__handlers__ = [QUOTE_HANDLER]
Exemplo n.º 2
0
    if not await can_delete_messages(message=event):
        await event.reply("Parece que no puedes eliminar esto?")
        return

    message = await event.get_reply_message()
    if not message:
        await event.reply("Qué quieres eliminar?")
        return
    chat = await event.get_input_chat()
    del_message = [message, event.message]
    await event.client.delete_messages(chat, del_message)


__help__ = """
*Solo administradores:*
 •`/del`*:* Elimina el mensaje al que respondió
 •`/purge`*:* Elimina todos los mensajes entre este y el mensaje respondido.
 •`/purge <X>`*:* Elimina el mensaje respondido y los X mensajes que lo siguen si respondieron a un mensaje.
"""

PURGE_HANDLER = purge_messages, events.NewMessage(pattern="^[!/]purge$")
DEL_HANDLER = delete_messages, events.NewMessage(pattern="^[!/]del$")

telethn.add_event_handler(*PURGE_HANDLER)
telethn.add_event_handler(*DEL_HANDLER)

__mod_name__ = "Eliminacion"
__command_list__ = ["del", "purge"]
__handlers__ = [PURGE_HANDLER, DEL_HANDLER]
Exemplo n.º 3
0
def load(update: Update, context: CallbackContext):
    message = update.effective_message
    text = message.text.split(" ", 1)[1]
    load_messasge = message.reply_text(
        f"Intentando cargar el módulo: <b>{text}</b>",
        parse_mode=ParseMode.HTML)

    try:
        imported_module = importlib.import_module("MeguRobot.modules." + text)
    except:
        load_messasge.edit_text("Existe ese módulo?")
        return

    if not hasattr(imported_module, "__mod_name__"):
        imported_module.__mod_name__ = imported_module.__name__

    if not imported_module.__mod_name__.lower() in IMPORTED:
        IMPORTED[imported_module.__mod_name__.lower()] = imported_module
    else:
        load_messasge.edit_text("Módulo ya cargado.")
        return
    if "__handlers__" in dir(imported_module):
        handlers = imported_module.__handlers__
        for handler in handlers:
            if not isinstance(handler, tuple):
                dispatcher.add_handler(handler)
            else:
                if isinstance(handler[0], collections.Callable):
                    callback, telethon_event = handler
                    telethn.add_event_handler(callback, telethon_event)
                else:
                    handler_name, priority = handler
                    dispatcher.add_handler(handler_name, priority)
    else:
        IMPORTED.pop(imported_module.__mod_name__.lower())
        load_messasge.edit_text("El módulo no se puede cargar.")
        return

    if hasattr(imported_module, "__help__") and imported_module.__help__:
        HELPABLE[imported_module.__mod_name__.lower()] = imported_module

    # Chats to migrate on chat_migrated events
    if hasattr(imported_module, "__migrate__"):
        MIGRATEABLE.append(imported_module)

    if hasattr(imported_module, "__stats__"):
        STATS.append(imported_module)

    if hasattr(imported_module, "__user_info__"):
        USER_INFO.append(imported_module)

    if hasattr(imported_module, "__import_data__"):
        DATA_IMPORT.append(imported_module)

    if hasattr(imported_module, "__export_data__"):
        DATA_EXPORT.append(imported_module)

    if hasattr(imported_module, "__chat_settings__"):
        CHAT_SETTINGS[imported_module.__mod_name__.lower()] = imported_module

    if hasattr(imported_module, "__user_settings__"):
        USER_SETTINGS[imported_module.__mod_name__.lower()] = imported_module

    load_messasge.edit_text(
        "Módulo cargado correctamente: <b>{}</b>".format(text),
        parse_mode=ParseMode.HTML,
    )
Exemplo n.º 4
0
        text = match.strip()
    elif event.reply_to_msg_id:
        reply = await event.get_reply_message()
        text = reply.raw_text
        if reply.document and reply.document.mime_type.startswith("text"):
            text = await reply.download_media(file=bytes)
    else:
        await event.reply("Dame algo para copiar", link_preview=False)
        return
    response = requests.post(
        "https://del.dog/documents",
        data=text.encode("UTF-8") if isinstance(text, str) else text,
        headers=dogheaders,
    )
    if not response.ok:
        await event.reply("No se pudo copiar a [DelDog](https://del.dog/)",
                          link_preview=False)
        return
    key = response.json()["key"]
    await event.reply(f"Copiado a [DelDog](https://del.dog/{key})",
                      link_preview=False)


DOGBIN_HANDLER = deldog, events.NewMessage(
    pattern="^[!/]dogbin(?: |$|\n)([\s\S]*)")
telethn.add_event_handler(*DOGBIN_HANDLER)

__command_list__ = ["dogbin"]

__handlers__ = [DOGBIN_HANDLER]