async def add_sticker_to_pack(
        bot: TelegramClient) -> Tuple[StickerSet, InputDocument]:
    global sticker_pack
    animated = current_vote['animated']
    if animated:
        file = await bot.upload_file(current_vote['filepath'])
        mime = 'application/x-tgsticker'
    else:
        img = Image.open(current_vote['filepath'])
        w, h = img.size
        if w > h:
            img = img.resize((512, int(h * (512 / w))), Image.ANTIALIAS)
        else:
            img = img.resize((int((w * (512 / h))), 512), Image.ANTIALIAS)
        dat = BytesIO()
        img.save(dat, format='PNG')
        file = await bot.upload_file(dat.getvalue())
        mime = 'image/png'
    os.remove(current_vote['filepath'])
    file = InputMediaUploadedDocument(file, mime, [])
    document = await bot(UploadMediaRequest(InputPeerSelf(), file))
    document = utils.get_input_document(document)
    item = InputStickerSetItem(document=document, emoji=current_vote['emoji'])
    pack: Optional[StickerSet] = None
    added = False
    # TODO add support for animated stickers
    if not sticker_pack:
        added, pack = await create_sticker_pack(bot, item)
    if not added:
        pack = await bot(
            AddStickerToSetRequest(stickerset=sticker_pack, sticker=item))
    return pack, utils.get_input_document(pack.documents[-1])
示例#2
0
async def convert_sticker_to_gif(sticker):
    gif_id = sticker_to_gif.get(str(sticker.id), None)
    if gif_id:
        access_hash = access_hashes[str(gif_id)]
        return types.InputDocument(gif_id, access_hash, b'')
    file = BytesIO()
    await borg.download_media(sticker, file=file)
    file.seek(0)

    # remove alpha
    im = Image.open(file)
    alpha = im.convert('RGBA').getchannel('A')
    size = max(im.width, im.height)
    new_im = Image.new('RGBA', (size, size), (40, 40, 40, 255))
    xy = (round((size - im.width) / 2), round((size - im.height) / 2))
    new_im.paste(im, box=xy, mask=alpha)
    file = BytesIO()
    new_im.save(file, format='gif')
    file.seek(0)

    # upload file
    file = await event.upload_file(file, part_size_kb=512)
    file = types.InputMediaUploadedDocument(file, 'video/mp4', [])
    media = await event(UploadMediaRequest('me', file))
    media = utils.get_input_document(media)

    # save (that's right, this is relational json)
    sticker_to_gif[str(sticker.id)] = media.id
    gif_to_sticker[str(media.id)] = sticker.id
    access_hashes[str(sticker.id)] = sticker.access_hash
    access_hashes[str(media.id)] = media.access_hash
    storage.sticker_to_gif = sticker_to_gif
    storage.access_hashes = access_hashes

    return media
示例#3
0
文件: notes.py 项目: srgudhka/subot2
async def add_filter(fltr):
    """ For .save command, saves notes in a chat. """
    try:
        from userbot.modules.sql_helper.notes_sql import add_note
    except AttributeError:
        await fltr.edit("`Running on Non-SQL mode!`")
        return

    notename = fltr.pattern_match.group(1)
    msg = await fltr.get_reply_message()
    if not msg:
        await fltr.edit("`I need something to save as a note.`")
    else:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference

    success = "`Note {} successfully. Use` #{} `to get it`"

    if add_note(str(fltr.chat_id), notename, snip['text'], snip['type'],
                snip.get('id'), snip.get('hash'), snip.get('fr')) is False:
        return await fltr.edit(success.format('updated', notename))
    else:
        return await fltr.edit(success.format('added', notename))
示例#4
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_snip(name, snip['text'], snip['type'], snip.get('id'),
                 snip.get('hash'), snip.get('fr'))
        await event.edit(
            "Snip {name} başarıyla kaydedildi. # {Name} ile alın".format(
                name=name))
    else:
        await event.edit(
            "Snips'i kaydetmek için bir mesajı `snips anahtar kelimesi` ile yanıtlayın"
        )
