コード例 #1
0
async def run(message, matches, chat_id, step):
    from_id = message['from']['id']
    if not is_group(message):
        if step == 0:
            hide_keyboard = {'hide_keyboard': True, 'selective': True}
            user_steps[from_id] = {"name": "weather", "step": 1, "data": []}
            text = '🏘نام شهر خود را وارد کنید(ترجیها انگلیسی بنویسید)'
            return [Message(chat_id).set_text(text, reply_markup=hide_keyboard)]
        elif step == 1:
            del user_steps[from_id]
            payload = {
                'q': message['text'],
                'units': "metric",
                'appid': '973e8a21e358ee9d30b47528b43a8746'  # Your Open Weather Api Code
            }
            req = await get("http://api.openweathermap.org/data/2.5/weather", params=payload)
            try:
                data = json.loads(req)
                cityName = "{}, {}".format(data["name"], data["sys"]["country"])
                tempInC = round(data["main"]["temp"], 2)
                tempInF = round((1.8 * tempInC) + 32, 2)
                icon = data["weather"][0]["icon"]
                desc = data["weather"][0]["description"]
                res = "<b>{}</b>\n<pre>🌡{}C ({}F)</pre>\n<pre>{} {}</pre>".format(cityName, tempInC, tempInF,
                                                                                   icons[icon],
                                                                                   desc)
                return [Message(chat_id).set_text(res, parse_mode="html",reply_markup=key)]
            except:
                return [Message(chat_id).set_text("ـپیدا نکردم شهرتو 😢ـ", parse_mode="Markdown",reply_markup=key)]
コード例 #2
0
ファイル: acrcloud.py プロジェクト: rayganandroid/spnta
async def run(message, matches, chat_id, step):
    from_id = message['from']['id']
    if not is_group(message):
        if step == 0:
            user_steps[from_id] = {
                "name": "voice_search",
                "step": 1,
                "data": {}
            }
            hide_keyboard = {'hide_keyboard': True, "selective": True}
            return [
                Message(chat_id).set_text(
                    "لطفا 10 الی 15 ثانیه از موزیک را بصورت ویس ارسال کنید🎼",
                    reply_to_message_id=message['message_id'],
                    reply_markup=hide_keyboard)
            ]
        elif step == 1:
            content_type, chat_type, chat_id = telepot.glance(message)
            bot.download_file(message['voice']['file_id'],
                              'tmp/{}.mp3'.format(message['from']['id']))
            req = acr.recognize_by_file(
                'tmp/{}.mp3'.format(message['from']['id']), 0)
            os.remove('tmp/{}.mp3'.format(message['from']['id']))
            jdat = json.loads(req)
            if jdat['status']['msg'] == 'No result':
                del user_steps[from_id]
                return [
                    Message(chat_id).set_text("چیزی پیدا نکردم ☹️",
                                              parse_mode="markdown",
                                              reply_markup=key)
                ]
            else:
                arc = jdat['metadata']['music'][0]
                text = '''🗣خواننده : {}
📆سال ساخت :‌ {}
🎼عنوان موزیک : {}
🎧نام آلبوم : {}
از بخش جستجوی موزیک با استفاده از نام موزیک و اسم خواننده موزیک را سرچ کنید 😉'''.format(
                    arc['artists'][0]['name'] or '', arc['release_date'] or '',
                    arc['title'] or '', arc['album']['name'] or '')
                bot.sendMessage(chat_id,
                                text,
                                reply_to_message_id=message['message_id'],
                                reply_markup=key)
                del user_steps[from_id]
    else:
        if is_mod(message):
            m = message['reply_to_message']
            if 'audio' in m:
                bot.download_file(m['audio']['file_id'],
                                  'tmp/{}.mp3'.format(message['from']['id']))
            elif 'voice' in m:
                bot.download_file(m['voice']['file_id'],
                                  'tmp/{}.mp3'.format(message['from']['id']))
            elif 'video' in m:
                bot.download_file(m['video']['file_id'],
                                  'tmp/{}.mp3'.format(message['from']['id']))
            elif 'video_note' in m:
                bot.download_file(m['video_note']['file_id'],
                                  'tmp/{}.mp3'.format(message['from']['id']))
            req = acr.recognize_by_file(
                'tmp/{}.mp3'.format(message['from']['id']), 0)
            os.remove('tmp/{}.mp3'.format(message['from']['id']))
            jdat = json.loads(req)
            if jdat['status']['msg'] == 'No result':
                return [
                    Message(chat_id).set_text("چیزی پیدا نکردم ☹️",
                                              parse_mode="markdown")
                ]
            else:
                arc = jdat['metadata']['music'][0]
                text = '''🗣خواننده : {}
            📆سال ساخت :‌ {}
            🎼عنوان موزیک : {}
            🎧نام آلبوم : {}
            از بخش جستجوی موزیک(در پیوی ربات) با استفاده از نام موزیک و اسم خواننده موزیک را سرچ کنید 😉'''.format(
                    arc['artists'][0]['name'] or '', arc['release_date'] or '',
                    arc['title'] or '', arc['album']['name'] or '')
                bot.sendMessage(chat_id,
                                text,
                                reply_to_message_id=message['message_id'])
