Прокси на внутренний IP: анализ и скачивания через REST-эндпоинты WordPress (режим proxy/direct, настройки)
This commit is contained in:
1 parent
b3ac9491f6
commit
867fe7bc66
3 files changed
+191
-15
No files matched your search
+19
-5
@@ -3,6 +3,9 @@
|
||||
'use strict';
|
||||
|
||||
var API_URL = (window.MED_DIAG && MED_DIAG.apiUrl) || 'https://med.my-dpr.ru';
|
||||
var PROXY_URL = (window.MED_DIAG && MED_DIAG.proxyUrl) || '';
|
||||
var MODE = (window.MED_DIAG && MED_DIAG.mode) || 'proxy';
|
||||
var USE_PROXY = (MODE === 'proxy') && !!PROXY_URL;
|
||||
|
||||
// Абсолютный URL: если ссылка относительная — добавляем домен API
|
||||
function absUrl(url) {
|
||||
@@ -10,6 +13,13 @@
|
||||
return url.indexOf('http') === 0 ? url : API_URL + url;
|
||||
}
|
||||
|
||||
// URL для скачивания: в режиме прокси — через этот же WordPress (PHP → внутренний IP)
|
||||
function downloadUrl(path) {
|
||||
if (!path) return path;
|
||||
if (path.indexOf('http') === 0) return path;
|
||||
return USE_PROXY ? PROXY_URL + path : API_URL + path;
|
||||
}
|
||||
|
||||
var uploadArea = document.getElementById('uploadArea');
|
||||
var fileInput = document.getElementById('fileInput');
|
||||
var analyzeBtn = document.getElementById('analyzeBtn');
|
||||
@@ -61,11 +71,15 @@
|
||||
var formData = new FormData();
|
||||
formData.append('video', blob, filename);
|
||||
|
||||
// В режиме прокси шлём на этот же WordPress (PHP перешлёт на внутренний IP бэкенда),
|
||||
// иначе — напрямую на публичный URL API.
|
||||
var analyzeUrl = USE_PROXY ? PROXY_URL + '/analyze' : API_URL + '/analyze';
|
||||
|
||||
// Автоповтор при обрыве соединения (нестабильная мобильная сеть)
|
||||
var MAX_ATTEMPTS = 3;
|
||||
for (var attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
|
||||
try {
|
||||
var response = await fetch(API_URL + '/analyze', {
|
||||
var response = await fetch(analyzeUrl, {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
@@ -119,7 +133,7 @@
|
||||
var html = '<div class="med-error-box"><strong>Ошибка:</strong> ' + msg + '</div>';
|
||||
if (videoUrl) {
|
||||
html += '<div style="text-align:center; margin-top:15px">' +
|
||||
'<a class="med-btn-download" href="' + absUrl(videoUrl) + '">🎬 Скачать записанное видео</a>' +
|
||||
'<a class="med-btn-download" href="' + downloadUrl(videoUrl) + '">🎬 Скачать записанное видео</a>' +
|
||||
'</div>';
|
||||
}
|
||||
resultContent.innerHTML = html;
|
||||
@@ -134,10 +148,10 @@
|
||||
// Кнопки скачивания (вверху блока результатов)
|
||||
if (data.share_id) {
|
||||
html += '<div class="med-download-buttons">' +
|
||||
'<a class="med-btn-download" href="' + API_URL + '/download/' + data.share_id + '/pdf">📄 Скачать PDF</a>' +
|
||||
'<a class="med-btn-download" href="' + API_URL + '/download/' + data.share_id + '/docx">📝 Скачать DOCX</a>';
|
||||
'<a class="med-btn-download" href="' + downloadUrl('/download/' + data.share_id + '/pdf') + '">📄 Скачать PDF</a>' +
|
||||
'<a class="med-btn-download" href="' + downloadUrl('/download/' + data.share_id + '/docx') + '">📝 Скачать DOCX</a>';
|
||||
if (data.video_url) {
|
||||
html += '<a class="med-btn-download" href="' + absUrl(data.video_url) + '">🎬 Скачать видео</a>';
|
||||
html += '<a class="med-btn-download" href="' + downloadUrl(data.video_url) + '">🎬 Скачать видео</a>';
|
||||
}
|
||||
html += '<a class="med-btn-download" href="https://max.ru/miac_dnr_bot" target="_blank" rel="noopener">🏥 Запись на диспанцеризацию</a>' +
|
||||
'</div>';
|
||||
|
||||
Reference in new issue
Block a user