forked from a5mith/nodebb-plugin-youtube-lite
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlibrary.js
More file actions
29 lines (24 loc) · 1.17 KB
/
library.js
File metadata and controls
29 lines (24 loc) · 1.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(function(module) {
"use strict";
var YoutubeLite = {},
embed = '<div class="js-lazyYT" data-youtube-id="$1" data-height="360"><iframe class="lazytube" src="//www.youtube.com/embed/$1"></iframe></div>';
var regularUrl = /<a href="(?:https?:\/\/)?(?:www\.)?(?:youtube\.com)\/(?:watch\?v=)(.+)">.+<\/a>/g;
var shortUrl = /<a href="(?:https?:\/\/)?(?:www\.)?(?:youtu\.be)\/(.+)">.+<\/a>/g;
var embedUrl = /<a href="(?:https?:\/\/)?(?:www\.)youtube.com\/embed\/([\w\-_]+)">.+<\/a>/;
YoutubeLite.parse = function(data, callback) {
if (!data || !data.postData || !data.postData.content) {
return callback(null, data);
}
if (data.postData.content.match(embedUrl)) {
data.postData.content = data.postData.content.replace(embedUrl, embed);
}
if (data.postData.content.match(regularUrl)) {
data.postData.content = data.postData.content.replace(regularUrl, embed);
}
if (data.postData.content.match(shortUrl)) {
data.postData.content = data.postData.content.replace(shortUrl, embed);
}
callback(null, data);
};
module.exports = YoutubeLite;
}(module));