nodebb-plugin-ezoic-infinite 1.7.43 → 1.7.44
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.
- package/package.json +1 -1
- package/public/client.js +0 -32
package/package.json
CHANGED
package/public/client.js
CHANGED
|
@@ -378,37 +378,6 @@
|
|
|
378
378
|
} catch (_) {}
|
|
379
379
|
}
|
|
380
380
|
|
|
381
|
-
// ── Prune (topics de catégorie uniquement) ────────────────────────────────
|
|
382
|
-
//
|
|
383
|
-
// Réactivé uniquement pour 'ezoic-ad-between' (liste de topics).
|
|
384
|
-
//
|
|
385
|
-
// Safe ici car NodeBB ne virtualise PAS les topics dans une catégorie :
|
|
386
|
-
// les li[component="category/topic"] restent dans le DOM pendant toute
|
|
387
|
-
// la session. Un wrap orphelin (ancre absente) signifie vraiment que le
|
|
388
|
-
// topic a disparu. Sans ce nettoyage, les wraps s'accumulent en tête de
|
|
389
|
-
// liste après un long scroll et bloquent les nouvelles injections.
|
|
390
|
-
//
|
|
391
|
-
// Toujours désactivé pour 'ezoic-ad-message' (posts de topic) :
|
|
392
|
-
// NodeBB virtualise les posts hors-viewport — il les retire puis les
|
|
393
|
-
// réinsère. pruneOrphans verrait des ancres temporairement absentes,
|
|
394
|
-
// supprimerait les wraps, et provoquerait une réinjection en haut.
|
|
395
|
-
|
|
396
|
-
function pruneOrphansBetween() {
|
|
397
|
-
const klass = 'ezoic-ad-between';
|
|
398
|
-
const cfg = KIND[klass];
|
|
399
|
-
|
|
400
|
-
document.querySelectorAll(`.${WRAP_CLASS}.${klass}`).forEach(w => {
|
|
401
|
-
const created = parseInt(w.getAttribute(A_CREATED) || '0', 10);
|
|
402
|
-
if (ts() - created < MIN_PRUNE_AGE_MS) return; // grâce post-création
|
|
403
|
-
|
|
404
|
-
const key = w.getAttribute(A_ANCHOR) ?? '';
|
|
405
|
-
const sid = key.slice(klass.length + 1); // après "ezoic-ad-between:"
|
|
406
|
-
if (!sid) { mutate(() => dropWrap(w)); return; }
|
|
407
|
-
|
|
408
|
-
const anchorEl = document.querySelector(`${cfg.baseTag}[${cfg.anchorAttr}="${sid}"]`);
|
|
409
|
-
if (!anchorEl?.isConnected) mutate(() => dropWrap(w));
|
|
410
|
-
});
|
|
411
|
-
}
|
|
412
381
|
|
|
413
382
|
// ── Injection ──────────────────────────────────────────────────────────────
|
|
414
383
|
|
|
@@ -615,7 +584,6 @@
|
|
|
615
584
|
);
|
|
616
585
|
|
|
617
586
|
if (kind === 'categoryTopics') {
|
|
618
|
-
pruneOrphansBetween();
|
|
619
587
|
return exec(
|
|
620
588
|
'ezoic-ad-between', getTopics,
|
|
621
589
|
cfg.enableBetweenAds, cfg.intervalPosts, cfg.showFirstTopicAd, 'topics'
|