예제 #1
0
async def save_get_new_note(event, strings, chat_id):
    note_name = event.pattern_match.group(1)
    for sym in RESTRICTED_SYMBOLS:
        if sym in note_name:
            await event.reply(strings["notename_cant_contain"].format(sym))
            return
    if note_name[0] == "#":
        note_name = note_name[1:]
    file_id = None
    prim_text = ""
    if len(event.message.text.split(" ")) > 2:
        prim_text = event.text.partition(note_name)[2]
    if event.message.reply_to_msg_id:
        msg = await event.get_reply_message()
        if not msg:
            await event.reply(strings["bot_msg"])
            return
        note_text = msg.message
        if prim_text:
            note_text += prim_text
        if hasattr(msg.media, 'photo'):
            file_id = utils.pack_bot_file_id(msg.media)
        if hasattr(msg.media, 'document'):
            file_id = utils.pack_bot_file_id(msg.media)
    else:
        note_text = prim_text

    return note_name, file_id, note_text
예제 #2
0
async def butt(event):
    media, wut, text = None, None, None
    if event.reply_to:
        wt = await event.get_reply_message()
        if wt.text:
            text = wt.text
        if wt.media:
            wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await wt.download_media()
            variable = uf(dl)
            media = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eor(event, get_string("com_4"), time=5)
            dl = await wt.download_media()
            variable = uf(dl)
            os.remove(dl)
            media = "https://telegra.ph" + variable[0]
        else:
            pack_bot_file_id(wt.media)
    if not text:
        text = event.text.split(maxsplit=1)
        if len(text) <= 1:
            return await eor(
                event,
                f"**Please give some text in correct format.**\n\n`{HNDLR}help button`",
            )
        text = text[1]
    text, buttons = get_msg_button(text)
    if buttons:
        buttons = create_tl_btn(buttons)
    return await something(event, text, None, buttons)
예제 #3
0
async def save_welcome(event):
    if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@",
                                                             "!"):
        try:
            from userbot.modules.sql_helper.welcome_sql import add_welcome_setting
        except AttributeError:
            await event.edit("`Running on Non-SQL mode!`")
            return

        msg = await event.get_reply_message()
        input_str = event.pattern_match.group(1)
        if input_str:
            if add_welcome_setting(event.chat_id, input_str, 0) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
        elif msg and msg.media:
            bot_api_file_id = pack_bot_file_id(msg.media)
            if add_welcome_setting(event.chat_id, msg.message, 0,
                                   bot_api_file_id) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
        elif msg.message is not None:
            if add_welcome_setting(event.chat_id, msg.message, 0) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
예제 #4
0
 def send_files(self, entity, files, delete_on_success=False, print_file_id=False,
                force_file=False, forward=()):
     for file in files:
         progress = get_progress_bar('Uploading', os.path.basename(file), os.path.getsize(file))
         name = '.'.join(os.path.basename(file).split('.')[:-1])
         thumb = None
         try:
             thumb = get_file_thumb(file)
         except ThumbError as e:
             click.echo('{}'.format(e), err=True)
         caption = (name[:CAPTION_MAX_LENGTH] + '..') if len(name) > CAPTION_MAX_LENGTH else name
         try:
             if force_file:
                 attributes = [DocumentAttributeFilename(file)]
             else:
                 attributes = get_file_attributes(file)
             message = self.send_file(entity, file, thumb=thumb,
                                      caption=caption, force_document=force_file,
                                      progress_callback=progress, attributes=attributes)
         except Exception:
             raise
         finally:
             if thumb:
                 os.remove(thumb)
         click.echo()
         if print_file_id:
             click.echo('Uploaded successfully "{}" (file_id {})'.format(file, pack_bot_file_id(message.media)))
         if delete_on_success:
             click.echo('Deleting {}'.format(file))
             os.remove(file)
         self.forward_to(message, forward)