コード例 #3
0
def run(message, matches, chat_id, step):
    if not is_group(message):
        if message['text'] == '/start':
            text = '''سلام دوست عزیزم 🤓
من سپنتا هستم. خیلی کارا بلدم مثلا دانلود عکس و فیلم از اینستاگرام , دانلود از یوتیوب , جستجوی موسیقی , تغییر کپشن یک فایل , هواشناسی , مدیریت کامل گروه تلگرامی , دانلود استوری اینستاگرام و ....

برای دریافت توضیحات و آموزش استفاده از ربات روی دکمه های زیر کلیک کن 😊
'''

            try:
                del user_steps[message['from']['id']]
            except:
                pass
            return [Message(chat_id).set_text(text, reply_markup=key)]
        if message['text'] == '📥دانلود از اینستاگرام' or message['text'] == '/start instagram':
            text = '''برای دانلود فیلم یا عکس از اینستا لطفا لینک پست را ارسال کنید🤔


        همچنین برای استفاده از حالت اینلاین بعد از نوشتن ایدی ربات لینک را قرار دهید
        مانند تصویر زیر :
        [-](irapi.ir/files/inlineinsta.png)'''
            return [Message(chat_id).set_text(text, parse_mode='Markdown', reply_markup=key)]

        if message['text'] == '📥دانلود از یوتیوب':
            text = '''🎥برای دانلود فیلم از یوتیوب کافیه فقط لینک ویدیو رو برای من ارسال کنی

        مثل :
        https://www.youtube.com/watch?v=tXQ0G7BLUAg

        همچنین میتوانید در حالت اینلاید با استفاده از ربات @vid جستجو کنید و لینک رو اینجا بفرستید'''
            return [Message(chat_id).set_text(text, disable_web_page_preview=True, reply_markup=key)]
        if message['text'] == '🤖ضد لینک و هوش مصنوعی گروه' or message['text'] == '/start antispam':
            bot.sendMessage(chat_id, 'سلام', reply_markup=key)
            text = '''🔖ربات آنتی اسپم و مدیریت گروه سپنتا با قابلیت های فراوان و سرعت فوق العاده

مناسب برای گروه های موزیک متن فروشگاهی و ....

💠قیمت ربات💠
 ماهانه : 10 هزار تومان 
سه ماهه : 20 هزار تومان

برای خرید به بخش پشتیبانی (دکمه پایینی پایینی 😬) مراجعه کنید'''
            return [Message(chat_id).set_text(text, reply_markup=key)]
        if message['text'] == '📋تغییر کپشن':
            text = '''برای تغییر کپشن عکس فیلم یا فایل بر روی آن ریپلای کنید و دستور زیر را وارد کنید

        /cap متن

        مثل تصویر زیر :

        irapi.ir/files/caption.png
        '''
            return [Message(chat_id).set_text(text, reply_markup=key)]
        if message['text'] == '👤پشتیبانی ربات ضد لینک👥' or message['text'] == '/start support':
            if r.hget('contact_user', chat_id):
                r.hset('support_conncet', chat_id, True)
                keysup = {
                    'resize_keyboard': True,
                    'keyboard': [
                                    [
                                        '❌قطع ارتباط'
                                    ]
                            ],
                    'selective': True}
                text = '''💡شما به بخش پشتیبانی متصل شدید

🔖 هر پیامی بفرستید برای ادمین های ربات ارسال خواهد شد.
⚠️ توجه :
+لطفا سوال خود را در یک پیام بفرستید تا جواب بهتری دریافت کنید
+در حین مکالمه ادب را رعایت فرمایید
+شما نمیتوانید پیامی را برای پشتیبانی فوروارد کنید


سلام کن و سوالتو بپرس :)
'''
                return [Message(chat_id).set_text(text, reply_markup=keysup)]
            else:
                r.hset('contact_w8', chat_id, True)
                keysup = {
                    'resize_keyboard': True,
                    'keyboard': [
                        [
                            {'text': 'ارسال شماره همراه📞', 'request_contact': True}
                        ]
                    ],
                    'selective': True}
                text = '''⚠️برای ارتباط با بخش پشتیبانی ما نیازمند  شماره همراه شما باشیم
لطفا برای ارسال شماره همراه بر روی دکمه زیر کلیک کنید'''
                return [Message(chat_id).set_text(text, reply_markup=keysup)]
        if message['text'] == '❌قطع ارتباط':
            r.hdel('support_conncet', chat_id)
            text = '💠 به منوی اصلی خوش آمدید :'
            return [Message(chat_id).set_text(text, reply_markup=key)]
