| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import requests
- translate_url = 'http://www.r2d2translator.com/composeSongD2R2.php'
- file_url = 'http://www.r2d2translator.com/audio/%s.MP3'
- class ReqError(RuntimeError):
- pass
- def encode(msg):
- e = ''
- for i, c in enumerate(msg):
- if i:
- e += '!'
- if c == ' ':
- e += 'silence'
- else:
- e += str(1 + (ord(c) + 60) % 80)
- return e
- def get_audio_url(msg):
- enc = encode(msg)
- vol = '!'.join('1' * len(enc))
- req = requests.post(translate_url, data={'volumes': vol, 'sons': enc})
- if req.status_code != 200:
- raise ReqError()
- res = req.text
- if not res.startswith(' &cle='):
- raise ReqError()
- fileid = res[6:]
- return file_url % fileid
- def request_audio(msg):
- req = requests.get(get_audio_url(msg), stream=True)
- if req.status_code != 200:
- raise ReqError()
- return req
- def read_request(req):
- return req.raw.read(decode_content=False)
- def save_request(req, path):
- with file(path, 'wb') as f:
- for chunk in req.iter_content(1024):
- f.write(chunk)
- def get_audio(msg):
- return read_request(request_audio(msg))
- def save_audio(msg, path):
- save_request(request_audio(msg), path)
|