예제 #5
0
async def _(event):
    match = event.pattern_match.group(1).strip()
    if event.reply_to_msg_id:
        await event.get_input_chat()
        r_msg = await event.get_reply_message()
        if r_msg.media:
            bot_api_file_id = pack_bot_file_id(r_msg.media)
            await event.eor(
                "**Current Chat ID:**  `{}`\n**From User ID:**  `{}`\n**Bot API File ID:**  `{}`\n**Msg ID:**  `{}`"
                .format(
                    str(event.chat_id),
                    str(r_msg.sender_id),
                    bot_api_file_id,
                    str(r_msg.id),
                ), )
        else:
            await event.eor(
                "**Chat ID:**  `{}`\n**User ID:**  `{}`\n**Msg ID:**  `{}`".
                format(str(event.chat_id), str(r_msg.sender_id),
                       str(r_msg.id)), )
    elif match:
        try:
            ids = await event.client.parse_id(match)
        except Exception as er:
            return await event.eor(str(er))
        await event.eor(
            "**Chat ID:**  `{}`\n**User ID:**  `{}`".format(
                str(event.chat_id),
                str(ids),
            ), )
    else:
        await event.eor(
            "**Current Chat ID:**  `{}`\n**Msg ID:**  `{}`".format(
                str(event.chat_id), str(event.id)), )
예제 #6
0
async def sed(event):
    msg = await event.get_reply_message()
    if msg is None:
        return
    msg.id
    msg_s = event.raw_text
    user_id, reply_message_id = his_userid(msg.id)
    if event.sender_id != bot.uid:
        return
    elif event.raw_text.startswith("/"):
        return
    elif event.text is not None and event.media:
        bot_api_file_id = pack_bot_file_id(event.media)
        await tgbot.send_file(
            user_id,
            file=bot_api_file_id,
            caption=event.text,
            reply_to=reply_message_id,
        )
    else:
        msg_s = event.raw_text
        await tgbot.send_message(
            user_id,
            msg_s,
            reply_to=reply_message_id,
        )
예제 #7
0
파일: get_id.py 프로젝트: eli332/Uniborg-3
async def _(event):
    if event.fwd_from:
        return
    input_str = event.pattern_match.group(1)
    a_msg = ""
    if input_str:
        try:
            chat = await borg.get_entity(input_str)
        except Exception as e:
            await event.edit(str(e))
            return None
        else:
            a_msg = "{} chat ID: `{}`\n".format(input_str,
                                                "-100" + str(chat.id))
    if event.reply_to_msg_id:
        r_msg = await event.get_reply_message()
        if r_msg.media:
            bot_api_file_id = pack_bot_file_id(r_msg.media)
            await event.edit(
                "{}The BOT API file ID of this media is `{}`".format(
                    a_msg, str(bot_api_file_id)))
        else:
            chat = await event.get_input_chat()
            await event.edit(
                "{}The current chat's ID is `{}` and the replied user as an ID: `{}`"
                .format(a_msg, str(event.chat_id), str(r_msg.from_id)))
    else:
        chat = await event.get_input_chat()
        await event.edit("{}The current chat's ID is `{}`!".format(
            a_msg, str(event.chat_id)))
예제 #8
0
async def _(event):
    if event.reply_to_msg_id:
        await event.get_input_chat()
        r_msg = await event.get_reply_message()
        if r_msg.media:
            bot_api_file_id = pack_bot_file_id(r_msg.media)
            await eor(
                event,
                "**Current Chat ID:**  `{}`\n**From User ID:**  `{}`\n**Bot API File ID:**  `{}`"
                .format(
                    str(event.chat_id),
                    str(r_msg.sender_id),
                    bot_api_file_id,
                ),
            )
        else:
            await eor(
                event,
                "**Chat ID:**  `{}`\n**User ID:**  `{}`".format(
                    str(event.chat_id),
                    str(r_msg.sender_id),
                ),
            )
    elif event.pattern_match.group(1):
        ids = await get_user_id(event.pattern_match.group(1))
        return await eor(
            event,
            "**Chat ID:**  `{}`\n**User ID:**  `{}`".format(
                str(event.chat_id),
                str(ids),
            ),
        )
    else:
        await eor(event,
                  "**Current Chat ID:**  `{}`".format(str(event.chat_id)))
예제 #9
0
async def save_welcome(event):
    if not event.text[0].isalpha() and event.text[0] not in ("/", "#", "@",
                                                             "!"):
        if event.fwd_from:
            return
        msg = await event.get_reply_message()
        input_str = event.pattern_match.group(1)
        if input_str:
            if add_welcome_setting(event.chat_id, input_str, True, 0) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
        elif msg and msg.media:
            bot_api_file_id = pack_bot_file_id(msg.media)
            if add_welcome_setting(event.chat_id, msg.message, True, 0,
                                   bot_api_file_id) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
        elif msg.message is not None:
            if add_welcome_setting(event.chat_id, msg.message, True,
                                   0) is True:
                await event.edit("`Welcome note saved !!`")
            else:
                await event.edit(
                    "`I can only have one welcome note per chat !!`")