コード例 #4
0
ファイル: youtube.py プロジェクト: rayganandroid/spnta
async def run(message, matches, chat_id, step):
    from_id = message['from']['id']
    if not is_group(message):
        if step == 0:
            video = pafy.new(matches)
            allstreams = video.allstreams
            user_steps[from_id] = {"name": "Youtube", "step": 0, "data": []}
            user_steps[from_id]['video'] = video
            show_keyboard = {'keyboard': [], 'selective': True}
            counter = 1
            for s in allstreams:
                if s.mediatype == "normal":
                    show_keyboard['keyboard'].append([
                        str(counter) + ". " + s.quality + " | " + s.extension +
                        " | " + str(sizeof_fmt(s.get_filesize()))
                    ])
                    user_steps[from_id]['data'].append(s)
                    counter += 1
                if s.mediatype == "audio":
                    show_keyboard['keyboard'].append([
                        str(counter) + ". (Audio " + s.bitrate + " ) | " +
                        s.extension + " | " + str(sizeof_fmt(s.get_filesize()))
                    ])
                    user_steps[from_id]['data'].append(s)
                    counter += 1
            user_steps[from_id]['step'] += 1
            return [
                Message(chat_id).set_text(
                    "ـاین لینک رو در چه فرمتی میخواید دریافت کنید؟ـ",
                    parse_mode="Markdown",
                    reply_to_message_id=message['message_id'],
                    reply_markup=show_keyboard)
            ]
        elif step == 1:
            try:
                video = user_steps[from_id]['video']
                best = user_steps[from_id]['data'][
                    int(message['text'].split(".")[0]) - 1]
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                await sender(
                    Message(chat_id).set_text(
                        '''ـلطفا صبر کنیدـ
        بزودی براتون فرمت دلخواه رو میفرستم 😊''',
                        parse_mode="markdown",
                        reply_to_message_id=message['message_id'],
                        reply_markup=key))
                if best.get_filesize() < 49000000:
                    if best.mediatype == "normal":
                        del user_steps[from_id]
                        filepath = "tmp/{}.{}".format(uuid.uuid4(),
                                                      best.extension)
                        await downloader(best.url, filepath)

                        return [
                            Message(chat_id).set_document(filepath,
                                                          reply_markup=key)
                        ]
                    if best.mediatype == "audio":
                        filepath = "tmp/{}.{}".format(uuid.uuid4(),
                                                      best.extension)
                        await downloader(best.url, filepath)
                        del user_steps[from_id]
                        return [
                            Message(chat_id).set_audio(filepath,
                                                       performer="@spntaBot",
                                                       title=video.title,
                                                       reply_markup=key)
                        ]
                result = "_برای دانلود روی لینک زیر کلیک کنید_\n[{}]({})".format(
                    video.title, best.url)
                del user_steps[from_id]

                return [
                    Message(chat_id).set_text(
                        result,
                        disable_web_page_preview=True,
                        reply_to_message_id=message['message_id'],
                        parse_mode="Markdown",
                        reply_markup=key)
                ]
            except Exception as e:
                print(e)
                del user_steps[from_id]
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                return [
                    Message(chat_id).set_text(
                        "هومم یک مشکلی پیش اومده نمیتونم دانلودش کنم🤔",
                        parse_mode="markdown",
                        reply_to_message_id=message['message_id'],
                        reply_markup=key)
                ]

    else:
        if step == 0:
            video = pafy.new(matches)
            allstreams = video.allstreams
            user_steps[from_id] = {"name": "Youtube", "step": 0, "data": []}
            user_steps[from_id]['video'] = video
            show_keyboard = {'keyboard': [], 'selective': True}
            counter = 1
            for s in allstreams:
                if s.mediatype == "normal":
                    show_keyboard['keyboard'].append([
                        str(counter) + ". " + s.quality + " | " + s.extension +
                        " | " + str(sizeof_fmt(s.get_filesize()))
                    ])
                    user_steps[from_id]['data'].append(s)
                    counter += 1
                if s.mediatype == "audio":
                    show_keyboard['keyboard'].append([
                        str(counter) + ". (Audio " + s.bitrate + " ) | " +
                        s.extension + " | " + str(sizeof_fmt(s.get_filesize()))
                    ])
                    user_steps[from_id]['data'].append(s)
                    counter += 1
            user_steps[from_id]['step'] += 1
            return [
                Message(chat_id).set_text(
                    "این لینک رو در چه فرمتی میخواید دریافت کنید؟",
                    parse_mode="Markdown",
                    reply_to_message_id=message['message_id'],
                    reply_markup=show_keyboard)
            ]
        elif step == 1:
            try:
                video = user_steps[from_id]['video']
                best = user_steps[from_id]['data'][
                    int(message['text'].split(".")[0]) - 1]
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                await sender(
                    Message(chat_id).set_text(
                        '''لطفا صبر کنید
        بزودی براتون فرمت دلخواه رو میفرستم 😊''',
                        parse_mode="markdown",
                        reply_to_message_id=message['message_id'],
                        reply_markup=hide_keyboard))
                if best.get_filesize() < 49000000:
                    if best.mediatype == "normal":
                        del user_steps[from_id]
                        filepath = "tmp/{}.{}".format(uuid.uuid4(),
                                                      best.extension)
                        await downloader(best.url, filepath)

                        return [
                            Message(chat_id).set_document(
                                filepath, reply_markup=hide_keyboard)
                        ]
                    if best.mediatype == "audio":
                        filepath = "tmp/{}.{}".format(uuid.uuid4(),
                                                      best.extension)
                        await downloader(best.url, filepath)
                        del user_steps[from_id]
                        return [
                            Message(chat_id).set_audio(
                                filepath,
                                performer="@spntaBot",
                                title=video.title,
                                reply_markup=hide_keyboard)
                        ]
                result = "_برای دانلود روی لینک زیر کلیک کنید_\n[{}]({})".format(
                    video.title, best.url)
                del user_steps[from_id]

                return [
                    Message(chat_id).set_text(
                        result,
                        disable_web_page_preview=True,
                        reply_to_message_id=message['message_id'],
                        parse_mode="Markdown",
                        reply_markup=hide_keyboard)
                ]
            except Exception as e:
                print(e)
                del user_steps[from_id]
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                return [
                    Message(chat_id).set_text(
                        "هومم یک مشکلی پیش اومده نمیتونم دانلودش کنم🤔",
                        parse_mode="markdown",
                        reply_to_message_id=message['message_id'],
                        reply_markup=hide_keyboard)
                ]
