diff --git a/porn365.js b/porn365.js index 642560b..d66da35 100644 --- a/porn365.js +++ b/porn365.js @@ -213,11 +213,46 @@ log('UI mounted'); } + function injectLeftMenuDomFallback() { + try { + if (qs('#p365x-left-menu-item')) return true; + + var host = qs('.menu .menu__list') || qs('.menu__list') || qs('.menu .menu__body') || qs('.menu'); + if (!host) return false; + + var item = ce('div', 'menu__item selector'); + item.id = 'p365x-left-menu-item'; + item.setAttribute('data-action', 'p365x'); + item.innerHTML = '' + + '
' + + ''; + + item.addEventListener('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + openPanel(); + }); + + host.appendChild(item); + log('Left menu entry injected via DOM fallback'); + return true; + } catch (e) { + log('DOM fallback menu error: ' + (e && e.message ? e.message : e)); + return false; + } + } + function registerLeftMenuEntry() { try { if (!window.Lampa) return; - // Основной путь: пункт в левом меню + var added = false; + if (Lampa.Menu && typeof Lampa.Menu.add === 'function') { Lampa.Menu.add({ title: 'P365X', @@ -228,9 +263,17 @@ action: function () { openPanel(); } }); log('Left menu entry registered via Lampa.Menu.add'); + added = true; + } + + // Доп. фолбэк: принудительная вставка в DOM левого меню + if (!added) { + injectLeftMenuDomFallback(); + // повторная попытка, т.к. меню иногда рисуется позже + setTimeout(injectLeftMenuDomFallback, 1200); + setTimeout(injectLeftMenuDomFallback, 3000); } - // Фолбэк: оставим кнопку в настройках, если API меню недоступно if (Lampa.SettingsApi && typeof Lampa.SettingsApi.addParam === 'function') { Lampa.SettingsApi.addParam({ component: 'interface',