From f5afbf05b1c818dbfe969e76f379474c15dcb91b Mon Sep 17 00:00:00 2001 From: Miroslav Pejic Date: Sun, 10 Aug 2025 11:48:56 +0200 Subject: [PATCH] [mirotalk] - add chat in query params, update widget --- README.md | 17 +++++++++-------- app/api/join/join.js | 1 + app/api/join/join.php | 1 + app/api/join/join.py | 1 + app/api/join/join.sh | 1 + app/api/swagger.yaml | 3 +++ app/src/server.js | 10 +++++----- package-lock.json | 4 ++-- package.json | 2 +- public/css/landing.css | 2 +- public/js/brand.js | 2 +- public/js/client.js | 35 +++++++++++++++++++++++++++++++++-- public/js/iframe.js | 2 ++ public/js/widget.js | 27 +++++++++++++++++++++++---- widgets/example-5.html | 1 + 15 files changed, 85 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index e69fec5e..ac6f9c6c 100644 --- a/README.md +++ b/README.md @@ -107,8 +107,8 @@
- You can `directly join a room` by using links like: -- https://p2p.mirotalk.com/join?room=test&name=mirotalk&avatar=0&audio=0&video=0&screen=0&hide=0¬ify=0 -- https://mirotalk.up.railway.app/join?room=test&name=mirotalk&avatar=0&audio=0&video=0&screen=0&hide=0¬ify=0 +- https://p2p.mirotalk.com/join?room=test&name=mirotalk&avatar=0&audio=0&video=0&screen=0&chat=0&hide=0¬ify=0 +- https://mirotalk.up.railway.app/join?room=test&name=mirotalk&avatar=0&audio=0&video=0&screen=0&chat=0&hide=0¬ify=0 | Params | Type | Description | | ------ | ------- | --------------- | @@ -118,6 +118,7 @@ | audio | boolean | Audio stream | | video | boolean | Video stream | | screen | boolean | Screen stream | + | chat. | boolean | Chat | | hide | boolean | Hide myself | | notify | boolean | Welcome message | | token | string | jwt token | @@ -261,17 +262,17 @@ curl -X POST "https://mirotalk.up.railway.app/api/v1/meeting" -H "authorization: ### 4. Join Meeting (Basic) ```bash -curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"hide":false,"notify":true}' -curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"hide":false,"notify":true}' -curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"hide":false,"notify":true}' +curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true}' +curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true}' +curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true}' ``` ### 5. Join Meeting with Token ```bash -curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' -curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' -curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' +curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' +curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' +curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"mirotalk","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}' ``` ### 6. Generate Token diff --git a/app/api/join/join.js b/app/api/join/join.js index 2783780a..ba54764b 100644 --- a/app/api/join/join.js +++ b/app/api/join/join.js @@ -25,6 +25,7 @@ async function getJoin() { audio: false, video: false, screen: false, + chat: false, hide: false, notify: true, token: { diff --git a/app/api/join/join.php b/app/api/join/join.php index 6851b340..1ed3c04d 100644 --- a/app/api/join/join.php +++ b/app/api/join/join.php @@ -24,6 +24,7 @@ $data = array( "audio" => false, "video" => false, "screen" => false, + "chat" => false, "hide" => false, "notify" => true, "token" => array( diff --git a/app/api/join/join.py b/app/api/join/join.py index 858e5a9e..e20e0afd 100644 --- a/app/api/join/join.py +++ b/app/api/join/join.py @@ -19,6 +19,7 @@ data = { "audio": "false", "video": "false", "screen": "false", + "chat": "false", "hide": "false", "notify": "true", "token": { diff --git a/app/api/join/join.sh b/app/api/join/join.sh index a7b22e6d..15ca89d8 100755 --- a/app/api/join/join.sh +++ b/app/api/join/join.sh @@ -15,6 +15,7 @@ REQUEST_DATA='{ "audio": false, "video": false, "screen": false, + "chat": false, "hide": false, "notify": true, "token": { diff --git a/app/api/swagger.yaml b/app/api/swagger.yaml index 691b73dd..aa10d0e7 100644 --- a/app/api/swagger.yaml +++ b/app/api/swagger.yaml @@ -96,6 +96,9 @@ paths: screen: type: boolean default: false + chat: + type: boolean + default: false hide: type: boolean default: false diff --git a/app/src/server.js b/app/src/server.js index b98e94d8..7ff53ac6 100755 --- a/app/src/server.js +++ b/app/src/server.js @@ -45,7 +45,7 @@ dependencies: { * @license For commercial use or closed source, contact us at license.mirotalk@gmail.com or purchase directly from CodeCanyon * @license CodeCanyon: https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661 * @author Miroslav Pejic - miroslav.pejic.85@gmail.com - * @version 1.5.54 + * @version 1.5.55 * */ @@ -612,11 +612,11 @@ app.get('/join/', async (req, res) => { if (Object.keys(req.query).length > 0) { log.debug('Request Query', req.query); /* - http://localhost:3000/join?room=test&name=mirotalk&audio=1&video=1&screen=0¬ify=0&hide=0 - https://p2p.mirotalk.com/join?room=test&name=mirotalk&audio=1&video=1&screen=0¬ify=0&hide=0 - https://mirotalk.up.railway.app/join?room=test&name=mirotalk&audio=1&video=1&screen=0¬ify=0&hide=0 + http://localhost:3000/join?room=test&name=mirotalk&audio=1&video=1&screen=0&chat=1¬ify=0&hide=0 + https://p2p.mirotalk.com/join?room=test&name=mirotalk&audio=1&video=1&screen=0&chat=1¬ify=0&hide=0 + https://mirotalk.up.railway.app/join?room=test&name=mirotalk&audio=1&video=1&screen=0&chat=1¬ify=0&hide=0 */ - const { room, name, audio, video, screen, notify, hide, token } = checkXSS(req.query); + const { room, name, audio, video, screen, chat, notify, hide, token } = checkXSS(req.query); if (!room) { log.warn('/join/params room empty', room); diff --git a/package-lock.json b/package-lock.json index ad2a2af0..e7a5a4ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mirotalk", - "version": "1.5.54", + "version": "1.5.55", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mirotalk", - "version": "1.5.54", + "version": "1.5.55", "license": "AGPL-3.0", "dependencies": { "@mattermost/client": "10.9.0", diff --git a/package.json b/package.json index 37d03ee7..fcb19eef 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mirotalk", - "version": "1.5.54", + "version": "1.5.55", "description": "A free WebRTC browser-based video call", "main": "server.js", "scripts": { diff --git a/public/css/landing.css b/public/css/landing.css index 1a54ae2a..e23bd4d6 100755 --- a/public/css/landing.css +++ b/public/css/landing.css @@ -56,7 +56,7 @@ pre { font-size: 1em; } -a { +a {#020202 background-color: transparent; -webkit-text-decoration-skip: objects; } diff --git a/public/js/brand.js b/public/js/brand.js index 8ab5773a..85d059a9 100644 --- a/public/js/brand.js +++ b/public/js/brand.js @@ -96,7 +96,7 @@ let brand = { }, about: { imageUrl: '../images/mirotalk-logo.gif', - title: 'WebRTC P2P v1.5.54', + title: 'WebRTC P2P v1.5.55', html: `