예제 #1
0
    async def tts(self, ctx, *args):
        if len(args) == 0:
            await self.bot.say("말할 내용을 추가로 입력해주세용")
            return
        ttsText = " ".join([arg for arg in args])
        encText = urllib.parse.quote(ttsText)
        data = "speaker=jinho&speed=0&text=" + encText
        url = "https://openapi.naver.com/v1/voice/tts.bin"

        http = HTTPHandler()
        response = http.post(url, self.naverClient, data)
        rescode = response.getcode()
        if (rescode == 200):
            response_body = response.read()
            millis = int(time.time() * 1000)
            fileDir = './temp/{}_{}.mp3'.format(ctx.message.server.id, millis)
            with open(fileDir, 'wb') as f:
                f.write(response_body)
            await Sound.instance.play(ctx, MusicType.TTS, fileDir, ttsText)
        else:
            self.bot.say("음성 다운로드에 실패했어용")
예제 #2
0
    async def translate(self, lang, url, text, channel):
        self.bot.send_typing(channel)
        translateLangToEn = {"영어": "en", "중국어": "zh-CN", "일본어": "ja"}
        translateFlag = {"영어": '🇺🇸', "중국어": '🇨🇳', "일본어": '🇯🇵'}

        encText = urllib.parse.quote(text)
        data = "source=ko&target={}&text=".format(
            translateLangToEn[lang]) + encText

        http = HTTPHandler()
        response = http.post(url, self.naverClient, data)
        rescode = response.getcode()
        if (rescode == 200):
            response_body = response.read().decode("utf-8")
            response_body = json.loads(response_body)
            em = discord.Embed(description="{} {}".format(
                translateFlag[lang],
                response_body["message"]["result"]["translatedText"]),
                               colour=0xDEADBF)
            await self.bot.send_message(channel, embed=em)
        else:
            await self.bot.say("오류가 발생했어용\n{}".format(
                response.read().decode("utf-8")))