示例#5
0
async def add_new_filter(new_handler):
    """ For .filter command, allows adding new filters in a chat """
    if not new_handler.text[0].isalpha() and new_handler.text[0] not in (
            "/", "#", "@", "!"):
        try:
            from userbot.modules.sql_helper.filter_sql import add_filter
        except AttributeError:
            await new_handler.edit("`Running on Non-SQL mode!`")
            return

        keyword = new_handler.pattern_match.group(1)
        msg = await new_handler.get_reply_message()
        if msg:
            snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
            if msg.media:
                media = None
                if isinstance(msg.media, types.MessageMediaPhoto):
                    media = utils.get_input_photo(msg.media.photo)
                    snip['type'] = TYPE_PHOTO
                elif isinstance(msg.media, types.MessageMediaDocument):
                    media = utils.get_input_document(msg.media.document)
                    snip['type'] = TYPE_DOCUMENT
                if media:
                    snip['id'] = media.id
                    snip['hash'] = media.access_hash
                    snip['fr'] = media.file_reference

        success = "`Filter` **{}** `{} successfully`"

        if add_filter(str(new_handler.chat_id), keyword, snip['text'],
                      snip['type'], snip.get('id'), snip.get('hash'),
                      snip.get('fr')) is True:
            await new_handler.edit(success.format(keyword, 'added'))
        else:
            await new_handler.edit(success.format(keyword, 'updated'))
示例#6
0
async def on_snip_save(event):
    hitler = await edit_or_reply(event, "Yüklənir....")
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {"type": TYPE_TEXT, "text": msg.message or ""}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip["type"] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip["type"] = TYPE_DOCUMENT
            if media:
                snip["id"] = media.id
                snip["hash"] = media.access_hash
                snip["fr"] = media.file_reference
        add_filter(
            event.chat_id,
            name,
            snip["text"],
            snip["type"],
            snip.get("id"),
            snip.get("hash"),
            snip.get("fr"),
        )
        await hitler.edit(f"filter {name} uğurla yükləndi. Kod: {name}")
    else:
        await hitler.edit(
            "Filteri Yükləmək Üçün `savefilter söz` Kodunu Mesajı Göstərərək Yazın."
        )
示例#7
0
async def on_snip_save(event):
    """ For .snip command, saves snips for future use. """
    try:
        from userbot.modules.sql_helper.snips_sql import add_snip
    except AtrributeError:
        await event.edit("`Running on Non-SQL mode!`")
        return
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if not msg:
        await event.edit("`I need something to save as a snip.`")
        return
    else:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference

        success = "**Snip {} successfully. Use** `₹{}` **anywhere to get it**"

        if add_snip(name, snip['text'], snip['type'], snip.get('id'),
                    snip.get('hash'), snip.get('fr')) is False:
            await event.edit(success.format('updated', name))
        else:
            await event.edit(success.format('saved', name))
示例#8
0
async def handler(event):
    blacklist = {
        1653974154589768377,
        1653974154589768312,
        1653974154589767857,
        1653974154589768311,
        1653974154589767816,
        1653974154589767939,
        1653974154589767944,
        1653974154589767912,
        1653974154589767911,
        1653974154589767910,
        1653974154589767909,
        1653974154589767863,
        1653974154589767852,
        1653974154589768677,
    }
    try:
        await event.delete()
    except BaseException:
        pass
    docs = [
        utils.get_input_document(x) for x in (await event.client(
            functions.messages.GetStickerSetRequest(
                types.InputStickerSetShortName("DabOnHaters")))).documents
        if x.id not in blacklist
    ]
    await event.respond(file=random.choice(docs))
示例#9
0
文件: snip.py 项目: vinay-690/SudoBot
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_snip(name, snip['text'], snip['type'], snip.get('id'),
                 snip.get('hash'), snip.get('fr'))
        await event.edit(
            "snip {name} saved successfully. Get it with #{name}".format(
                name=name))
    else:
        await event.edit(
            "Reply to a message with `snips keyword` to save the snip")
示例#10
0
async def upload_sticker(sticker: Sticker):
    sticker.file.seek(0)
    file = await client.upload_file(sticker.file, part_size_kb=512)
    file = types.InputMediaUploadedDocument(file, 'image/png', [])
    media = await client(UploadMediaRequest('me', file))
    return types.InputStickerSetItem(document=utils.get_input_document(media),
                                     emoji=sticker.emoji)
示例#11
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_filter(event.chat_id, name, snip['text'], snip['type'],
                   snip.get('id'), snip.get('hash'), snip.get('fr'))
        await event.edit("Filtro salvato!")
        await asynco.sleep(2)
    else:
        await event.edit(
            f"`{DEFAULTUSER}:`**Rispondi ad un messaggio `.savefilter` e il testo per salvare il filtro**"
        )
