n8n-nodes-bookoly 1.0.10 → 1.0.12
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/README.md +9 -0
- package/dist/credentials/BookolyApi.credentials.js +2 -2
- package/dist/credentials/BookolyApi.credentials.js.map +1 -1
- package/dist/nodes/Bookoly/Bookoly.node.d.ts +1 -1
- package/dist/nodes/Bookoly/Bookoly.node.js +4 -3
- package/dist/nodes/Bookoly/Bookoly.node.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/file/generateSubtitleFile.js +4 -0
- package/dist/nodes/Bookoly/handlers/file/generateSubtitleFile.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/sound/combineSounds.js +1 -1
- package/dist/nodes/Bookoly/handlers/sound/combineSounds.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/speechDialogue/createSpeechDialogue.js +1 -1
- package/dist/nodes/Bookoly/handlers/speechDialogue/createSpeechDialogue.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/video/addAudioWithSubtitlesToVideo.js +4 -0
- package/dist/nodes/Bookoly/handlers/video/addAudioWithSubtitlesToVideo.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/video/addSubtitlesToVideo.js +4 -0
- package/dist/nodes/Bookoly/handlers/video/addSubtitlesToVideo.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/video/createSlideshow.js +1 -1
- package/dist/nodes/Bookoly/handlers/video/createSlideshow.js.map +1 -1
- package/dist/nodes/Bookoly/handlers/video/generateVideo.js +45 -27
- package/dist/nodes/Bookoly/handlers/video/generateVideo.js.map +1 -1
- package/dist/nodes/Bookoly/helpers/apiClient.d.ts +2 -2
- package/dist/nodes/Bookoly/helpers/apiClient.js +3 -2
- package/dist/nodes/Bookoly/helpers/apiClient.js.map +1 -1
- package/dist/nodes/Bookoly/resources/commonParams.d.ts +20 -1
- package/dist/nodes/Bookoly/resources/commonParams.js +81 -26
- package/dist/nodes/Bookoly/resources/commonParams.js.map +1 -1
- package/dist/nodes/Bookoly/resources/file.js +1 -1
- package/dist/nodes/Bookoly/resources/file.js.map +1 -1
- package/dist/nodes/Bookoly/resources/sound.js +6 -6
- package/dist/nodes/Bookoly/resources/sound.js.map +1 -1
- package/dist/nodes/Bookoly/resources/speech.js +1 -1
- package/dist/nodes/Bookoly/resources/speech.js.map +1 -1
- package/dist/nodes/Bookoly/resources/speechDialogue.js +2 -2
- package/dist/nodes/Bookoly/resources/speechDialogue.js.map +1 -1
- package/dist/nodes/Bookoly/resources/static.js +10 -9
- package/dist/nodes/Bookoly/resources/static.js.map +1 -1
- package/dist/nodes/Bookoly/resources/subtitleParams.js +70 -0
- package/dist/nodes/Bookoly/resources/subtitleParams.js.map +1 -1
- package/dist/nodes/Bookoly/resources/transcription.js +4 -4
- package/dist/nodes/Bookoly/resources/transcription.js.map +1 -1
- package/dist/nodes/Bookoly/resources/video.js +4 -3
- package/dist/nodes/Bookoly/resources/video.js.map +1 -1
- package/dist/nodes/Bookoly/resources/videoParams/audio.d.ts +1 -7
- package/dist/nodes/Bookoly/resources/videoParams/audio.js +7 -17
- package/dist/nodes/Bookoly/resources/videoParams/audio.js.map +1 -1
- package/dist/nodes/Bookoly/resources/videoParams/scenes.js +8 -3
- package/dist/nodes/Bookoly/resources/videoParams/scenes.js.map +1 -1
- package/dist/nodes/Bookoly/types/index.d.ts +20 -0
- package/dist/nodes/Bookoly/types/index.js +25 -1
- package/dist/nodes/Bookoly/types/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -94,6 +94,15 @@ If you’re new to n8n, check the [Try it out](https://docs.n8n.io/try-it-out/)
|
|
|
94
94
|
|
|
95
95
|
## Version history
|
|
96
96
|
|
|
97
|
+
1.0.12
|
|
98
|
+
* Minor performance improvements and big fixes
|
|
99
|
+
|
|
100
|
+
1.0.11
|
|
101
|
+
* Improved the 'Generate a Video' node for more flexibility.
|
|
102
|
+
* Added punctuation and text case options for subtitles.
|
|
103
|
+
* Added mute option for scenes.
|
|
104
|
+
* Added transitions that can be used between scenes.
|
|
105
|
+
|
|
97
106
|
1.0.10
|
|
98
107
|
* Handle errors with continueOnFail
|
|
99
108
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BookolyApi = void 0;
|
|
4
|
-
const Bookoly_node_1 = require("../nodes/Bookoly/Bookoly.node");
|
|
5
4
|
const types_1 = require("../nodes/Bookoly/types");
|
|
5
|
+
const Bookoly_node_1 = require("../nodes/Bookoly/Bookoly.node");
|
|
6
6
|
class BookolyApi {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.name = 'bookolyApi';
|
|
@@ -31,7 +31,7 @@ class BookolyApi {
|
|
|
31
31
|
};
|
|
32
32
|
this.test = {
|
|
33
33
|
request: {
|
|
34
|
-
baseURL: Bookoly_node_1.
|
|
34
|
+
baseURL: `${Bookoly_node_1.API_BASE_URL}/${types_1.ApiVersion.V1}`,
|
|
35
35
|
url: types_1.ApiEndpoints.AUTH_CHECK,
|
|
36
36
|
method: types_1.HttpMethod.POST,
|
|
37
37
|
headers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookolyApi.credentials.js","sourceRoot":"","sources":["../../credentials/BookolyApi.credentials.ts"],"names":[],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"BookolyApi.credentials.js","sourceRoot":"","sources":["../../credentials/BookolyApi.credentials.ts"],"names":[],"mappings":";;;AAMA,kDAA8E;AAC9E,gEAA6D;AAE7D,MAAa,UAAU;IAAvB;QACC,SAAI,GAAW,YAAY,CAAC;QAC5B,gBAAW,GAAW,aAAa,CAAC;QACpC,qBAAgB,GAAW,uCAAuC,CAAC;QACnE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE;oBACZ,QAAQ,EAAE,IAAI;iBACd;aACD;SACD,CAAC;QACF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,mCAAmC;oBAClD,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;iBAC1B;aACD;SACD,CAAC;QACF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,GAAG,2BAAY,IAAI,kBAAU,CAAC,EAAE,EAAE;gBAC3C,GAAG,EAAE,oBAAY,CAAC,UAAU;gBAC5B,MAAM,EAAE,kBAAU,CAAC,IAAI;gBACvB,OAAO,EAAE;oBACR,aAAa,EAAE,mCAAmC;oBAClD,cAAc,EAAE,kBAAkB;oBAClC,MAAM,EAAE,kBAAkB;iBAC1B;aACD;SACD,CAAC;IACH,CAAC;CAAA;AArCD,gCAqCC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { INodeExecutionData, INodeType, INodeTypeDescription, IExecuteFunctions } from 'n8n-workflow';
|
|
2
2
|
export declare const APP_BASE_URL = "https://bookoly.com/app";
|
|
3
|
-
export declare const
|
|
3
|
+
export declare const API_BASE_URL = "https://bookoly.com/api";
|
|
4
4
|
export declare class Bookoly implements INodeType {
|
|
5
5
|
description: INodeTypeDescription;
|
|
6
6
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Bookoly = exports.
|
|
3
|
+
exports.Bookoly = exports.API_BASE_URL = exports.APP_BASE_URL = void 0;
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
5
|
const resources_1 = require("./resources");
|
|
6
6
|
const handlers_1 = require("./handlers");
|
|
7
|
+
const types_1 = require("./types");
|
|
7
8
|
exports.APP_BASE_URL = 'https://bookoly.com/app';
|
|
8
|
-
exports.
|
|
9
|
+
exports.API_BASE_URL = 'https://bookoly.com/api';
|
|
9
10
|
class Bookoly {
|
|
10
11
|
constructor() {
|
|
11
12
|
this.description = {
|
|
@@ -23,7 +24,7 @@ class Bookoly {
|
|
|
23
24
|
inputs: ["main"],
|
|
24
25
|
outputs: ["main"],
|
|
25
26
|
requestDefaults: {
|
|
26
|
-
baseURL: exports.
|
|
27
|
+
baseURL: `${exports.API_BASE_URL}/${types_1.ApiVersion.V1}`,
|
|
27
28
|
headers: {
|
|
28
29
|
Accept: 'application/json',
|
|
29
30
|
'Content-Type': 'application/json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bookoly.node.js","sourceRoot":"","sources":["../../../nodes/Bookoly/Bookoly.node.ts"],"names":[],"mappings":";;;AAAA,+CAQsB;AAEtB,2CAAmD;AACnD,yCAAsC;
|
|
1
|
+
{"version":3,"file":"Bookoly.node.js","sourceRoot":"","sources":["../../../nodes/Bookoly/Bookoly.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ async function generateSubtitleFile(ctx, itemIndex) {
|
|
|
17
17
|
const outline_width = ctx.getNodeParameter('outline_width', itemIndex);
|
|
18
18
|
const position = ctx.getNodeParameter('position', itemIndex);
|
|
19
19
|
const ltr = ctx.getNodeParameter('ltr', itemIndex);
|
|
20
|
+
const punctuation = ctx.getNodeParameter('punctuation', itemIndex, true);
|
|
21
|
+
const text_case = ctx.getNodeParameter('text_base', itemIndex, types_1.TextCase.DEFAULT);
|
|
20
22
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
21
23
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
22
24
|
const requestBody = {
|
|
@@ -35,6 +37,8 @@ async function generateSubtitleFile(ctx, itemIndex) {
|
|
|
35
37
|
outline_width,
|
|
36
38
|
position,
|
|
37
39
|
ltr,
|
|
40
|
+
punctuation,
|
|
41
|
+
text_case,
|
|
38
42
|
},
|
|
39
43
|
};
|
|
40
44
|
return await (0, apiClient_1.bookolyApiRequest)(ctx, types_1.HttpMethod.POST, types_1.ApiEndpoints.GENERATE_SUBTITLE_FILE, requestBody, wait);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSubtitleFile.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/file/generateSubtitleFile.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"generateSubtitleFile.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/file/generateSubtitleFile.ts"],"names":[],"mappings":";;AAIA,oDAkDC;AArDD,uDAA4D;AAC5D,uCAAmF;AAE5E,KAAK,UAAU,oBAAoB,CACzC,GAAsB,EACtB,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,wBAAgB,CAAC,GAAG,CAAW,CAAC;IACrF,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAW,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC;IAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;IAC3E,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAW,CAAC;IACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAY,CAAC;IAC9D,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAW,CAAC;IAC3F,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAEjF,MAAM,WAAW,GAAG;QACnB,QAAQ,EAAE;YACT,IAAI;YACJ,IAAI;YACJ,GAAG;YACH,WAAW;YACX,KAAK;YACL,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa;YACb,QAAQ;YACR,GAAG;YACH,WAAW;YACX,SAAS;SACT;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,sBAAsB,EACnC,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -6,7 +6,7 @@ const types_1 = require("../../types");
|
|
|
6
6
|
const parseJson_1 = require("../video/parseJson");
|
|
7
7
|
async function combineSounds(ctx, itemIndex) {
|
|
8
8
|
const name = ctx.getNodeParameter('name', itemIndex);
|
|
9
|
-
const segments = (0, parseJson_1.parseJson)(ctx.getNodeParameter('segments', itemIndex), 'Sounds (JSON)');
|
|
9
|
+
const segments = (0, parseJson_1.parseJson)(ctx.getNodeParameter('segments', itemIndex), 'Sound - Sounds (JSON)');
|
|
10
10
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
11
11
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
12
12
|
const requestBody = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combineSounds.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/sound/combineSounds.ts"],"names":[],"mappings":";;AAKA,sCAwBC;AA5BD,uDAA4D;AAC5D,uCAAuD;AACvD,kDAA+C;AAExC,KAAK,UAAU,aAAa,CAAC,GAAsB,EAAE,SAAiB;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAW,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,qBAAS,EACzB,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,EACrD,
|
|
1
|
+
{"version":3,"file":"combineSounds.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/sound/combineSounds.ts"],"names":[],"mappings":";;AAKA,sCAwBC;AA5BD,uDAA4D;AAC5D,uCAAuD;AACvD,kDAA+C;AAExC,KAAK,UAAU,aAAa,CAAC,GAAsB,EAAE,SAAiB;IAC5E,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAW,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,qBAAS,EACzB,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,EACrD,uBAAuB,CACvB,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAEjF,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI;YACJ,QAAQ;YACR,WAAW;SACX;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,cAAc,EAC3B,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -6,7 +6,7 @@ const types_1 = require("../../types");
|
|
|
6
6
|
const parseJson_1 = require("../video/parseJson");
|
|
7
7
|
async function createSpeechDialogue(ctx, itemIndex) {
|
|
8
8
|
const name = ctx.getNodeParameter('name', itemIndex);
|
|
9
|
-
const segments = (0, parseJson_1.parseJson)(ctx.getNodeParameter('segments', itemIndex), 'Segments (JSON)');
|
|
9
|
+
const segments = (0, parseJson_1.parseJson)(ctx.getNodeParameter('segments', itemIndex), 'Speech Dialogue - Segments (JSON)');
|
|
10
10
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
11
11
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
12
12
|
const requestBody = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSpeechDialogue.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/speechDialogue/createSpeechDialogue.ts"],"names":[],"mappings":";;AAKA,oDA2BC;AA/BD,uDAA4D;AAC5D,uCAAuD;AACvD,kDAA+C;AAExC,KAAK,UAAU,oBAAoB,CACzC,GAAsB,EACtB,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAW,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,qBAAS,EACzB,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,EACrD,
|
|
1
|
+
{"version":3,"file":"createSpeechDialogue.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/speechDialogue/createSpeechDialogue.ts"],"names":[],"mappings":";;AAKA,oDA2BC;AA/BD,uDAA4D;AAC5D,uCAAuD;AACvD,kDAA+C;AAExC,KAAK,UAAU,oBAAoB,CACzC,GAAsB,EACtB,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAW,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,qBAAS,EACzB,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,EACrD,mCAAmC,CACnC,CAAC;IACF,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAEjF,MAAM,WAAW,GAAG;QACnB,eAAe,EAAE;YAChB,IAAI;YACJ,QAAQ;YACR,WAAW;SACX;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,sBAAsB,EACnC,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -20,6 +20,8 @@ async function addAudioWithSubtitlesToVideo(ctx, itemIndex) {
|
|
|
20
20
|
const outline_width = ctx.getNodeParameter('outline_width', itemIndex);
|
|
21
21
|
const position = ctx.getNodeParameter('position', itemIndex);
|
|
22
22
|
const ltr = ctx.getNodeParameter('ltr', itemIndex);
|
|
23
|
+
const punctuation = ctx.getNodeParameter('punctuation', itemIndex, true);
|
|
24
|
+
const text_case = ctx.getNodeParameter('text_base', itemIndex, types_1.TextCase.DEFAULT);
|
|
23
25
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
24
26
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
25
27
|
const requestBody = {
|
|
@@ -45,6 +47,8 @@ async function addAudioWithSubtitlesToVideo(ctx, itemIndex) {
|
|
|
45
47
|
outline_width,
|
|
46
48
|
position,
|
|
47
49
|
ltr,
|
|
50
|
+
punctuation,
|
|
51
|
+
text_case,
|
|
48
52
|
},
|
|
49
53
|
};
|
|
50
54
|
return await (0, apiClient_1.bookolyApiRequest)(ctx, types_1.HttpMethod.POST, types_1.ApiEndpoints.ADD_AUDIO_WITH_SUBTITLE_TO_VIDEO, requestBody, wait);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addAudioWithSubtitlesToVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/addAudioWithSubtitlesToVideo.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"addAudioWithSubtitlesToVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/addAudioWithSubtitlesToVideo.ts"],"names":[],"mappings":";;AAIA,oEA4DC;AA/DD,uDAA4D;AAC5D,uCAAiE;AAE1D,KAAK,UAAU,4BAA4B,CACjD,GAAsB,EACtB,SAAiB;IAEjB,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAW,CAAC;IAC7D,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;IACzE,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAW,CAAC;IACxE,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC;IAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;IAC3E,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAW,CAAC;IACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAY,CAAC;IAC9D,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAW,CAAC;IAC3F,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACjF,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IAEvE,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,WAAW;SACX;QACD,KAAK,EAAE;YACN,GAAG,EAAE,SAAS;YACd,IAAI;YACJ,MAAM;SACN;QACD,QAAQ,EAAE;YACT,KAAK;YACL,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa;YACb,QAAQ;YACR,GAAG;YACH,WAAW;YACX,SAAS;SACT;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,gCAAgC,EAC7C,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -16,6 +16,8 @@ async function addSubtitlesToVideo(ctx, itemIndex) {
|
|
|
16
16
|
const outline_width = ctx.getNodeParameter('outline_width', itemIndex);
|
|
17
17
|
const position = ctx.getNodeParameter('position', itemIndex);
|
|
18
18
|
const ltr = ctx.getNodeParameter('ltr', itemIndex);
|
|
19
|
+
const punctuation = ctx.getNodeParameter('punctuation', itemIndex, true);
|
|
20
|
+
const text_case = ctx.getNodeParameter('text_base', itemIndex, types_1.TextCase.DEFAULT);
|
|
19
21
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
20
22
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
21
23
|
const requestBody = {
|
|
@@ -35,6 +37,8 @@ async function addSubtitlesToVideo(ctx, itemIndex) {
|
|
|
35
37
|
outline_width,
|
|
36
38
|
position,
|
|
37
39
|
ltr,
|
|
40
|
+
punctuation,
|
|
41
|
+
text_case,
|
|
38
42
|
},
|
|
39
43
|
};
|
|
40
44
|
return await (0, apiClient_1.bookolyApiRequest)(ctx, types_1.HttpMethod.POST, types_1.ApiEndpoints.ADD_SUBTITLE_TO_VIDEO, requestBody, wait);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addSubtitlesToVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/addSubtitlesToVideo.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"addSubtitlesToVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/addSubtitlesToVideo.ts"],"names":[],"mappings":";;AAIA,kDA+CC;AAlDD,uDAA4D;AAC5D,uCAAiE;AAE1D,KAAK,UAAU,mBAAmB,CAAC,GAAsB,EAAE,SAAiB;IAClF,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAW,CAAC;IAC7D,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC;IAC7E,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;IACzE,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;IAC3E,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAW,CAAC;IACjF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IACvE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAY,CAAC;IAC9D,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAW,CAAC;IAC3F,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAEjF,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI;YACJ,GAAG;YACH,WAAW;SACX;QACD,QAAQ,EAAE;YACT,KAAK;YACL,QAAQ;YACR,WAAW;YACX,SAAS;YACT,UAAU;YACV,UAAU;YACV,UAAU;YACV,aAAa;YACb,QAAQ;YACR,GAAG;YACH,WAAW;YACX,SAAS;SACT;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,qBAAqB,EAClC,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -9,7 +9,7 @@ async function createSlideshow(ctx, itemIndex) {
|
|
|
9
9
|
const resolution = ctx.getNodeParameter('resolution', itemIndex);
|
|
10
10
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
11
11
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
12
|
-
const scenes = (0, parseJson_1.parseJson)(ctx.getNodeParameter('scenes', itemIndex), 'Scenes (JSON)');
|
|
12
|
+
const scenes = (0, parseJson_1.parseJson)(ctx.getNodeParameter('scenes', itemIndex), 'Video - Scenes (JSON)');
|
|
13
13
|
const requestBody = {
|
|
14
14
|
video: {
|
|
15
15
|
name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSlideshow.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/createSlideshow.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"createSlideshow.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/createSlideshow.ts"],"names":[],"mappings":";;AAKA,0CA0BC;AA9BD,uDAA4D;AAC5D,2CAAwC;AACxC,uCAAuD;AAEhD,KAAK,UAAU,eAAe,CAAC,GAAsB,EAAE,SAAiB;IAC9E,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAW,CAAC;IAC3E,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACjF,MAAM,MAAM,GAAG,IAAA,qBAAS,EACvB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,EACnD,uBAAuB,CACvB,CAAC;IAEF,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI;YACJ,WAAW;YACX,UAAU;YACV,MAAM;SACN;KACD,CAAC;IAEF,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,eAAe,EAC5B,WAAW,EACX,IAAI,CACJ,CAAC;AACH,CAAC"}
|
|
@@ -7,9 +7,11 @@ const types_1 = require("../../types");
|
|
|
7
7
|
async function generateVideo(ctx, itemIndex) {
|
|
8
8
|
const name = ctx.getNodeParameter('name', itemIndex, '');
|
|
9
9
|
const resolution = ctx.getNodeParameter('resolution', itemIndex, types_1.VideoResolution.HORIZONTAL_HD);
|
|
10
|
-
const
|
|
10
|
+
const duration_basis = ctx.getNodeParameter('duration_basis', itemIndex);
|
|
11
|
+
const scenes = (0, parseJson_1.parseJson)(ctx.getNodeParameter('scenes', itemIndex), 'Video - Scenes (JSON)');
|
|
11
12
|
const text = ctx.getNodeParameter('text', itemIndex, '');
|
|
12
13
|
const vendor_id = ctx.getNodeParameter('vendor_id', itemIndex, '');
|
|
14
|
+
const source = ctx.getNodeParameter('source', itemIndex, 'speech');
|
|
13
15
|
const style = ctx.getNodeParameter('style', itemIndex, 'simple');
|
|
14
16
|
const language = ctx.getNodeParameter('language', itemIndex, 'af');
|
|
15
17
|
const font_family = ctx.getNodeParameter('font_family', itemIndex, types_1.FontFamily.ARIAL);
|
|
@@ -20,42 +22,58 @@ async function generateVideo(ctx, itemIndex) {
|
|
|
20
22
|
const outline_width = ctx.getNodeParameter('outline_width', itemIndex, 1);
|
|
21
23
|
const position = ctx.getNodeParameter('position', itemIndex, types_1.SubtitlePosition.MID_BOTTOM_CENTER);
|
|
22
24
|
const ltr = ctx.getNodeParameter('ltr', itemIndex, true);
|
|
25
|
+
const punctuation = ctx.getNodeParameter('punctuation', itemIndex, true);
|
|
26
|
+
const text_case = ctx.getNodeParameter('text_base', itemIndex, types_1.TextCase.DEFAULT);
|
|
23
27
|
const audio_url = ctx.getNodeParameter('audio_url', itemIndex, '');
|
|
24
|
-
const
|
|
25
|
-
const volume = ctx.getNodeParameter('volume', itemIndex, 1);
|
|
28
|
+
const volume = ctx.getNodeParameter('volume', itemIndex, '');
|
|
26
29
|
const wait = ctx.getNodeParameter('wait', itemIndex, false);
|
|
27
30
|
const webhook_url = ctx.getNodeParameter('webhook_url', itemIndex, '');
|
|
28
31
|
const requestBody = {
|
|
29
32
|
video: {
|
|
30
33
|
name,
|
|
31
34
|
resolution,
|
|
35
|
+
duration_basis,
|
|
32
36
|
webhook_url,
|
|
33
37
|
scenes,
|
|
34
38
|
},
|
|
35
|
-
speech: {
|
|
36
|
-
text,
|
|
37
|
-
voice: {
|
|
38
|
-
vendor_id,
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
subtitle: {
|
|
42
|
-
style,
|
|
43
|
-
language,
|
|
44
|
-
font_family,
|
|
45
|
-
font_size,
|
|
46
|
-
word_color,
|
|
47
|
-
line_color,
|
|
48
|
-
line_words,
|
|
49
|
-
outline_width,
|
|
50
|
-
position,
|
|
51
|
-
ltr,
|
|
52
|
-
},
|
|
53
|
-
audio: {
|
|
54
|
-
url: audio_url,
|
|
55
|
-
trim,
|
|
56
|
-
volume,
|
|
57
|
-
},
|
|
58
39
|
};
|
|
59
|
-
|
|
40
|
+
if (source !== 'none') {
|
|
41
|
+
Object.assign(requestBody, {
|
|
42
|
+
subtitle: {
|
|
43
|
+
source,
|
|
44
|
+
style,
|
|
45
|
+
language,
|
|
46
|
+
font_family,
|
|
47
|
+
font_size,
|
|
48
|
+
word_color,
|
|
49
|
+
line_color,
|
|
50
|
+
line_words,
|
|
51
|
+
outline_width,
|
|
52
|
+
position,
|
|
53
|
+
ltr,
|
|
54
|
+
punctuation,
|
|
55
|
+
text_case,
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (audio_url || volume) {
|
|
60
|
+
Object.assign(requestBody, {
|
|
61
|
+
audio: {
|
|
62
|
+
url: audio_url,
|
|
63
|
+
volume,
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
if (text || (vendor_id && vendor_id !== types_1.Voice.NONE)) {
|
|
68
|
+
Object.assign(requestBody, {
|
|
69
|
+
speech: {
|
|
70
|
+
text,
|
|
71
|
+
voice: {
|
|
72
|
+
vendor_id,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return await (0, apiClient_1.bookolyApiRequest)(ctx, types_1.HttpMethod.POST, types_1.ApiEndpoints.GENERATE_A_VIDEO, requestBody, wait, types_1.ApiVersion.V2);
|
|
60
78
|
}
|
|
61
79
|
//# sourceMappingURL=generateVideo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/generateVideo.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"generateVideo.js","sourceRoot":"","sources":["../../../../../nodes/Bookoly/handlers/video/generateVideo.ts"],"names":[],"mappings":";;AAcA,sCAsGC;AAnHD,uDAA4D;AAC5D,2CAAwC;AACxC,uCASqB;AAEd,KAAK,UAAU,aAAa,CAAC,GAAsB,EAAE,SAAiB;IAE5E,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CACtC,YAAY,EACZ,SAAS,EACT,uBAAe,CAAC,aAAa,CACnB,CAAC;IACZ,MAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAW,CAAC;IACnF,MAAM,MAAM,GAAG,IAAA,qBAAS,EACvB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,EACnD,uBAAuB,CACvB,CAAC;IAGF,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IACnE,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAG7E,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAW,CAAC;IAC7E,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAW,CAAC;IAC3E,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAW,CAAC;IAC7E,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,kBAAU,CAAC,KAAK,CAAW,CAAC;IAC/F,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;IAC5E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC/E,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;IAC9E,MAAM,aAAa,GAAG,GAAG,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;IACpF,MAAM,QAAQ,GAAG,GAAG,CAAC,gBAAgB,CACpC,UAAU,EACV,SAAS,EACT,wBAAgB,CAAC,iBAAiB,CACxB,CAAC;IACZ,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IACpE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAY,CAAC;IACpF,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,gBAAQ,CAAC,OAAO,CAAW,CAAC;IAG3F,MAAM,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAC7E,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAQ,CAAC;IAEpE,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;IAEjF,MAAM,WAAW,GAAG;QACnB,KAAK,EAAE;YACN,IAAI;YACJ,UAAU;YACV,cAAc;YACd,WAAW;YACX,MAAM;SACN;KACD,CAAC;IAEF,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;YAC1B,QAAQ,EAAE;gBACT,MAAM;gBACN,KAAK;gBACL,QAAQ;gBACR,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,UAAU;gBACV,UAAU;gBACV,aAAa;gBACb,QAAQ;gBACR,GAAG;gBACH,WAAW;gBACX,SAAS;aACT;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;YAC1B,KAAK,EAAE;gBACN,GAAG,EAAE,SAAS;gBACd,MAAM;aACN;SACD,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,aAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;YAC1B,MAAM,EAAE;gBACP,IAAI;gBACJ,KAAK,EAAE;oBACN,SAAS;iBACT;aACD;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,IAAA,6BAAiB,EAC7B,GAAG,EACH,kBAAU,CAAC,IAAI,EACf,oBAAY,CAAC,gBAAgB,EAC7B,WAAW,EACX,IAAI,EACJ,kBAAU,CAAC,EAAE,CACb,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { IDataObject, IExecuteFunctions } from 'n8n-workflow';
|
|
2
|
-
import { HttpMethod } from '../types';
|
|
3
|
-
export declare function bookolyApiRequest(ctx: IExecuteFunctions, method: HttpMethod, endpoint: string, body?: IDataObject, wait?: boolean, qs?: IDataObject, authentication?: string): Promise<any>;
|
|
2
|
+
import { ApiVersion, HttpMethod } from '../types';
|
|
3
|
+
export declare function bookolyApiRequest(ctx: IExecuteFunctions, method: HttpMethod, endpoint: string, body?: IDataObject, wait?: boolean, apiVersion?: ApiVersion, qs?: IDataObject, authentication?: string): Promise<any>;
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bookolyApiRequest = bookolyApiRequest;
|
|
4
4
|
const Bookoly_node_1 = require("../Bookoly.node");
|
|
5
|
+
const types_1 = require("../types");
|
|
5
6
|
const getResource_1 = require("../handlers/getResource");
|
|
6
|
-
async function bookolyApiRequest(ctx, method, endpoint, body, wait, qs, authentication = 'bookolyApi') {
|
|
7
|
+
async function bookolyApiRequest(ctx, method, endpoint, body, wait, apiVersion = types_1.ApiVersion.V1, qs, authentication = 'bookolyApi') {
|
|
7
8
|
const options = {
|
|
8
9
|
headers: {
|
|
9
10
|
Accept: 'application/json',
|
|
@@ -12,7 +13,7 @@ async function bookolyApiRequest(ctx, method, endpoint, body, wait, qs, authenti
|
|
|
12
13
|
method,
|
|
13
14
|
body,
|
|
14
15
|
qs,
|
|
15
|
-
url: `${Bookoly_node_1.
|
|
16
|
+
url: `${Bookoly_node_1.API_BASE_URL}/${apiVersion}/${endpoint}`,
|
|
16
17
|
json: true,
|
|
17
18
|
};
|
|
18
19
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../../nodes/Bookoly/helpers/apiClient.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../../../../nodes/Bookoly/helpers/apiClient.ts"],"names":[],"mappings":";;AAKA,8CA8CC;AAlDD,kDAA+C;AAC/C,oCAAkD;AAClD,yDAAsD;AAE/C,KAAK,UAAU,iBAAiB,CACtC,GAAsB,EACtB,MAAkB,EAClB,QAAgB,EAChB,IAAkB,EAClB,IAAc,EACd,aAAyB,kBAAU,CAAC,EAAE,EACtC,EAAgB,EAChB,cAAc,GAAG,YAAY;IAE7B,MAAM,OAAO,GAAwB;QACpC,OAAO,EAAE;YACR,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SAClC;QACD,MAAM;QACN,IAAI;QACJ,EAAE;QACF,GAAG,EAAE,GAAG,2BAAY,IAAI,UAAU,IAAI,QAAQ,EAAE;QAChD,IAAI,EAAE,IAAI;KACV,CAAC;IAEF,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QAEhG,MAAM,UAAU,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAC;QAEhC,IAAI,IAAI,IAAI,UAAU,EAAE,CAAC;YAExB,OAAO,IAAA,yBAAW,EAAC,GAAG,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAEhB,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,IAAI,wBAAwB,CAAC,CAAC;QAG3F,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE;YACvB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC;IAChB,CAAC;AACF,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NodePropertyTypes } from 'n8n-workflow';
|
|
2
|
-
import { SubtitleFileType, VideoResolution, Voice } from '../types';
|
|
2
|
+
import { DurationBasis, SubtitleFileType, VideoResolution, Voice } from '../types';
|
|
3
3
|
export declare const getNameParam: (operation: string | string[], resource?: string, description?: string) => {
|
|
4
4
|
displayName: string;
|
|
5
5
|
name: string;
|
|
@@ -146,6 +146,25 @@ export declare const getResolutionParam: (operation: string | string[], resource
|
|
|
146
146
|
};
|
|
147
147
|
};
|
|
148
148
|
};
|
|
149
|
+
export declare const getDurationBasisParam: (operation: string | string[], resource?: string, required?: boolean, description?: string) => {
|
|
150
|
+
displayName: string;
|
|
151
|
+
name: string;
|
|
152
|
+
type: NodePropertyTypes;
|
|
153
|
+
required: boolean;
|
|
154
|
+
default: DurationBasis;
|
|
155
|
+
description: string;
|
|
156
|
+
options: {
|
|
157
|
+
name: string;
|
|
158
|
+
value: DurationBasis;
|
|
159
|
+
description: string;
|
|
160
|
+
}[];
|
|
161
|
+
displayOptions: {
|
|
162
|
+
show: {
|
|
163
|
+
operation: string[];
|
|
164
|
+
resource?: string[] | undefined;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
};
|
|
149
168
|
export declare const getMuteParam: (operation: string | string[], resource?: string) => {
|
|
150
169
|
displayName: string;
|
|
151
170
|
name: string;
|
|
@@ -1,24 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getRotateParam = exports.getSecParam = exports.getMuteParam = exports.getResolutionParam = exports.getIdParam = exports.getTextParam = exports.getTypeParam = exports.getWaitParam = exports.getVoiceParam = exports.getWebhookUrlParam = exports.getSubtitleUrlParam = exports.getUrlParam = exports.getNameParam = void 0;
|
|
3
|
+
exports.getRotateParam = exports.getSecParam = exports.getMuteParam = exports.getDurationBasisParam = exports.getResolutionParam = exports.getIdParam = exports.getTextParam = exports.getTypeParam = exports.getWaitParam = exports.getVoiceParam = exports.getWebhookUrlParam = exports.getSubtitleUrlParam = exports.getUrlParam = exports.getNameParam = void 0;
|
|
4
4
|
const static_1 = require("./static");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
|
-
const getNameParam = (operation, resource, description = 'Name') =>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
6
|
+
const getNameParam = (operation, resource, description = 'Name') => {
|
|
7
|
+
let resourceName = '';
|
|
8
|
+
switch (resource) {
|
|
9
|
+
case types_1.ResourceType.VIDEO:
|
|
10
|
+
resourceName = 'Video - ';
|
|
11
|
+
break;
|
|
12
|
+
case types_1.ResourceType.FILE:
|
|
13
|
+
resourceName = 'Subtitle File - ';
|
|
14
|
+
break;
|
|
15
|
+
case types_1.ResourceType.SOUND:
|
|
16
|
+
resourceName = 'Sound - ';
|
|
17
|
+
break;
|
|
18
|
+
case types_1.ResourceType.SPEECH:
|
|
19
|
+
resourceName = 'Speech Synthesis - ';
|
|
20
|
+
break;
|
|
21
|
+
case types_1.ResourceType.SPEECH_DIALOGUE:
|
|
22
|
+
resourceName = 'Speech Dialogue - ';
|
|
23
|
+
break;
|
|
24
|
+
case types_1.ResourceType.TRANSCRIPT:
|
|
25
|
+
resourceName = 'Transcript - ';
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
displayName: resourceName + 'Name',
|
|
30
|
+
name: 'name',
|
|
31
|
+
type: 'string',
|
|
32
|
+
required: true,
|
|
33
|
+
default: '',
|
|
34
|
+
description,
|
|
35
|
+
displayOptions: {
|
|
36
|
+
show: {
|
|
37
|
+
...(resource ? { resource: [resource] } : {}),
|
|
38
|
+
operation: Array.isArray(operation) ? operation : [operation],
|
|
39
|
+
},
|
|
17
40
|
},
|
|
18
|
-
}
|
|
19
|
-
}
|
|
41
|
+
};
|
|
42
|
+
};
|
|
20
43
|
exports.getNameParam = getNameParam;
|
|
21
|
-
const getUrlParam = (operation, resource, displayName = 'Video URL') => ({
|
|
44
|
+
const getUrlParam = (operation, resource, displayName = 'Video - URL') => ({
|
|
22
45
|
displayName: displayName,
|
|
23
46
|
name: 'url',
|
|
24
47
|
type: 'string',
|
|
@@ -34,7 +57,7 @@ const getUrlParam = (operation, resource, displayName = 'Video URL') => ({
|
|
|
34
57
|
});
|
|
35
58
|
exports.getUrlParam = getUrlParam;
|
|
36
59
|
const getSubtitleUrlParam = (operation, resource) => ({
|
|
37
|
-
displayName: 'Subtitle URL',
|
|
60
|
+
displayName: 'Subtitle File - URL',
|
|
38
61
|
name: 'subtitle_url',
|
|
39
62
|
type: 'string',
|
|
40
63
|
required: true,
|
|
@@ -63,11 +86,11 @@ const getWebhookUrlParam = (operation, resource, description = 'Enter a valid UR
|
|
|
63
86
|
});
|
|
64
87
|
exports.getWebhookUrlParam = getWebhookUrlParam;
|
|
65
88
|
const getVoiceParam = (operation, resource) => ({
|
|
66
|
-
displayName: 'Voice',
|
|
89
|
+
displayName: 'Speech Synthesis - Voice',
|
|
67
90
|
name: 'vendor_id',
|
|
68
91
|
type: 'options',
|
|
69
|
-
required:
|
|
70
|
-
default: types_1.Voice.ECHO,
|
|
92
|
+
required: resource === types_1.ResourceType.SPEECH,
|
|
93
|
+
default: resource === types_1.ResourceType.SPEECH ? types_1.Voice.ECHO : types_1.Voice.NONE,
|
|
71
94
|
description: 'The name of the voice',
|
|
72
95
|
options: static_1.voiceOptions,
|
|
73
96
|
displayOptions: {
|
|
@@ -93,7 +116,7 @@ const getWaitParam = (operation, resource, description = 'If enabled, the node p
|
|
|
93
116
|
});
|
|
94
117
|
exports.getWaitParam = getWaitParam;
|
|
95
118
|
const getTypeParam = (operation, resource) => ({
|
|
96
|
-
displayName: 'Type',
|
|
119
|
+
displayName: 'Subtitle File - Type',
|
|
97
120
|
name: 'type',
|
|
98
121
|
type: 'options',
|
|
99
122
|
default: types_1.SubtitleFileType.ASS,
|
|
@@ -108,10 +131,10 @@ const getTypeParam = (operation, resource) => ({
|
|
|
108
131
|
});
|
|
109
132
|
exports.getTypeParam = getTypeParam;
|
|
110
133
|
const getTextParam = (operation, resource) => ({
|
|
111
|
-
displayName: 'Text',
|
|
134
|
+
displayName: 'Speech Synthesis - Text',
|
|
112
135
|
name: 'text',
|
|
113
136
|
type: 'string',
|
|
114
|
-
required:
|
|
137
|
+
required: resource === types_1.ResourceType.SPEECH,
|
|
115
138
|
typeOptions: {
|
|
116
139
|
rows: 4,
|
|
117
140
|
},
|
|
@@ -141,7 +164,7 @@ const getIdParam = (operation, resource, name, displayName, description) => ({
|
|
|
141
164
|
});
|
|
142
165
|
exports.getIdParam = getIdParam;
|
|
143
166
|
const getResolutionParam = (operation, resource, required = true, description = 'The resolution of the video') => ({
|
|
144
|
-
displayName: 'Resolution',
|
|
167
|
+
displayName: 'Video - Resolution',
|
|
145
168
|
name: 'resolution',
|
|
146
169
|
type: 'options',
|
|
147
170
|
required,
|
|
@@ -156,8 +179,40 @@ const getResolutionParam = (operation, resource, required = true, description =
|
|
|
156
179
|
},
|
|
157
180
|
});
|
|
158
181
|
exports.getResolutionParam = getResolutionParam;
|
|
182
|
+
const getDurationBasisParam = (operation, resource, required = true, description = 'Select how the final video duration will be determined') => ({
|
|
183
|
+
displayName: 'Video - Duration',
|
|
184
|
+
name: 'duration_basis',
|
|
185
|
+
type: 'options',
|
|
186
|
+
required,
|
|
187
|
+
default: types_1.DurationBasis.VIDEO,
|
|
188
|
+
description,
|
|
189
|
+
options: [
|
|
190
|
+
{
|
|
191
|
+
name: 'Audio',
|
|
192
|
+
value: types_1.DurationBasis.AUDIO,
|
|
193
|
+
description: 'Use the duration of the audio',
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
name: 'Speech Synthesis',
|
|
197
|
+
value: types_1.DurationBasis.SPEECH,
|
|
198
|
+
description: 'Use the duration of the speech synthesis',
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
name: 'Video',
|
|
202
|
+
value: types_1.DurationBasis.VIDEO,
|
|
203
|
+
description: 'Use the duration of all scenes',
|
|
204
|
+
},
|
|
205
|
+
],
|
|
206
|
+
displayOptions: {
|
|
207
|
+
show: {
|
|
208
|
+
...(resource ? { resource: [resource] } : {}),
|
|
209
|
+
operation: Array.isArray(operation) ? operation : [operation],
|
|
210
|
+
},
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
exports.getDurationBasisParam = getDurationBasisParam;
|
|
159
214
|
const getMuteParam = (operation, resource) => ({
|
|
160
|
-
displayName: 'Mute
|
|
215
|
+
displayName: 'Video - Mute',
|
|
161
216
|
name: 'mute',
|
|
162
217
|
type: 'boolean',
|
|
163
218
|
default: false,
|
|
@@ -171,7 +226,7 @@ const getMuteParam = (operation, resource) => ({
|
|
|
171
226
|
});
|
|
172
227
|
exports.getMuteParam = getMuteParam;
|
|
173
228
|
const getSecParam = (operation, resource) => ({
|
|
174
|
-
displayName: 'Timestamp (Seconds)',
|
|
229
|
+
displayName: 'Video - Timestamp (Seconds)',
|
|
175
230
|
name: 'seconds',
|
|
176
231
|
type: 'number',
|
|
177
232
|
default: 0,
|
|
@@ -189,7 +244,7 @@ const getSecParam = (operation, resource) => ({
|
|
|
189
244
|
});
|
|
190
245
|
exports.getSecParam = getSecParam;
|
|
191
246
|
const getRotateParam = (operation, resource) => ({
|
|
192
|
-
displayName: 'Rotation (Degrees)',
|
|
247
|
+
displayName: 'Video - Rotation (Degrees)',
|
|
193
248
|
name: 'rotation_degrees',
|
|
194
249
|
type: 'options',
|
|
195
250
|
default: 90,
|