def Golos(us, to, url): try: #из mp3 в англ текст urlretrieve(url, '1.mp3') sound = AudioSegment.from_mp3("/home/prazd/1.mp3") sound.export("/home/prazd/test.wav", format="wav") r = sr.Recognizer() with sr.AudioFile('test.wav') as s: audio = r.record(s) command = r.recognize_google(audio) # Перевод strok = None trans = Translator() translate = trans.translate(command, dest='ru') translate = str(translate) translate = translate.split(',') for i in range(len(translate)): if 'text' in translate[i]: strok = translate[i].replace('text=', '') w.write_msg( us, to, 'Вы сказали: ' + command + '\n' + 'Перевод на русский:' + strok) except: w.write_msg(us, to, 'Не получилось') finally: os.remove('/home/prazd/test.wav') os.remove('/home/prazd/1.mp3')
def processing(): token = os.environ(['token']) confirmation_token = 'alexokdaPrazd' #Распаковываем json из пришедшего POST-запроса data = json.loads(request.data) #Вконтакте в своих запросах всегда отправляет поле типа if 'type' not in data.keys(): return 'not vk' if data['type'] == 'confirmation': return confirmation_token elif data['type'] == 'message_new': user_id = data['object']['user_id'] if data['object']['body'] == 'как сам?': w.write_msg(user_id, token, 'хорошо') elif data['object']['body'] == 'USD': fun.USD(user_id, token) elif data['object']['body'] == 'EUR': fun.EUR(user_id, token) elif "aud" in data['object']['body']: audio = data['object']['body'].replace("aud ", "") fun.Audio(user_id, token, audio) elif data['object']['body'] in fun.chi: ran = random.choice([0, 1, 2, 3]) w.write_msg(user_id, token, fun.bhi[ran]) elif '!' in data['object']['body']: m = data['object']['body'] place = m.replace('!', '') fun.Weather(user_id, token, place) elif data['object']['attachments'][0]['doc'][ 'title'] == 'audio_msg.opus': URL = data['object']['attachments'][0]['doc']['preview'][ 'audio_msg']['link_mp3'] fun.Golos(user_id, token, URL) # Сообщение о том, что обработка прошла успешно return 'ok'
def EUR(us, to): url = 'http://www.cbr.ru/scripts/XML_daily.asp' site = requests.get(url).text soup = bs(site, 'lxml') f = soup.find_all('valute')[11].find('value') eur = str(f).replace('<value>', '') eur = eur.replace('</value>', '') w.write_msg(us, to, eur)
def Audio(us, to, info): spis = info.split(",") tts = gt(text=spis[1], lang=spis[0]) tts.save("audio.ogg") vk2 = vk_api.VkApi(login=os.environ(['vkLogin']), password=os.environ(['vkPassword'])) o = {"type": "audio_message"} z = vk2.method('docs.getMessagesUploadServer', o) url = z['upload_url'] files = {"file": open("/home/prazd/audio.ogg", "rb")} r = requests.post(url, files=files) l = json.loads(r.text) save = vk2.method("docs.save", {"file": l["file"]}) we = save[0]["preview"]["audio_msg"]["link_mp3"] w.write_msg(us, to, str(we)) os.remove('/home/prazd/audio.ogg')
def itsf(us, to, url): urlretrieve(url, 'PHOTO.jpg') img = Image.open('/home/prazd/PHOTO.jpg') ttext = im(img) os.remove('/home/prazd/PHOTO.jpg') w.write_msg(us, to, ttext)
def itsd(us, to, url): urlretrieve(url, 'check.jpg') doc = Image.open('/home/prazd/check.jpg') text = im(doc) os.remove('/home/prazd/check.jpg') w.write_msg(us, to, text)
def Weather(us, to, info): url = 'http://api.openweathermap.org/data/2.5/weather?q=' + info + '&appid=99e787ee0d65dd2aafc27050db21177b' site = requests.get(url).text js = json.loads(site) weather = int(js['main']['temp']) - 273 w.write_msg(us, to, 'Погода в указаном городе:' + str(weather) + '\xB0С')