Try using "Template" action and construct your text with hyerlinks than paste it to page.
Other option is to create simple LOCAL html page somewhere on your hard disk with
desired text and links, than open that local html page in another tab in BAS and than copy
from that tab to the tab where you are working.
BAS_API в Node js
-
Асинхронный код в node js. BAS_API не выполняется. Отдельно проверял, работает, а здесь нет.
all_ws[ws].on('message', function incoming(data) { if (data != 3) { var array = data.match(/([|{).*(]|})/g)[0]; var msg = JSON.parse(array); if (msg[0] == 'message') { if (msg[1].user_login === "ara") { switch (msg[1].message) { case "up": BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); break; case "down": BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); break; default: } } else { } } } }); -
@vanarok said in BAS_API в Node js:
Асинхронный код в node js. BAS_API не выполняется. Отдельно проверял, работает, а здесь нет.
Так и есть, если не оборачивать все в промис и не ждать выполения через await, то функции БАС в таком коде не сработают.
-
@vanarok said in BAS_API в Node js:
@UserTrue пытался с await , но выдает ошибку синтаксиса
С await будет работать. Скорее всего вы неправильно его добавили
https://community.bablosoft.com/topic/4450/websocket-на-node-js/6 -
switch (data.message) { case "plus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); resolve() })); break; case "minus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); resolve() })); break; default: } } else { }пробовал так: синхронный код в асинхронном, такое вообще реально?
-
@vanarok said in BAS_API в Node js:
switch (data.message) { case "plus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); resolve() })); break; case "minus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); resolve() })); break; default: } } else { }пробовал так: синхронный код в асинхронном, такое вообще реально?
Выложите весь код, а лучше тестовый проект, так будет просто быстрее
-
WebSocket = require('socket.io-client'); var ws = "ws" + [[CHILD]]; var SocksProxyAgent = require('https-proxy-agent'); var endpoint = 'wss://test..ru/'; var options = { host: [[PROXY]].split(":")[0], port: [[PROXY]].split(":")[1], protocol: 'http', transports: ['websocket'], } var agent = new SocksProxyAgent(options); all_ws[ws] = new WebSocket(endpoint, { agent: agent }); all_ws[ws].on('connect', () => { all_ws[ws].on('message', (data) => { if (data.user_login === "User") { switch (data.message) { case "plus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); resolve() })); break; case "minus": await(new Promise((resolve, reject) => { BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); resolve() })); break; default: } } else { } }); });тестовый не получится, у него много зависимостей, проще костыль сделать, чем этим заниматься
-
@vanarok said in BAS_API в Node js:
@Fox
тестовый не получится, у него много зависимостей, проще костыль сделать, чем этим заниматьсяПопробуй вот так:
await(new Promise((resolve, reject) => { WebSocket = require('socket.io-client'); var ws = "ws" + [[CHILD]]; var SocksProxyAgent = require('https-proxy-agent'); var endpoint = 'wss://test..ru/'; var options = { host: [[PROXY]].split(":")[0], port: [[PROXY]].split(":")[1], protocol: 'http', transports: ['websocket'], } var agent = new SocksProxyAgent(options); all_ws[ws] = new WebSocket(endpoint, { agent: agent }); all_ws[ws].on('connect', () => { all_ws[ws].on('message', (data) => { if (data.user_login === "User") { switch (data.message) { case "plus": BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(1))"); resolve() case "minus": BAS_API("PSet(\"basglobal\", \"MESSAGE_QUEUE\", parseInt(JSON.parse(P(\"basglobal\", \"MESSAGE_QUEUE\") || \"0\")) + parseInt(-1))"); resolve() default: } } }); }); })); -
@vanarok said in BAS_API в Node js:
Я так понимаю тут никак не выкрутится без завершения всего кода node js.
Код node может работать асинхронно, но на сколько я помню он не может асинхронно работать с BAS (запускать функции, изменять переменные при завершённом действии node js)
-
@dzxt said in BAS_API в Node js:
//функция для установки глобальной переменной типа string из ноды function PSet_string(name,value){ let script = (`PSet(\"basglobal\", \"${name}\", JSON.stringify(\"${value}\"))`); BAS_API(script) } //use PSet_string('NAME','any string')Это вы к чему?