[nodebb-plugin-ns-spoiler] NS Spoiler
-
@MJ will be helpful if you will do small experiment.
Prepare post with exact content:
::: hidden content one ::: content between spoilers ::: hidden content two :::
Update
parser.js
file in spoiler library with logging message, findnode_modules/nodebb-plugin-ns-spoiler/plugin/parser.js
, lines 11-25Parser.getContentAt = function (content, index, done) { console.log('CONTENT', JSON.stringify(content), index); // <-- ADD THIS LINE async.waterfall([ async.apply(Parser.prepare, content), function (sanitizedContent, next) { console.log('SANITIZED', JSON.stringify(sanitizedContent)); // <-- ADD THIS LINE var spoilerContent; spoiler.lastIndex = index; spoilerContent = spoiler.exec(sanitizedContent); if (spoilerContent) { next(null, spoilerContent[1]); } else { next(new Error('Something went wrong. Spoiler content can not be found.')); } } ], done); };
Edit plugin's file and restart a NodeBB.
Go to forum, and click on the first spoiler once, click on the second spoiler once, and provide here a logs from NodeBB.
P.S.
Also, what Node version do you use? -
Oh, just found this plugin doesn't work. I see spoiler in post, but when click, it doesn't open, only changes eye symbol.
NodeBB v1.3.0. (work at v1.2.1)
nodebb-plugin-ns-spoiler 3.0.3 (when update forum from v1.2.1 to 1.3.0 also update this plugin)(example: http://forum.veloufa.ru/topic/7033/15-16-октября-2016-кольцо-24)
-
- NodeBB v1.3.0
- Node v4.2.6 + MongoDB 2.6.10
- nodebb-plugin-composer-default 4.2.13
nodebb-plugin-dbsearch 1.0.3
nodebb-plugin-embed-combo 0.1.9
nodebb-plugin-emoji-apple 1.0.4
nodebb-plugin-emoji-extended 1.1.1
nodebb-plugin-featured-topics-extended 1.1.5
nodebb-plugin-google-analytics 0.5.9
nodebb-plugin-imgur 1.0.17 | Latest 1.0.18
nodebb-plugin-markdown 6.0.2
nodebb-plugin-mentions 1.1.3
nodebb-plugin-ns-spoiler 3.0.3
nodebb-plugin-soundpack-default 0.1.6
nodebb-plugin-spam-be-gone 0.4.10
nodebb-plugin-sso-vk 2.0.7
nodebb-plugin-telegram-notifications 0.1.3
nodebb-plugin-youtube-embed 0.6.4 | Latest 0.6.6
nodebb-rewards-essentials 0.0.9
nodebb-widget-essentials 2.0.13
-
I have tried with an environment which is very similar
NodeBB 1.4.1 + Node 4.2.6 + MongoDB 3.4.0 and set of plugins that you have provided.
If you have time, you could try to do actions from this message: https://community.nodebb.org/post/56205 and post a result here.
-
NodeBB v1.4.2 + Node v7.4.0 + MongoDB v3.4.1
Error has occurred, error: Something went wrong. Spoiler content can not be found. nodebb.min.js:15:26743 a/< https://example.org/nodebb.min.js:15:26743 d.prototype.onack https://example.org/nodebb.min.js:6:4510 d.prototype.onpacket https://example.org/nodebb.min.js:6:3833 e.exports/< https://example.org/nodebb.min.js:6:5960 i.prototype.emit https://example.org/nodebb.min.js:5:26757 h.prototype.ondecoded https://example.org/nodebb.min.js:4:25688 e.exports/< https://example.org/nodebb.min.js:6:5960 n.prototype.emit https://example.org/nodebb.min.js:4:19868 f.prototype.add https://example.org/nodebb.min.js:4:5062 h.prototype.ondata https://example.org/nodebb.min.js:4:25633 e.exports/< https://example.org/nodebb.min.js:6:5960 i.prototype.emit https://example.org/nodebb.min.js:5:26757 f.prototype.onPacket https://example.org/nodebb.min.js:5:2629 f.prototype.setTransport/< https://example.org/nodebb.min.js:5:191 i.prototype.emit https://example.org/nodebb.min.js:5:26757 o.prototype.onPacket https://example.org/nodebb.min.js:5:15153 o.prototype.onData https://example.org/nodebb.min.js:5:15102 d.prototype.addEventListeners/this.ws.onmessage https://example.org/nodebb.min.js:5:31691
NodeBB log after parser.js edit:
7/1 04:06:19 [27805] - info: NodeBB is now listening on: 127.0.0.1:4567 CONTENT "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" 1 SANITIZED "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" CONTENT "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" 1 SANITIZED "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" CONTENT "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" 1 SANITIZED "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" CONTENT "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n" 1 SANITIZED "\n<div class=\"ns-spoiler\" data-index=\"1\" data-open=\"false\"><div class=\"ns-spoiler-control\"><a class=\"btn btn-default\" href=\"#\"><i class=\"fa fa-eye\"></i> spoiler</a></div><div class=\"ns-spoiler-content\"></div></div>\n\n"
-
@KitsuneSolar said in [nodebb-plugin-ns-spoiler] NS Spoiler:
confirming the bug on:
nodebb v1.4.2
mongodb v3.2.1
node v4.7.1I'm getting this error in browser console:
Error has occurred, error: Something went wrong. Spoiler content can not be found. -
@KitsuneSolar your investigation is very helpful.
Could you disable all 3-rd party plugins so only Native Plugins and Spoiler Plugin will be active? Am I right that you don't see an issue anymore?
My theory: some plugin in the chain rewrites a payload. It is not reproducible for me because I'm using different plugins, mostly which I have developed.
-
@Nicolas said in [nodebb-plugin-ns-spoiler] NS Spoiler:
Could you disable all 3-rd party plugins so only Native Plugins and Spoiler Plugin will be active?
3-rd party plugins
I have only nodebb-plugin-poll & spam-be-gone.
-
Version 3.1.0
A new version is available. Summary: Looks like investigation with Spoiler Content issue is resolved. Thanks to https://github.com/wsyscz2 user. The issue was a post cache.
Changes:
- Change internal logic to use a plugins hooks
- Fix issue with spoiler content
-
Images not showing.
TypeError: e.$element is null[Learn More] nodebb.min.js:7:25286 t.prototype.destroy/< https://domain.com/nodebb.min.js:7:25286 a https://domain.com/nodebb.min.js:7:22395 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985 TypeError: r.$element is null[Learn More] nodebb.min.js:7:20985 t.prototype.show/g https://domain.com/nodebb.min.js:7:20985 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985 TypeError: e.$element is null[Learn More] nodebb.min.js:7:25286 t.prototype.destroy/< https://domain.com/nodebb.min.js:7:25286 a https://domain.com/nodebb.min.js:7:22395 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985
-
@KitsuneSolar said in [nodebb-plugin-ns-spoiler] NS Spoiler:
Images not showing.
TypeError: e.$element is null[Learn More] nodebb.min.js:7:25286 t.prototype.destroy/< https://domain.com/nodebb.min.js:7:25286 a https://domain.com/nodebb.min.js:7:22395 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985 TypeError: r.$element is null[Learn More] nodebb.min.js:7:20985 t.prototype.show/g https://domain.com/nodebb.min.js:7:20985 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985 TypeError: e.$element is null[Learn More] nodebb.min.js:7:25286 t.prototype.destroy/< https://domain.com/nodebb.min.js:7:25286 a https://domain.com/nodebb.min.js:7:22395 Ce/r https://domain.com/nodebb.min.js:2:9962 e.event.special.bsTransitionEnd.handle https://domain.com/nodebb.min.js:6:29279 v.event.dispatch https://domain.com/nodebb.min.js:2:12448 v.event.add/g.handle https://domain.com/nodebb.min.js:2:10404 .trigger https://domain.com/nodebb.min.js:3:9401 .trigger/< https://domain.com/nodebb.min.js:3:9937 .each https://domain.com/nodebb.min.js:1:2988 v.prototype.each https://domain.com/nodebb.min.js:1:1077 .trigger https://domain.com/nodebb.min.js:3:9916 e.fn.emulateTransitionEnd/r https://domain.com/nodebb.min.js:6:28985
Same issue. Not showing images
-
@KitsuneSolar Same
-
Version 4.0.0
A new version is available. Summary: add compatibility with changes in NodeBB v1.1.0 and support for the images. Thanks to https://github.com/segura2010 user. The issue was a lazy loading for the images which was introduced in NodeBB v1.1.0
Changes:
- Add compatibility with NodeBB v1.1.0
- Change content rendering to accommodate image lazy loading
-
On nodebb 1.4.5, spoiler v4.1
I keep getting error:Uncaught TypeError: e.unloadImages is not a function
at p.<anonymous> (nodebb.min.js?v=8vda2olngi6:12)
at p.onack (nodebb.min.js?v=8vda2olngi6:6)
at p.onpacket (nodebb.min.js?v=8vda2olngi6:6)
at h.<anonymous> (nodebb.min.js?v=8vda2olngi6:6)
at h.i.emit (nodebb.min.js?v=8vda2olngi6:5)
at h.ondecoded (nodebb.min.js?v=8vda2olngi6:4)
at f.<anonymous> (nodebb.min.js?v=8vda2olngi6:6)
at f.n.emit (nodebb.min.js?v=8vda2olngi6:4)
at f.add (nodebb.min.js?v=8vda2olngi6:4)
at h.ondata (nodebb.min.js?v=8vda2olngi6:4) -
Did you see such error before? Before
1.4.5
?