node-red-contrib-tts-ultimate 1.0.53 → 1.0.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.paypal.me/techtoday)
|
|
4
4
|
|
|
5
|
+
<p>
|
|
6
|
+
<b>Version 1.0.55</b> March 2023<br/>
|
|
7
|
+
- Dedupes the players having the same IP, in the player's list.<br/>
|
|
8
|
+
</p>
|
|
9
|
+
<p>
|
|
10
|
+
<b>Version 1.0.54</b> February 2023<br/>
|
|
11
|
+
- OWNFILE: there was a 60 secs timeout, waiting for end play. Now it has been incfeased to 10 minutes.<br/>
|
|
12
|
+
</p>
|
|
5
13
|
<p>
|
|
6
14
|
<b>Version 1.0.53</b> February 2023<br/>
|
|
7
15
|
- Now in the list of sonos player, you can see the single speakers belonging to a group as well.<br/>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red-contrib-tts-ultimate",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.55",
|
|
4
4
|
"description": "Transforms the text in speech and hear it using Sonos player or generate an audio file to be used with third parties nodes. Works with voices from Amazon, Google (without credentials as well), Microsoft TTS Azure, or your own voice. You can also only create a TTS file to be read by third party nodes. Update of the popular SonosPollyTTS node.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -259,13 +259,14 @@ module.exports = function (RED) {
|
|
|
259
259
|
//RED.log.warn('Groups ' + JSON.stringify(groups, null, 2))
|
|
260
260
|
for (let index = 0; index < groups.length; index++) {
|
|
261
261
|
const element = groups[index];
|
|
262
|
-
jListGroups.push({ name: element.Name, host: element.host })
|
|
262
|
+
if (jListGroups.find(x => x.host === element.host) === undefined) jListGroups.push({ name: element.Name, host: element.host })
|
|
263
263
|
// 02/03/2023 If there are speakers grouped, read the single speaker
|
|
264
264
|
if (element.hasOwnProperty("ZoneGroupMember") && element.ZoneGroupMember.length > 0) {
|
|
265
265
|
try {
|
|
266
266
|
for (let i = 0; i < element.ZoneGroupMember.length; i++) {
|
|
267
267
|
const single = element.ZoneGroupMember[i];
|
|
268
|
-
|
|
268
|
+
let sHost = single.Location.split("//")[1].split(":")[0]
|
|
269
|
+
if (jListGroups.find(x => x.host === sHost) === undefined) jListGroups.push({ name: single.ZoneName, host: sHost }) // Get Name and IP from Location field
|
|
269
270
|
}
|
|
270
271
|
} catch (error) {
|
|
271
272
|
}
|
|
@@ -739,7 +739,7 @@ module.exports = function (RED) {
|
|
|
739
739
|
state = "";
|
|
740
740
|
node.timerbTimeOutPlay = setTimeout(() => {
|
|
741
741
|
node.bTimeOutPlay = true;
|
|
742
|
-
}, 60000);
|
|
742
|
+
}, 60000*10); // 10 minutes timeout
|
|
743
743
|
while (state !== "stopped" && !node.bTimeOutPlay) {
|
|
744
744
|
try {
|
|
745
745
|
state = await getCurrentStateSync();
|