nodebb-plugin-ezoic-infinite 1.7.40 → 1.7.42
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/library.js +7 -1
- package/package.json +1 -1
- package/public/client.js +3 -33
package/library.js
CHANGED
|
@@ -12,7 +12,13 @@ const plugin = {};
|
|
|
12
12
|
function normalizeExcludedGroups(value) {
|
|
13
13
|
if (!value) return [];
|
|
14
14
|
if (Array.isArray(value)) return value;
|
|
15
|
-
|
|
15
|
+
// NodeBB stocke les settings multi-valeurs comme string JSON "[\"group1\",\"group2\"]"
|
|
16
|
+
const s = String(value).trim();
|
|
17
|
+
if (s.startsWith('[')) {
|
|
18
|
+
try { const parsed = JSON.parse(s); if (Array.isArray(parsed)) return parsed.map(String).filter(Boolean); } catch (_) {}
|
|
19
|
+
}
|
|
20
|
+
// Fallback : séparation par virgule
|
|
21
|
+
return s.split(',').map(v => v.trim()).filter(Boolean);
|
|
16
22
|
}
|
|
17
23
|
|
|
18
24
|
function parseBool(v, def = false) {
|
package/package.json
CHANGED
package/public/client.js
CHANGED
|
@@ -32,8 +32,9 @@
|
|
|
32
32
|
*
|
|
33
33
|
* v34 moveDistantWrap — voir v38.
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* v50 Suppression de bindLoginCheck() : NodeBB fait un rechargement complet
|
|
36
|
+
* après login — filter:middleware.renderHeader re-évalue l'exclusion au
|
|
37
|
+
* rechargement. Redondant depuis le fix normalizeExcludedGroups (v49).
|
|
37
38
|
*
|
|
38
39
|
* v43 Seuil de recyclage abaissé à -vh + unobserve avant recyclage.
|
|
39
40
|
*
|
|
@@ -818,36 +819,6 @@
|
|
|
818
819
|
} catch (_) {}
|
|
819
820
|
}
|
|
820
821
|
|
|
821
|
-
/**
|
|
822
|
-
* Retire les scripts Ezoic du DOM si l'utilisateur vient de se connecter
|
|
823
|
-
* et appartient à un groupe exclu.
|
|
824
|
-
*
|
|
825
|
-
* NodeBB ne recharge pas la page après login — les scripts injectés en <head>
|
|
826
|
-
* restent en DOM. On détecte la connexion en comparant l'uid avant/après
|
|
827
|
-
* chaque action:ajaxify.end, puis on vérifie /api/plugins/ezoic-infinite/config.
|
|
828
|
-
* Si excluded:true, on retire les 4 scripts Ezoic du DOM et on arrête le plugin.
|
|
829
|
-
*/
|
|
830
|
-
function bindLoginCheck() {
|
|
831
|
-
const $ = window.jQuery;
|
|
832
|
-
if (!$) return;
|
|
833
|
-
let prevUid = window.app?.user?.uid ?? 0;
|
|
834
|
-
|
|
835
|
-
$(window).on('action:ajaxify.end.nbbEzoicLogin', async () => {
|
|
836
|
-
const uid = window.app?.user?.uid ?? 0;
|
|
837
|
-
if (uid === prevUid || uid === 0) { prevUid = uid; return; }
|
|
838
|
-
prevUid = uid;
|
|
839
|
-
// L'utilisateur vient de se connecter — vérifier s'il est exclu
|
|
840
|
-
try {
|
|
841
|
-
const r = await fetch('/api/plugins/ezoic-infinite/config', { credentials: 'same-origin' });
|
|
842
|
-
if (!r.ok) return;
|
|
843
|
-
const cfg = await r.json();
|
|
844
|
-
if (!cfg.excluded) return;
|
|
845
|
-
// Exclu : recharger la page — le <head> sera re-rendu sans les scripts Ezoic
|
|
846
|
-
window.location.reload();
|
|
847
|
-
} catch (_) {}
|
|
848
|
-
});
|
|
849
|
-
}
|
|
850
|
-
|
|
851
822
|
function bindScroll() {
|
|
852
823
|
let ticking = false;
|
|
853
824
|
window.addEventListener('scroll', () => {
|
|
@@ -868,7 +839,6 @@
|
|
|
868
839
|
ensureDomObserver();
|
|
869
840
|
bindNodeBB();
|
|
870
841
|
bindScroll();
|
|
871
|
-
bindLoginCheck();
|
|
872
842
|
blockedUntil = 0;
|
|
873
843
|
requestBurst();
|
|
874
844
|
|