예제 #10
0
    async def post(self):
        data = self.request['data']
        attributes = [
            DocumentAttributeAudio(duration=data.pop('duration'),
                                   title=data.pop('title'),
                                   performer=data.pop('performer'))
        ]

        bot = await get_bot()
        async with bot:
            res = await bot.send_file(entity=data['chat_id'],
                                      file=data['audio'],
                                      caption=data.get('caption'),
                                      parse_mode=data.get('parse_mode'),
                                      thumb=data['thumb'],
                                      reply_to=data['reply_to_message_id'],
                                      attributes=attributes)

        if res.media is None:
            return web.Response(status=HTTPStatus.INTERNAL_SERVER_ERROR,
                                text='Upload error')

        file_id = utils.pack_bot_file_id(res.media.document)

        if file_id is None:
            return web.Response(status=HTTPStatus.INTERNAL_SERVER_ERROR,
                                text='ID encoding error')

        return web.json_response({'file_id': file_id})
예제 #11
0
async def on_out_mssg(event):
    x = await event.get_reply_message()
    if x is None:
        return
    to_send = event.raw_text
    who = event.sender_id
    if x.fwd_from:
        to_user = x.fwd_from.sender_id.user_id
    else:
        # this is a weird way of doing it
        return
    if who == OWNER_ID:
        if to_send.startswith("/"):
            return
        if event.text is not None and event.media:
            # if sending media
            bot_api_file_id = pack_bot_file_id(event.media)
            await asst.send_file(
                to_user,
                file=bot_api_file_id,
                caption=event.text,
                reply_to=x.reply_to_msg_id,
            )
        else:
            await asst.send_message(to_user,
                                    to_send,
                                    reply_to=x.reply_to_msg_id)
예제 #12
0
async def an(e):
    wrd = (e.pattern_match.group(1)).lower()
    wt = await e.get_reply_message()
    chat = e.chat_id
    if not (wt and wrd):
        return await eor(
            e, "`Use this Command with Reply and word to use a note.`", time=5
        )
    if "#" in wrd:
        wrd = wrd.replace("#", "")
    if wt and wt.media:
        wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await wt.download_media()
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eor(x, "`Unsupported Media`", time=5)
            dl = await wt.download_media()
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(wt.media)
        if wt.text:
            add_note(int(chat), wrd, wt.text, m)
        else:
            add_note(int(chat), wrd, None, m)
    else:
        add_note(int(chat), wrd, wt.text, None)
    await eor(e, f"Done Note : `#{wrd}` saved.")
예제 #13
0
async def get_note_type(message):
    data_type = None
    content = None
    text = ""
    split = message.text[len("/save "):]
    splitter = re.match(NOTE_REGEX, split)
    note_name = splitter.group(1).strip('"')

    reply = await message.get_reply_message()

    buttons = []
    # determine what the contents of the filter are - text, image, sticker, etc
    if not reply:
        note = re.sub(NOTE_REGEX, "", split)
        text, buttons = message_parser(note)
        if buttons:
            data_type = Types.BUTTON_TEXT
        else:
            if len(text) != 0:
                data_type = Types.TEXT

    elif reply and reply.text:
        text, buttons = message_parser(reply.text)
        if buttons:
            data_type = Types.BUTTON_TEXT
        else:
            data_type = Types.TEXT

    elif reply and reply.media:
        content = utils.pack_bot_file_id(reply.media)
        text = reply.text
        data_type = Types.FILE

    string = re.sub(' +', ' ', text).strip()
    return note_name, string, data_type, content, buttons
async def _m(event):
    await event.edit("`Processing..`")
    id_s = event.chat_id
    lmao = await event.get_reply_message()
    if event.is_group:
        await event.edit("`No, LoL You Can't Set Channel Stickers In Groups, lol`")
        return
    if event.is_private:
        await event.edit(
            "`No, LoL You Can't Set Channel Stickers In Private Chats, lol`"
        )
        return
    if lmao.sticker.mime_type != "image/webp":
        await event.edit("`Only Sticker Allowded.`")
        return
    if is_data_indb(id_s):
        await event.edit(
            "`This Channel Sticker Data Is Already In Db, Remove First To Update it.`"
        )
        return
    if not is_data_indb(id_s):
        bot_api_file_id = pack_bot_file_id(lmao.media)
        add_new_data_in_db(id_s, bot_api_file_id)
        await event.edit(
            "`This Sticker Has Been Set As Channel Sticker For This Channel`"
        )
