nodebb-plugin-ezoic-infinite 1.7.74 → 1.7.75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/public/client.js +7 -16
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-ezoic-infinite",
3
- "version": "1.7.74",
3
+ "version": "1.7.75",
4
4
  "description": "Production-ready Ezoic infinite ads integration for NodeBB 4.x",
5
5
  "main": "library.js",
6
6
  "license": "MIT",
package/public/client.js CHANGED
@@ -280,28 +280,19 @@
280
280
  }
281
281
 
282
282
  function watchFill(id, wrap) {
283
- // Surveille le placeholder pour détecter un vrai fill, y compris les iframes
284
- // AMP cross-origin invisibles depuis le DOM parent.
285
- // Critères : iframe présente, OU container Google avec height > 0.
283
+ // Détecte une vraie pub dans le placeholder, y compris iframes AMP cross-origin.
284
+ // On surveille les mutations dès qu'une iframe ou ins apparaît, on marque filled.
285
+ // Les no-fills (containers height:0) sont gérés par scheduleEmptyCheck.
286
286
  const ph = document.getElementById(`${PH_PREFIX}${id}`);
287
287
  if (!ph) return;
288
288
  const check = () => {
289
- // iframe ou ins = pub réelle
290
- if (ph.querySelector('iframe, ins')) { wrap.setAttribute('data-ez-filled', '1'); obs.disconnect(); return; }
291
- // container Google avec hauteur > 0 = pub réelle
292
- const containers = ph.querySelectorAll('[id*="__container__"]');
293
- for (const c of containers) {
294
- const h = parseInt(c.style.height, 10);
295
- if (h > 0) { wrap.setAttribute('data-ez-filled', '1'); obs.disconnect(); return; }
296
- }
297
- // container présent mais height:0 = no-fill confirmé → is-empty
298
- if (containers.length > 0) {
299
- const allZero = [...containers].every(c => parseInt(c.style.height, 10) === 0);
300
- if (allZero) { wrap.classList.add('is-empty'); obs.disconnect(); }
289
+ if (ph.querySelector('iframe, ins')) {
290
+ wrap.setAttribute('data-ez-filled', '1');
291
+ obs.disconnect();
301
292
  }
302
293
  };
303
294
  const obs = new MutationObserver(check);
304
- obs.observe(ph, { childList: true, subtree: true, attributes: true, attributeFilter: ['style'] });
295
+ obs.observe(ph, { childList: true, subtree: true });
305
296
  }
306
297
 
307
298
  function insertAfter(el, id, klass, key) {