コード例 #5
0
async def run(message, matches, chat_id, step):
    if not is_group(message):
        from_id = message['from']['id']
        if step == 0:
            user_steps[from_id] = {"name": "Soundcloud", "step": 1, "data": {}}
            hide_keyboard = {'hide_keyboard': True, "selective": True}
            return [
                Message(chat_id).set_text(
                    "لطفا اسم موزیک یا نام خواننده را وارد کنید🤔",
                    reply_to_message_id=message['message_id'],
                    reply_markup=hide_keyboard)
            ]
        if step == 1:
            await sender(
                Message(chat_id).set_text(
                    "اومم یکم صبر کن برم جستجو کنم ببینم چی گیرم میاد 😘😬",
                    parse_mode="markdown"))
            user_steps[from_id] = {"name": "Soundcloud", "step": 2, "data": {}}
            i = 0
            show_keyboard = {'keyboard': [], "selective": True}
            ttt = message['text'].replace(" ", "+")
            for song in await search(ttt):
                title, link, cover = song[0], song[1], song[2]
                user_steps[from_id]['data'][title] = link
                show_keyboard['keyboard'].append([title])
                i += 1
                if i == 20:
                    break
            if len(show_keyboard['keyboard']) in [0, 1]:
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                del user_steps[from_id]
                return [
                    Message(chat_id).set_text(
                        "چیزی نیافتم 😣",
                        reply_to_message_id=message['message_id'],
                        reply_markup=hide_keyboard,
                        parse_mode="markdown")
                ]
            return [
                Message(chat_id).set_text(
                    "یکی از اینارو انتخاب کن 🙃👇🏻",
                    reply_to_message_id=message['message_id'],
                    reply_markup=show_keyboard)
            ]
        elif step == 2:
            try:

                await sender(
                    Message(chat_id).set_text(
                        "خب یکم صبر کن تا موزیکو دانلود کنم و برات بفرستم 🤓",
                        reply_to_message_id=message['message_id'],
                        reply_markup=key,
                        parse_mode="markdown"))
                await downloader(
                    await
                    getfile(user_steps[from_id]['data'][message['text']]),
                    "tmp/{}.mp3".format(message['text']))
                del user_steps[from_id]
                bot.sendAudio(chat_id,
                              open("tmp/{}.mp3".format(message['text']), 'rb'),
                              title=message['text'],
                              performer="@SpntaBot")
                os.remove("tmp/{}.mp3".format(message['text']))
            except Exception as e:
                del user_steps[from_id]
                return [
                    Message(chat_id).set_text("داری اشتباه میزنی 😕",
                                              parse_mode="markdown")
                ]