예제 #15
0
async def an(e):
    wrd = (e.pattern_match.group(1)).lower()
    wt = await e.get_reply_message()
    if not (wt and wrd):
        return await eor(e, "Give word to set as snip and reply to a message.")
    if "$" in wrd:
        wrd = wrd.replace("$", "")
    if wt and wt.media:
        wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await wt.download_media()
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eod(x, "`Unsupported Media`")
            else:
                dl = await wt.download_media()
                variable = uf(dl)
                os.remove(dl)
                m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(wt.media)
        if wt.text:
            add_snip(wrd, wt.text, m)
        else:
            add_snip(wrd, None, m)
    else:
        add_snip(wrd, wt.text, None)
    await eor(e, f"Done : snip `${wrd}` Saved.")
예제 #16
0
    def send_files(self, entity, files: Iterable[File], delete_on_success=False, print_file_id=False,
                   forward=(), send_as_media: bool = False):
        has_files = False
        messages = []
        for file in files:
            has_files = True
            progress, bar = get_progress_bar('Uploading', file.file_name, file.file_size)

            thumb = file.get_thumbnail()
            try:
                try:
                    if send_as_media:
                        message = async_to_sync(self._send_media(entity, file, progress))
                    else:
                        message = self._send_file_message(entity, file, thumb, progress)
                    messages.append(message)
                finally:
                    bar.render_finish()
            finally:
                if thumb and not file.is_custom_thumbnail:
                    os.remove(thumb)
            if print_file_id:
                click.echo('Uploaded successfully "{}" (file_id {})'.format(file.file_name,
                                                                            pack_bot_file_id(message.media)))
            if delete_on_success:
                click.echo('Deleting "{}"'.format(file))
                os.remove(file.path)
            self.forward_to(message, forward)
        if not has_files:
            raise MissingFileError('Files do not exist.')
        return messages
예제 #17
0
async def setwel(event):
    x = await eor(event, get_string("com_1"))
    r = await event.get_reply_message()
    if event.is_private:
        return await eod(x, "Please use this in a group and not PMs!", time=10)
    if r and r.media:
        wut = mediainfo(r.media)
        if wut.startswith(("pic", "gif")):
            dl = await bot.download_media(r.media)
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if r.media.document.size > 8 * 1000 * 1000:
                return await eod(x, "`Unsupported Media`")
            else:
                dl = await bot.download_media(r.media)
                variable = uf(dl)
                os.remove(dl)
                m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(r.media)
        if r.text:
            add_welcome(event.chat_id, r.message, m)
        else:
            add_welcome(event.chat_id, None, m)
        await eor(x, "`Welcome note saved`")
    elif r.text:
        add_welcome(event.chat_id, r.message, None)
        await eor(x, "`Welcome note saved`")
    else:
        await eod(x, "`Reply to message which u want to set as welcome`")
