[mirotalksfu] - improve stats, update dep.

هذا الالتزام موجود في:
Miroslav Pejic
2024-01-28 20:44:35 +01:00
الأصل 5f60844990
التزام f610949cee
6 ملفات معدلة مع 45 إضافات و32 حذوفات

عرض الملف

@@ -40,7 +40,7 @@ dependencies: {
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon * @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970 * @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.3.56 * @version 1.3.57
* *
*/ */

عرض الملف

@@ -152,7 +152,7 @@ module.exports = {
stats: { stats: {
/* /*
Umami: https://github.com/umami-software/umami Umami: https://github.com/umami-software/umami
We use Umami to track aggregated usage statistics in order to improve our service. We use our Self-hosted Umami to track aggregated usage statistics in order to improve our service.
*/ */
enabled: true, enabled: true,
src: 'https://stats.mirotalk.com/script.js', src: 'https://stats.mirotalk.com/script.js',

عرض الملف

@@ -1,6 +1,6 @@
{ {
"name": "mirotalksfu", "name": "mirotalksfu",
"version": "1.3.56", "version": "1.3.57",
"description": "WebRTC SFU browser-based video calls", "description": "WebRTC SFU browser-based video calls",
"main": "Server.js", "main": "Server.js",
"scripts": { "scripts": {
@@ -38,9 +38,9 @@
"author": "Miroslav Pejic", "author": "Miroslav Pejic",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"@sentry/integrations": "7.94.1", "@sentry/integrations": "7.98.0",
"@sentry/node": "7.94.1", "@sentry/node": "7.98.0",
"axios": "^1.6.5", "axios": "^1.6.7",
"body-parser": "1.20.2", "body-parser": "1.20.2",
"colors": "1.4.0", "colors": "1.4.0",
"compression": "1.7.4", "compression": "1.7.4",
@@ -51,7 +51,7 @@
"mediasoup": "3.13.16", "mediasoup": "3.13.16",
"mediasoup-client": "3.7.2", "mediasoup-client": "3.7.2",
"ngrok": "^4.3.3", "ngrok": "^4.3.3",
"openai": "^4.24.7", "openai": "^4.26.0",
"qs": "6.11.2", "qs": "6.11.2",
"socket.io": "4.7.4", "socket.io": "4.7.4",
"swagger-ui-express": "5.0.0", "swagger-ui-express": "5.0.0",

عرض الملف

@@ -11,7 +11,7 @@ if (location.href.substr(0, 5) !== 'https') location.href = 'https' + location.h
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon * @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970 * @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.3.56 * @version 1.3.57
* *
*/ */

عرض الملف

@@ -9,7 +9,7 @@
* @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon * @license For commercial or closed source, contact us at license.mirotalk@gmail.com or purchase directly via CodeCanyon
* @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970 * @license CodeCanyon: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970
* @author Miroslav Pejic - miroslav.pejic.85@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com
* @version 1.3.56 * @version 1.3.57
* *
*/ */

عرض الملف

@@ -1,26 +1,39 @@
'use strict'; 'use strict';
// const url = 'https://localhost:3010/stats'; console.log('STATS', window.location);
const url = 'https://sfu.mirotalk.com/stats';
fetch(url) const statsDataKey = 'statsData';
.then((response) => { const statsData = window.sessionStorage.getItem(statsDataKey);
if (!response.ok) {
throw new Error('Network response was not ok'); const apiUrl = window.location.origin + '/stats';
}
return response.json(); if (statsData) {
}) setStats(JSON.parse(statsData));
.then((data) => { } else {
// console.log('STATS', data); fetch(apiUrl)
const { enabled, src, id } = data; .then((response) => {
if (enabled) { if (!response.ok) {
const script = document.createElement('script'); throw new Error('Network response was not ok');
script.setAttribute('async', ''); }
script.setAttribute('src', src); return response.json();
script.setAttribute('data-website-id', id); })
document.head.appendChild(script); .then((data) => {
} setStats(data);
}) window.sessionStorage.setItem(statsDataKey, JSON.stringify(data));
.catch((error) => { })
console.error('Stats fetch error:', error); .catch((error) => {
}); console.error('Stats fetch error:', error);
});
}
function setStats(data) {
console.log('STATS', data);
const { enabled, src, id } = data;
if (enabled) {
const script = document.createElement('script');
script.setAttribute('async', '');
script.setAttribute('src', src);
script.setAttribute('data-website-id', id);
document.head.appendChild(script);
}
}