コード例 #6
0
ファイル: digikala.py プロジェクト: rayganandroid/spnta
async def run(message, matches, chat_id, step):
    if not is_group(message):
        return [Message(chat_id).set_text("test", parse_mode="markdown")]
コード例 #7
0
ファイル: googleplay.py プロジェクト: rayganandroid/spnta
async def run(message, matches, chat_id, step):
    if not is_group(message):
        from_id = message['from']['id']
        if step == 0:
            if message['text'] == '📱جستجوی برنامه' or message[
                    'text'] == '/start google_play':
                user_steps[from_id] = {
                    "name": "googleplay",
                    "step": 1,
                    "docid": {},
                    "image": {},
                    "author": {},
                    "size": {}
                }
                hide_keyboard = {'hide_keyboard': True, "selective": True}
                return [
                    Message(chat_id).set_text(
                        "لطفا نام برنامه یا بازی خود را ارسال کنید",
                        reply_to_message_id=message['message_id'],
                        reply_markup=hide_keyboard)
                ]
            elif matches[0] == 'dlapp':
                app = matches[1].replace('_', '.')
                getfile(app)
                bot.sendDocument(chat_id,
                                 open(app + '.apk', 'rb'),
                                 caption='{}\n@spntaBot'.format(app))
                os.remove(app + '.apk')
        if step == 1:
            await sender(
                Message(chat_id).set_text(
                    "اومم یکم صبر کن برم جستجو کنم ببینم چی گیرم میاد 😘😬",
                    parse_mode="markdown"))
            user_steps[from_id] = {
                "name": "googleplay",
                "step": 2,
                "docid": {},
                "image": {},
                "author": {},
                "size": {}
            }
            i = 0
            show_keyboard = {'keyboard': [], "selective": True}
            for gplay in await search(message['text']):
                title, docid, author, image, size = gplay[0], gplay[1], gplay[
                    2], gplay[3], gplay[4]
                user_steps[from_id]['docid'][title] = docid
                user_steps[from_id]['image'][title] = image
                user_steps[from_id]['size'][title] = size
                user_steps[from_id]['author'][title] = author

                show_keyboard['keyboard'].append([title])
                i += 1
                if i == 20:
                    break
            if len(show_keyboard['keyboard']) in [0, 1]:
                hide_keyboard = {'hide_keyboard': True, 'selective': True}
                del user_steps[from_id]
                return [
                    Message(chat_id).set_text(
                        "چیزی نیافتم 😣",
                        reply_to_message_id=message['message_id'],
                        reply_markup=key,
                        parse_mode="markdown")
                ]
            return [
                Message(chat_id).set_text(
                    "یکی از اینارو انتخاب کن 🙃👇🏻",
                    reply_to_message_id=message['message_id'],
                    reply_markup=show_keyboard)
            ]
        elif step == 2:
            try:

                await sender(
                    Message(chat_id).set_text(
                        "خب یکم صبر کن تا برنامه دانلود کنم و برات بفرستم 🤓",
                        reply_to_message_id=message['message_id'],
                        reply_markup=key,
                        parse_mode="markdown"))

                getfile(user_steps[from_id]['docid'][message['text']])
                size = int(user_steps[from_id]['size'][message['text']] /
                           1024 / 1024)
                cap = '''🔖نام : {}
👨‍💻سازنده : {}
▫️حجم : {} مگابایت
'''.format(message['text'], user_steps[from_id]['author'][message['text']],
                size)
                bot.sendPhoto(chat_id,
                              user_steps[from_id]['image'][message['text']],
                              caption=cap)
                bot.sendDocument(
                    chat_id,
                    open(
                        user_steps[from_id]['docid'][message['text']] + '.apk',
                        'rb'),
                    caption='{}\n@spntaBot'.format(message['text']),
                    reply_markup=key)
                os.remove(user_steps[from_id]['docid'][message['text']] +
                          '.apk')
                del user_steps[from_id]
            except Exception as e:
                print(e)
                del user_steps[from_id]
                return [
                    Message(chat_id).set_text("داری اشتباه میزنی 😕",
                                              parse_mode="markdown",
                                              reply_markup=key)
                ]