nodebb-plugin-bilibili
Version:
NodeBB Plugin that allows users to embed BiliBili videos inline in their posts.
34 lines (32 loc) • 1.28 kB
JavaScript
; (function (bili) {
"use strict";
var converts = [
{ // Video
from: /<a href="(?:https?:\/\/)?(?:www\.)?bilibili\.(?:tv|com)\/video\/av(\d+).*?">.+<\/a>/g,
to: '<div class="embed-responsive embed-responsive-16by9">' +
'<iframe allowfullscreen="" scrolling="no" src="//player.bilibili.com/player.html?aid=$1&as_wide=1" ' +
'style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div>'
},
{
// b23 video (short url)
// eg: https://b23.tv/av*****
from: /<a href="(?:https?:\/\/)?(?:www\.)?b23\.(?:tv|com)\/av(\d+).*?">.+<\/a>/g,
to: '<div class="embed-responsive embed-responsive-16by9">' +
'<iframe allowfullscreen="" scrolling="no" src="//player.bilibili.com/player.html?aid=$1&as_wide=1" ' +
'style="border:0;height:100%;left:0;position:absolute;width:100%"></iframe></div>'
}
];
bili.parse = function (data, callback) {
try {
for (var i = 0; i < converts.length; i++)
data.postData.content = data.postData.content.replace(converts[i].from, converts[i].to);
callback(null, data);
} catch (ex) {
callback(ex, data);
}
};
bili.addScripts = function (scripts, callback) {
scripts.push('/assets/src/bilibili.js');
callback(null, scripts);
}
})(module.exports);