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)]
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'])
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)]
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) ]
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") ]
async def run(message, matches, chat_id, step): if not is_group(message): return [Message(chat_id).set_text("test", parse_mode="markdown")]
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) ]