예제 #18
0
파일: filter.py 프로젝트: parth0207/Ultroid
async def af(e):
    wrd = (e.pattern_match.group(1)).lower()
    wt = await e.get_reply_message()
    chat = e.chat_id
    if not (wt and wrd):
        return await eor(e, get_string("flr_1"))
    btn = format_btn(wt.buttons) if wt.buttons else None
    if wt and wt.media:
        wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await wt.download_media()
            variable = uf(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eor(e, get_string("com_4"), time=5)
            dl = await wt.download_media()
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(wt.media)
        if wt.text:
            txt = wt.text
            if not btn:
                txt, btn = get_msg_button(wt.text)
            add_filter(int(chat), wrd, txt, m, btn)
        else:
            add_filter(int(chat), wrd, None, m, btn)
    else:
        txt = wt.text
        if not btn:
            txt, btn = get_msg_button(wt.text)
        add_filter(int(chat), wrd, txt, None, btn)
    await eor(e, get_string("flr_4").format(wrd))
async def ac(e):
    wrd = (e.pattern_match.group(1)).lower()
    wt = await e.get_reply_message()
    if not (wt and wrd):
        return await eod(
            e, "`Use this Command with Reply and word to use a command.`")
    if "/" in wrd:
        wrd = wrd.replace("/", "")
    if wt and wt.media:
        wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await e.client.download_media(wt.media)
            variable = uf(dl)
            os.remove(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eod(x, "`Unsupported Media`")
            else:
                dl = await e.client.download_media(wt.media)
                variable = uf(dl)
                os.remove(dl)
                m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(wt.media)
        if wt.text:
            add_cmd(wrd, wt.text, m)
        else:
            add_cmd(wrd, None, m)
    else:
        add_cmd(wrd, wt.text, None)
    await eor(e, f"Done Command : `/{wrd}` saved.")
예제 #20
0
파일: filter.py 프로젝트: zoldy8124/Ultroid
async def af(e):
    wrd = e.pattern_match.group(1)
    wt = await e.get_reply_message()
    chat = e.chat_id
    if not (wt and wrd):
        return await eor(
            e, "`Use this command word to set as filter and reply...`")
    try:
        rem_filter(int(chat), wrd)
    except:
        pass
    if wt and wt.media:
        wut = mediainfo(wt.media)
        if wut.startswith(("pic", "gif")):
            dl = await bot.download_media(wt.media)
            variable = uf(dl)
            m = "https://telegra.ph" + variable[0]
        elif wut == "video":
            if wt.media.document.size > 8 * 1000 * 1000:
                return await eod(x, "`Unsupported Media`")
            else:
                dl = await bot.download_media(wt.media)
                variable = uf(dl)
                os.remove(dl)
                m = "https://telegra.ph" + variable[0]
        else:
            m = pack_bot_file_id(wt.media)
        if wt.text:
            add_filter(int(chat), wrd, wt.text, m)
        else:
            add_filter(int(chat), wrd, None, m)
    else:
        add_filter(int(chat), wrd, wt.text, None)
    await eor(e, f"Done : Filter `{wrd}` Saved.")
예제 #21
0
async def tg_document_create(document: UploadFile) -> dict[str, Optional[str]]:
    doc_bytes = io.BytesIO(document.file.read())
    doc_bytes.name = document.filename

    async with await bot_init() as bot:
        msg = await bot.send_file(settings.TG_FILES_CHAT_ID, doc_bytes)

    tg_doc_id = pack_bot_file_id(msg.media)
    return {'document_id': tg_doc_id}
예제 #22
0
async def cache_message(event: EventLike):
    await utils.add_message(
        chat_id=event.chat_id,
        user_id=event.sender_id,
        message_id=event.id,
        chat_name=get_display_name(await event.get_chat()),
        user_name=get_display_name(await event.get_sender()),
        text=event.raw_text,
        file_id=pack_bot_file_id(event.media) if event.media else None)
예제 #23
0
async def _(event):
    if event.fwd_from:
        return
    msg = await event.get_reply_message()
    if msg and msg.media:
        bot_api_file_id = pack_bot_file_id(msg.media)
        add_welcome_setting(event.chat_id, msg.message, True, 0, bot_api_file_id)
        await edit_or_reply(event, "`Berhasil Menyimpan Pesan Welcome`.")
    else:
        input_str = event.text.split(None, 1)
        add_welcome_setting(event.chat_id, input_str[1], True, 0, None)
        await edit_or_reply(event, "`Berhasil Menyimpan Pesan Welcome`.")
예제 #24
0
async def _(event):
    if event.fwd_from:
        return
    msg = await event.get_reply_message()
    if msg and msg.media:
        bot_api_file_id = pack_bot_file_id(msg.media)
        add_welcome_setting(event.chat_id, msg.message, True, 0, bot_api_file_id)
        await event.edit("📝Messaggio di benvenuto, salvato. ")
    else:
        input_str = event.text.split(None, 1)
        add_welcome_setting(event.chat_id, input_str[1], True, 0, None)
        await event.edit("📝Messaggio di benvenuto, salvato. ")
예제 #25
0
파일: _info.py 프로젝트: hsein120/1
async def _(e):
    if e.reply_to_msg_id:
        await e.get_input_chat()
        R = await e.get_reply_message()
        if R.media:
            B = pack_bot_file_id(R.media)
            await e.reply(Asstid[0].form(str(e.chat_id), str(R.sender_id),
                                         B), )
        else:
            await e.reply(Asstid[1].format(str(e.chat_id), str(R.sender_id)), )
    else:
        await e.reply(Asstid[2].format(str(e.chat_id)))
예제 #26
0
async def _(event):
    if event.fwd_from:
        return
    msg = await event.get_reply_message()
    if msg and msg.media:
        bot_api_file_id = pack_bot_file_id(msg.media)
        add_welcome_setting(event.chat_id, msg.message, True, 0, bot_api_file_id)
        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, None)
        await event.edit("-  𖢞 Welcome saved - @IQTHON. ")
예제 #27
0
 def send_files(self,
                entity,
                files,
                delete_on_success=False,
                print_file_id=False,
                force_file=False,
                forward=(),
                caption=None,
                no_thumbnail=False):
     for file in files:
         file_name = os.path.basename(file)
         file_size = os.path.getsize(file)
         progress, bar = get_progress_bar('Uploading', file_name, file_size)
         name = '.'.join(file_name.split('.')[:-1])
         thumb = None
         if not no_thumbnail:
             try:
                 thumb = get_file_thumb(file)
             except ThumbError as e:
                 click.echo('{}'.format(e), err=True)
         file_caption = truncate(caption if caption is not None else name,
                                 CAPTION_MAX_LENGTH)
         try:
             if force_file:
                 attributes = [DocumentAttributeFilename(file_name)]
             else:
                 attributes = get_file_attributes(file)
             try:
                 message = self.send_file(entity,
                                          file,
                                          thumb=thumb,
                                          caption=file_caption,
                                          force_document=force_file,
                                          progress_callback=progress,
                                          attributes=attributes)
                 if hasattr(message.media, 'document'
                            ) and file_size != message.media.document.size:
                     raise TelegramUploadDataLoss(
                         'Remote document size: {} bytes (local file size: {} bytes)'
                         .format(message.media.document.size, file_size))
             finally:
                 bar.render_finish()
         finally:
             if thumb:
                 os.remove(thumb)
         if print_file_id:
             click.echo('Uploaded successfully "{}" (file_id {})'.format(
                 file, pack_bot_file_id(message.media)))
         if delete_on_success:
             click.echo('Deleting "{}"'.format(file))
             os.remove(file)
         self.forward_to(message, forward)
예제 #28
0
async def _(event):
    if event.fwd_from:
        return
    if event.reply_to_msg_id:
        chat = await event.get_input_chat()
        r_msg = await event.get_reply_message()
        if r_msg.media:
            bot_api_file_id = pack_bot_file_id(r_msg.media)
            await event.edit("Current Chat ID: `{}`\nFrom User ID: `{}`\nBot API File ID: `{}`".format(str(event.chat_id), str(r_msg.from_id), bot_api_file_id))
        else:
            await event.edit("Current Chat ID: `{}`\nFrom User ID: `{}`".format(str(event.chat_id), str(r_msg.from_id)))
    else:
        await event.edit("Current Chat ID: `{}`".format(str(event.chat_id)))
예제 #29
0
async def _(event):
    if event.fwd_from:
        return
    msg = await event.get_reply_message()
    if msg and msg.media:
        tbot_api_file_id = pack_bot_file_id(msg.media)
        add_goodbye_setting(event.chat_id, msg.message, True, 0,
                            tbot_api_file_id)
        await event.reply("Goodbye message saved. ")
    else:
        input_str = event.text.split(None, 1)
        add_goodbye_setting(event.chat_id, input_str[1], True, 0, None)
        await event.reply("Goodbye message saved. ")
예제 #30
0
async def _(event):
    if event.fwd_from:
        return
    if event.reply_to_msg_id:
        await event.get_input_chat()
        r_msg = await event.get_reply_message()
        if r_msg.media:
            bot_api_file_id = pack_bot_file_id(r_msg.media)
            await event.edit("👥 **Chat ID**: `{}`\n🙋‍♂️ **From User ID**: `{}`\n📄 **File ID**: `{}`".format(str(event.chat_id), str(r_msg.from_id), bot_api_file_id))
        else:
            await event.edit("👥 **Chat ID**: `{}`\n🙋‍♂️ **From User ID**: `{}`".format(str(event.chat_id), str(r_msg.from_id)))
    else:
        await event.edit("👥 **Chat ID**: `{}`".format(str(event.chat_id)))