Comparing version 0.1.1 to 0.2.0
@@ -6,2 +6,3 @@ const request = require('request'); | ||
const fs = require('fs'); | ||
const MultiStream = require('multistream'); | ||
@@ -96,2 +97,42 @@ function gTTS(text, lang, debug) { | ||
gTTS.prototype.getHeader = function () { | ||
return { | ||
"Referer" : "http://translate.google.com/", | ||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" | ||
}; | ||
} | ||
gTTS.prototype.getPayload = function (part, idx) { | ||
var self = this; | ||
return { | ||
'ie' : 'UTF-8', | ||
'q' : part, | ||
'tl' : self.lang, | ||
'total' : self.text_parts.length, | ||
'idx' : idx, | ||
'client' : 'tw-ob', | ||
'textlen' : part.length, | ||
'tk' : self.token(part) | ||
}; | ||
} | ||
gTTS.prototype.stream = function () { | ||
var self = this; | ||
return MultiStream(this.text_parts.map(function (part, idx) { | ||
var headers = self.getHeader(); | ||
var payload = self.getPayload(part, idx); | ||
if (self.debug) { | ||
console.log(payload); | ||
} | ||
return request({ | ||
uri: self.GOOGLE_TTS_URL, | ||
headers: headers, | ||
qs: payload, | ||
method: 'GET' | ||
}); | ||
})); | ||
} | ||
gTTS.prototype.save = function (save_file, callback) { | ||
@@ -101,16 +142,4 @@ var self = this; | ||
var idx = self.text_parts.indexOf(part); | ||
var headers = { | ||
"Referer" : "http://translate.google.com/", | ||
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36" | ||
}; | ||
var payload = { | ||
'ie' : 'UTF-8', | ||
'q' : part, | ||
'tl' : self.lang, | ||
'total' : self.text_parts.length, | ||
'idx' : idx, | ||
'client' : 'tw-ob', | ||
'textlen' : part.length, | ||
'tk' : self.token(part) | ||
}; | ||
var headers = self.getHeader(); | ||
var payload = self.getPayload(part, idx); | ||
@@ -117,0 +146,0 @@ if (self.debug) { |
{ | ||
"name": "gtts", | ||
"version": "0.1.1", | ||
"version": "0.2.0", | ||
"description": "a ported version of gTTS python library which is a interface to Google's Text to Speech API", | ||
@@ -17,4 +17,6 @@ "main": "index.js", | ||
"escape-string-regexp": "^1.0.4", | ||
"request": "^2.67.0" | ||
"request": "^2.67.0", | ||
"yargs": "^4.7.1", | ||
"multistream": "^2.0.5" | ||
} | ||
} |
@@ -16,2 +16,4 @@ gTTS.js | ||
### Use save method | ||
``` | ||
@@ -26,2 +28,20 @@ const gTTS = require('gtts'); | ||
### Use stream method | ||
``` | ||
const express = require('express'); | ||
const app = express(); | ||
const Gtts = require('gtts'); | ||
app.get('/hear', function (req, res) { | ||
const gtts = new Gtts(req.query.text, req.query.lang); | ||
gtts.stream().pipe(res); | ||
}); | ||
app.listen(3000, function () { | ||
console.log('Open url to hear Hallelujah http://localhost:3000/hear?lang=en&text=Hallelujah'); | ||
}); | ||
``` | ||
## Command line utility | ||
@@ -86,1 +106,6 @@ | ||
* 'cy' : 'Welsh' | ||
## Contributors | ||
* Eduardo San Martin Morote (posva) | ||
* Long Nguyen (olragon) |
10470
232
108
5
+ Addedmultistream@^2.0.5
+ Addedyargs@^4.7.1
+ Addedansi-regex@2.1.1(transitive)
+ Addedcamelcase@3.0.0(transitive)
+ Addedcliui@3.2.0(transitive)
+ Addedcode-point-at@1.1.0(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addeddecamelize@1.2.0(transitive)
+ Addederror-ex@1.3.2(transitive)
+ Addedfind-up@1.1.2(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-caller-file@1.0.3(transitive)
+ Addedgraceful-fs@4.2.11(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedhosted-git-info@2.8.9(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedinvert-kv@1.0.0(transitive)
+ Addedis-arrayish@0.2.1(transitive)
+ Addedis-core-module@2.16.1(transitive)
+ Addedis-fullwidth-code-point@1.0.0(transitive)
+ Addedis-utf8@0.2.1(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedlcid@1.0.0(transitive)
+ Addedload-json-file@1.1.0(transitive)
+ Addedlodash.assign@4.2.0(transitive)
+ Addedmultistream@2.1.1(transitive)
+ Addednormalize-package-data@2.5.0(transitive)
+ Addednumber-is-nan@1.0.1(transitive)
+ Addedos-locale@1.4.0(transitive)
+ Addedparse-json@2.2.0(transitive)
+ Addedpath-exists@2.1.0(transitive)
+ Addedpath-parse@1.0.7(transitive)
+ Addedpath-type@1.1.0(transitive)
+ Addedpify@2.3.0(transitive)
+ Addedpinkie@2.0.4(transitive)
+ Addedpinkie-promise@2.0.1(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedread-pkg@1.1.0(transitive)
+ Addedread-pkg-up@1.0.1(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedrequire-directory@2.1.1(transitive)
+ Addedrequire-main-filename@1.0.1(transitive)
+ Addedresolve@1.22.10(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedsemver@5.7.2(transitive)
+ Addedset-blocking@2.0.0(transitive)
+ Addedspdx-correct@3.2.0(transitive)
+ Addedspdx-exceptions@2.5.0(transitive)
+ Addedspdx-expression-parse@3.0.1(transitive)
+ Addedspdx-license-ids@3.0.21(transitive)
+ Addedstring-width@1.0.2(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedstrip-ansi@3.0.1(transitive)
+ Addedstrip-bom@2.0.0(transitive)
+ Addedsupports-preserve-symlinks-flag@1.0.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedvalidate-npm-package-license@3.0.4(transitive)
+ Addedwhich-module@1.0.0(transitive)
+ Addedwindow-size@0.2.0(transitive)
+ Addedwrap-ansi@2.1.0(transitive)
+ Addedy18n@3.2.2(transitive)
+ Addedyargs@4.8.1(transitive)
+ Addedyargs-parser@2.4.1(transitive)
- Removedsafe-buffer@5.2.1(transitive)