15-07-2026 01:33 AM - editat 28-07-2026 11:27 PM
Primești în privat multe imagini cu routere? Te enervează că nu poți să vezi clar dacă au 8 sau 12 antene?
Avem soluția! 🙃 (sub formă de UserScript care funcționează cu extensiile Violentmonkey / Tampermonkey / Greasemonkey). Personal folosesc Violentmonkey, e open source.
// ==UserScript==
// @name Comunitatea Orange - PM Images Fix
// @namespace Violentmonkey Scripts
// @match https://comunitate.orange.ro/t5/notes/*
// @version 1.0.0
// @description Reconstruiește imaginile din PM să poată fi deschise la rezoluția originală
// @author Viper @ comunitate.orange.ro
// ==/UserScript==
(function() {
'use strict';
function rebuildPMImages() {
const images = document.querySelectorAll('img[src*="/image-id/"]:not(.procesata)');
images.forEach(oldImg => {
oldImg.classList.add('procesata');
const angularWrapper = oldImg.closest('span[class*="lia-inline-image"], span[class*="lia-image"]');
if (angularWrapper) {
try {
// Folosim API-ul URL pentru manipulare "chirurgicală"
let urlObj = new URL(oldImg.src);
// 1. Tăiem din "cale" tot ce e după ID-ul imaginii
const pathMatch = urlObj.pathname.match(/(.*?\/image-id\/[a-zA-Z0-9]+)/);
if (pathMatch) {
urlObj.pathname = pathMatch[1];
}
// 2. Ștergem doar limitatorul de rezoluție (dacă există)
urlObj.searchParams.delete('px');
// Parametrul ?v=v2 (și oricare altul) RĂMÂNE intact automat
const stealthUrl = urlObj.toString();
// 3. Construim link-ul curat
const cleanLink = document.createElement('a');
cleanLink.href = stealthUrl;
cleanLink.target = '_blank';
cleanLink.title = "Click pentru a deschide imaginea la rezoluția originală";
cleanLink.style.cssText = 'display: inline-block; cursor: zoom-in !important; margin: 4px 0;';
// 4. Clonăm miniatura pentru PM
const cleanImg = document.createElement('img');
cleanImg.src=oldImg.src;
cleanImg.alt = oldImg.alt || "Imagine PM";
cleanImg.style.cssText = 'max-width: 100%; height: auto; display: block; border-radius: 4px; border: 1px solid #e0e0e0;';
cleanLink.appendChild(cleanImg);
// 5. Înlocuim span-ul
angularWrapper.parentNode.replaceChild(cleanLink, angularWrapper);
} catch (e) {
console.error("Eroare la procesarea URL-ului:", e);
}
}
});
}
rebuildPMImages();
new MutationObserver(rebuildPMImages).observe(document.body, {childList: true, subtree: true});
})();LE: Pentru Safari am găsit aplicație (extensie): Userscripts.
Pe iPhone e destul de dificil de salvat scriptul copiat de mai sus fiindcă nu are editor inclus, așa că am urcat scriptul pe github sub formă de gist, aici: orange_fix_pm_images.user.js
Se instalează aplicația de mai sus, se activează din setările Safari.
Se ține apăsat pe link-ul către script, se selectează "Download Linked File", se mută fișierul descărcat în stocarea iPhone-ului în folderul Userscripts (creat de către aplicație).
LE2: Bonus, skip la galerie pentru imaginile de pe forum: orange_fix_forum_images.user.js
LE3: Ca alternativă mai puțin "nucleară" pentru imaginile de pe forum (nu din mesajele private), am reparat galeria: orange_fix_forum_gallery.user.js
// ==UserScript==
// @name Comunitatea Orange - Image Gallery Fixes
// @namespace Violentmonkey Scripts
// @match https://comunitate.orange.ro/*
// @exclude https://comunitate.orange.ro/t5/notes/*
// @version 1.0.4
// @description Forțează afișarea butonului de descărcare, ascunde butoanele nefuncționale (Kudos și Report), adaugă un buton de View.
// @author Viper @ comunitate.orange.ro
// ==/UserScript==
(function() {
'use strict';
// --- 1. INJECTĂM REGULILE CSS ---
const customStyle = document.createElement('style');
customStyle.innerHTML = `
/* --- 1. Ascundem butoanele de Kudos și Report --- */
li\\:kudos-kudo, .lia-lightbox-actions .lia-kudos-kudo,
li\\:moderation-flag-entity, .lia-moderation-flag-entity {
display: none !important;
}
/* --- 2. Arătăm Download și View --- */
li\\:media-download-media, .lia-media-download-icon,
.lia-image-download-link, .custom-view-btn {
display: inline-block !important;
visibility: visible !important;
opacity: 1 !important;
}
/* --- 3. Hitbox generos și scut anti-suprapunere --- */
.lia-image-download-link, .custom-view-btn-link {
padding: 12px 16px !important;
margin: 4px !important;
min-width: 44px !important;
min-height: 44px !important;
display: flex !important;
align-items: center !important;
justify-content: center !important;
position: relative !important;
z-index: 9999 !important;
cursor: pointer !important;
}
/* --- 4. Spațiere și layout fluid pentru bară --- */
.lia-lightbox-actions {
display: flex !important;
flex-wrap: wrap !important;
justify-content: flex-end !important;
min-width: 120px !important;
}
.lia-lightbox-info {
display: flex !important;
flex-wrap: wrap !important;
height: auto !important;
align-items: center !important;
}
.lia-lightbox-context {
flex: 1 !important;
min-width: 150px !important;
}
`;
document.head.appendChild(customStyle);
// --- 2. LOGICA DE INJECTARE A BUTONULUI NOU ---
function injectViewButton() {
// Căutăm bara de acțiuni și butonul nativ de download
const actionsContainer = document.querySelector('.lia-lightbox-actions');
const downloadWrapper = document.querySelector('li\\:media-download-media, .lia-media-download-icon');
// Dacă galeria e deschisă, dar butonul nostru încă nu există în ea
if (actionsContainer && downloadWrapper && !document.querySelector('.custom-view-btn')) {
// Creăm wrapper-ul butonului
const btnWrapper = document.createElement('span');
btnWrapper.className = 'custom-view-btn lia-button-wrapper lia-button-wrapper-primary';
btnWrapper.style.cssText = 'display: inline-block !important; margin-right: 5px;';
// Creăm link-ul propriu-zis
const viewLink = document.createElement('a');
viewLink.className = 'custom-view-btn-link lia-button lia-button-primary lia-button-inversed lia-button-icon';
viewLink.title = 'Deschide imaginea originală într-un tab nou';
// Adăugăm iconița de "External Link" (sau poți schimba în 'lia-fa-eye' pentru un ochi)
const icon = document.createElement('i');
icon.className = 'lia-fa lia-fa-external-link';
viewLink.appendChild(icon);
btnWrapper.appendChild(viewLink);
// LOGICA LA CLICK: Când dăm click, citim pe loc URL-ul butonului de download
viewLink.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation(); // Oprim Angular să se amestece
// Căutăm link-ul nativ de download ca să îi "furăm" adresa
const currentDlLink = document.querySelector('a[download]');
if (currentDlLink && currentDlLink.href) {
let originalHref = currentDlLink.href;
// 1. Curățăm URL-ul pentru imaginile standard (inserate)
let viewUrl = originalHref
.replace('/download/true', '')
.replace('/is-moderation-mode/true', '');
// 2. Aplicăm fix-ul pentru atașamente
if (viewUrl.includes('/attachments/')) {
// Verificăm dacă linkul are deja alți parametri (conține un '?')
if (viewUrl.includes('?')) {
viewUrl += '&inline=true';
} else {
viewUrl += '?inline=true';
}
}
window.open(viewUrl, '_blank'); // Deschidem tab nou
}
});
// Îl inserăm imediat înaintea butonului de Download
downloadWrapper.parentNode.insertBefore(btnWrapper, downloadWrapper);
}
}
// --- 3. OBSERVER PENTRU ANGULAR ---
// Angular distruge și recreează elemente la fiecare poză. Așa că punem un "paznic"
// care rulează funcția noastră de fiecare dată când se schimbă ceva în DOM.
const observer = new MutationObserver(() => {
injectViewButton();
});
// Începem să supraveghem pagina
observer.observe(document.body, { childList: true, subtree: true });
})();Modificări aduse:
N-o să șterg totuși scriptul de la LE2 dacă sunt doritori care vor să nu folosească galeria de niciun fel.
Pentru întrebări, sugestii și reclamații, lăsați un comentariu.
la 15-07-2026 10:26 PM
Acum este ok, cum imi place.😊
la 15-07-2026 10:50 PM
Mulțumesc pentru confirmare. Am actualizat prima postare.
Pare mai ok să păstrăm galeria funcțională.
28-07-2026 11:31 PM - editat 29-07-2026 10:22 AM
Am actualizat scriptul orange_fix_forum_gallery.user.js și acum butonul nou adăugat pentru "View" funcționează și pentru atașamente, nu doar pentru imaginile inserate în postare.
Am mai modificat ceva la script: pe mobil, imaginea din atașamente se afișa peste numele fișierului, nu am reușit să repar complet treaba asta dar e ceva mai bine.
@Orange Romania S.A. 2026
Cod unic de înregistrare: 9010105
Numar inregistrare Registrul Comertului: J1996010178400
Sediul social: Clădirea Tandem, Strada Matei Millo, nr.5, Sector 1, Bucuresti
Certificatul Tip de furnizor