示例#12
0
async def _(event):
    "To get random dabbing pose stickers."
    reply_to_id = await reply_id(event)
    blacklist = {
        1653974154589768377,
        1653974154589768312,
        1653974154589767857,
        1653974154589768311,
        1653974154589767816,
        1653974154589767939,
        1653974154589767944,
        1653974154589767912,
        1653974154589767911,
        1653974154589767910,
        1653974154589767909,
        1653974154589767863,
        1653974154589767852,
        1653974154589768677,
    }
    await event.delete()
    docs = [
        utils.get_input_document(x)
        for x in (
            await event.client(
                functions.messages.GetStickerSetRequest(
                    types.InputStickerSetShortName("DabOnHaters")
                )
            )
        ).documents
        if x.id not in blacklist
    ]
    await event.respond(file=random.choice(docs), reply_to=reply_to_id)
示例#13
0
async def _(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {"type": TYPE_TEXT, "text": msg.message or ""}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip["type"] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip["type"] = TYPE_DOCUMENT
            if media:
                snip["id"] = media.id
                snip["hash"] = media.access_hash
                snip["fr"] = media.file_reference
        add_snip(
            name,
            snip["text"],
            snip["type"],
            snip.get("id"),
            snip.get("hash"),
            snip.get("fr"),
        )
        await event.reply(
            "Note {name} saved successfully. Get it with ?{name}".format(
                name=name))
    else:
        await event.reply(
            "Reply to a message with `snips keyword` to save the snip")
示例#14
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_filter(event.chat_id, name, snip['text'], snip['type'],
                   snip.get('id'), snip.get('hash'), snip.get('fr'))
        await event.edit(
            f"filtro {name} salvato con successo. usalo con {name}")
    else:
        await event.edit(
            "Rispondi a un messaggio con .savefilter parola per salvare il filtro"
        )
示例#15
0
async def on_snip_save(event):
    if event.fwd_from:
        return
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_filter(event.chat_id, name, snip['text'], snip['type'],
                   snip.get('id'), snip.get('hash'), snip.get('fr'))
        await edit_or_reply(
            event, f"Filter `{name}` saved successfully. Get it with `{name}`")
    else:
        await edit_or_reply(
            event,
            "Reply to a message with `savefilter keyword` to save the filter")
示例#16
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {"type": TYPE_TEXT, "text": msg.message or ""}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip["type"] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip["type"] = TYPE_DOCUMENT
            if media:
                snip["id"] = media.id
                snip["hash"] = media.access_hash
                snip["fr"] = media.file_reference
        add_filter(
            event.chat_id,
            name,
            snip["text"],
            snip["type"],
            snip.get("id"),
            snip.get("hash"),
            snip.get("fr"),
        )
        await edit_or_reply(
            event, f"filter {name} saved successfully. Get it with {name}"
        )
    else:
        await edit_or_reply(
            event, "Reply to a message with `savefilter keyword` to save the filter"
        )
示例#17
0
async def save(event):
    if event.is_group:
        if not await is_admin(event, event.sender_id):
            await event.reply("You need to be an admin to do this.")
            return
        if not await can_change_info(message=event):
            await event.reply(
                "You are missing the following rights to use this command: CanChangeInfo"
            )
            return
    else:
        return
    if not event.reply_to_msg_id:
        input = event.pattern_match.group(1)
        if input:
            arg = input.split(" ", 1)
        if len(arg) == 2:
            name = arg[0]
            msg = arg[1]
            snip = {"type": TYPE_TEXT, "text": msg}
        else:
            name = arg[0]
            if not name:
                await event.reply("You need to give the filter a name!")
                return
            await event.reply("You need to give the filter some content!")
            return
    else:
        message = await event.get_reply_message()
        name = event.pattern_match.group(1)
        if not name:
            await event.reply("You need to give the filter a name!")
            return
        if not message.media:
            msg = message.text
            snip = {"type": TYPE_TEXT, "text": msg}
        else:
            snip = {"type": TYPE_TEXT, "text": ""}
            media = None
            if isinstance(message.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(message.media.photo)
                snip["type"] = TYPE_PHOTO
            elif isinstance(message.media, types.MessageMediaDocument):
                media = utils.get_input_document(message.media.document)
                snip["type"] = TYPE_DOCUMENT
            if media:
                snip["id"] = media.id
                snip["hash"] = media.access_hash
                snip["fr"] = media.file_reference
    add_filter(
        event.chat_id,
        name,
        snip["text"],
        snip["type"],
        snip.get("id"),
        snip.get("hash"),
        snip.get("fr"),
    )
    await event.reply(f"Saved filter `{name}`")
async def on_snip_save(event):
    if event.is_group:
        if not await can_change_info(message=event):
            return
    else:
        return

    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()

    if msg:

        snip = {"type": TYPE_TEXT, "text": msg.message or ""}

        if msg.media:

            media = None

            if isinstance(msg.media, types.MessageMediaPhoto):

                media = utils.get_input_photo(msg.media.photo)

                snip["type"] = TYPE_PHOTO

            elif isinstance(msg.media, types.MessageMediaDocument):

                media = utils.get_input_document(msg.media.document)

                snip["type"] = TYPE_DOCUMENT

            if media:

                snip["id"] = media.id

                snip["hash"] = media.access_hash

                snip["fr"] = media.file_reference

        add_filter(
            event.chat_id,
            name,
            snip["text"],
            snip["type"],
            snip.get("id"),
            snip.get("hash"),
            snip.get("fr"),
        )

        await event.reply(
            f"Classic Filter {name} saved successfully. you can get it with {name}\nNote: Try our new filter system /addfilter "
        )

    else:

        await event.reply(
            "Usage: Reply to user message with /cfilter <text>.. \nNot Recomended use new filter system /savefilter"
        )
示例#19
0
 async def handler(event):
     await event.delete()
     nonlocal docs
     if docs is None:
         docs = [
             utils.get_input_document(x)
             for x in (await borg(functions.messages.GetStickerSetRequest(types.InputStickerSetShortName(pack)))).documents
             if x.id not in blacklist
         ]
     await event.respond(file=random.choice(docs))
示例#20
0
async def handler(event):
    blacklist = {}
    try:
        await event.delete()
    except BaseException:
        pass
    docs = [
        utils.get_input_document(x) for x in (await event.client(
            functions.messages.GetStickerSetRequest(
                types.InputStickerSetShortName("supermind")))).documents
        if x.id not in blacklist
    ]
    await event.respond(file=random.choice(docs))
示例#21
0
async def handler(event):
    "To get random brain stickers."
    reply_to_id = await reply_id(event)
    blacklist = {}
    await event.delete()
    docs = [
        utils.get_input_document(x)
        for x in (
            await event.client(
                functions.messages.GetStickerSetRequest(
                    types.InputStickerSetShortName("supermind")
                )
            )
        ).documents
        if x.id not in blacklist
    ]
    await event.respond(file=random.choice(docs), reply_to=reply_to_id)
示例#22
0
async def _(e):
    x = await e.get_reply_message()
    if not (x and x.media and hasattr(x.media, "document")):
        return await eod(e, "`Reply To Sticker Only`")
    set = x.document.attributes[1]
    sset = await ultroid_bot(
        GetStickerSetRequest(
            InputStickerSetID(
                id=set.stickerset.id,
                access_hash=set.stickerset.access_hash,
            )))
    pack = sset.set.short_name
    docs = [
        utils.get_input_document(x) for x in (await bot(
            GetStickerSetRequest(InputStickerSetShortName(pack)))).documents
    ]
    for xx in docs:
        await e.respond(file=(xx))
示例#23
0
    async def handler(event):

        if event.fwd_from:
            return
        animation_interval = 2
        animation_ttl = range(0,8)
        nonlocal docs
        
        for i in animation_ttl:
                    
               await asyncio.sleep(animation_interval)
               if docs is None:
                    docs = [
                        utils.get_input_document(x)
                        for x in (await borg(functions.messages.GetStickerSetRequest(types.InputStickerSetShortName(pack)))).documents
                    ]

               await event.respond(file=random.choice(docs))
示例#24
0
async def pack_kangish(_):
    _e = await _.get_reply_message()
    if not (_e and _e.sticker and _e.file.mime_type == "image/webp"):
        return await _.eor(get_string("sts_4"))
    if len(_.text) > 9:
        _packname = _.text.split(" ", maxsplit=1)[1]
    else:
        _packname = f"Ultroid Kang Pack By {_.sender_id}"
    _id = _e.media.document.attributes[1].stickerset.id
    _hash = _e.media.document.attributes[1].stickerset.access_hash
    _get_stiks = await _.client(
        functions.messages.GetStickerSetRequest(
            stickerset=types.InputStickerSetID(id=_id, access_hash=_hash), hash=0
        )
    )
    stiks = []
    for i in _get_stiks.documents:
        x = get_input_document(i)
        stiks.append(
            types.InputStickerSetItem(
                document=x,
                emoji=(i.attributes[1]).alt,
            )
        )
    try:
        short_name = "ult_" + _packname.replace(" ", "_") + str(_.id)
        _r_e_s = await asst(
            functions.stickers.CreateStickerSetRequest(
                user_id=_.sender_id,
                title=_packname,
                short_name=f"{short_name}_by_{asst.me.username}",
                stickers=stiks,
            )
        )
    except PeerIdInvalidError:
        return await _.eor(
            f"Hey {inline_mention(_.sender)} send `/start` to @{asst.me.username} and later try this command again.."
        )
    except BaseException as er:
        LOGS.exception(er)
        return await _.eor(str(er))
    await _.eor(
        get_string("sts_5").format(f"https://t.me/addstickers/{_r_e_s.set.short_name}"),
    )
示例#25
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_filter(event.chat_id, name, snip['text'], snip['type'],
                   snip.get('id'), snip.get('hash'), snip.get('fr'))
    await event.edit(f"filter {name} saved successfully. Get it with {name}")
示例#26
0
async def _(event):
    if event.fwd_from:
        return
    msg = await event.get_reply_message()
    if msg and msg.media:
        media = None
        message_type = TYPE_TEXT
        if isinstance(msg.media, types.MessageMediaPhoto):
            media = utils.get_input_photo(msg.media.photo)
            message_type = TYPE_PHOTO
        elif isinstance(msg.media, types.MessageMediaDocument):
            media = utils.get_input_document(msg.media.document)
            message_type = TYPE_DOCUMENT
        #
        add_welcome_setting(event.chat_id, msg.message, True, 0, message_type,
                            media.id, media.access_hash, media.file_reference)
        await event.edit("Welcome note saved. ")
    else:
        input_str = event.text.split(None, 1)
        add_welcome_setting(event.chat_id, input_str[1], True, 0)
        await event.edit("Welcome note saved. ")
示例#27
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_snip(name, snip['text'], snip['type'], snip.get('id'), snip.get('hash'), snip.get('fr'))
        await event.edit("Taglio {name} salvato con successo. Prendilo con #{name}".format(name=name))
    else:
        await event.edit("Rispondi ad un messaggio con `snips parola` per salvare il taglio.")
示例#28
0
async def pack_kangish(_):
    _e = await _.get_reply_message()
    if not (_e and _e.sticker and _e.file.mime_type == "image/webp"):
        return await eor(_, get_string("sts_4"))
    if len(_.text) > 9:
        _packname = _.text.split(" ", maxsplit=1)[1]
    else:
        _packname = f"Ultroid Kang Pack By {_.sender_id}"
    _id = _e.media.document.attributes[1].stickerset.id
    _hash = _e.media.document.attributes[1].stickerset.access_hash
    _get_stiks = await _.client(
        functions.messages.GetStickerSetRequest(
            stickerset=types.InputStickerSetID(id=_id, access_hash=_hash)))
    stiks = []
    for i in _get_stiks.documents:
        x = get_input_document(i)
        stiks.append(
            types.InputStickerSetItem(
                document=x,
                emoji=(i.attributes[1]).alt,
            ))
    try:
        short_name = (await
                      _.client(SuggestShortNameRequest(_packname))).short_name
        _r_e_s = await asst(
            functions.stickers.CreateStickerSetRequest(
                user_id=_.sender_id,
                title=_packname,
                short_name=f"u{short_name}_by_{asst.me.username}",
                stickers=stiks,
            ))
    except BaseException as er:
        LOGS.exception(er)
        return await eor(_, str(er))
    await eor(
        _,
        get_string("sts_5").format(
            f"https://t.me/addstickers/{_r_e_s.set.short_name}"),
    )
示例#29
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snips.pop(name, None)
        snip = {"type": TYPE_TEXT, "text": msg.message or ""}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip["type"] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip["type"] = TYPE_DOCUMENT
            if media:
                snip["id"] = media.id
                snip["hash"] = media.access_hash

        snips[name] = snip
        storage.snips = snips

    await event.delete()
示例#30
0
async def on_snip_save(event):
    name = event.pattern_match.group(1)
    msg = await event.get_reply_message()
    if msg:
        snip = {'type': TYPE_TEXT, 'text': msg.message or ''}
        if msg.media:
            media = None
            if isinstance(msg.media, types.MessageMediaPhoto):
                media = utils.get_input_photo(msg.media.photo)
                snip['type'] = TYPE_PHOTO
            elif isinstance(msg.media, types.MessageMediaDocument):
                media = utils.get_input_document(msg.media.document)
                snip['type'] = TYPE_DOCUMENT
            if media:
                snip['id'] = media.id
                snip['hash'] = media.access_hash
                snip['fr'] = media.file_reference
        add_filter(event.chat_id, name, snip['text'], snip['type'],
                   snip.get('id'), snip.get('hash'), snip.get('fr'))
        await event.edit(f"الرد {name} تم اضافته بنجاح. اكتب {name}")
    else:
        await event.edit("رد على الرد وااكتب النص الاساسي `اضف رد` لحفظ الرد")