-
Notifications
You must be signed in to change notification settings - Fork 2
/
content_script.js
62 lines (49 loc) · 1.4 KB
/
content_script.js
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// ==UserScript==
// @name Own Your Comments
// @include http://*
// @include https://*
// @require URI.js
// @require jquery-1.8.3.min.js
// ==/UserScript==
var OwnYourComments = (function () {
// Private
// Utility functions
function getOption(key, callback) {
kango.invokeAsync('kango.storage.getItem', key, callback);
}
/**
* Expands {name} templates with the replace.name, or the empty string
*/
function expandTemplates(postURL, replace) {
for (var template in replace) {
if (replace[template] == undefined)
continue;
postURL = postURL.split('{' + template + '}')
.join(encodeURIComponent(replace[template].replace(/^\s+|\s+$/g, '')));
}
// replace any unreplaced templates with nothing
postURL = postURL.replace(/\{[a-zA-Z0-9_-]+\}/gi, '');
return postURL;
}
// Content manipuation functions
/**
* Embeds an Indieweb comments box before Disqus or Livefyre iframes
*/
function embedCommentsBox() {
$('iframe[data-disqus-uid]').before(function () {
var eID = $(this).attr('data-disqus-uid');
var el = $('iframe').attr('id', 'own-your-comments-embed-' + eID);
var properties = {
url: window.location.href
};
getOption('commentEmbedURL', function (url) {
$('#' + eID).attr('src', expandTemplates(url, properties));
});
return el;
});
}
// Public
return {
};
}());
embedCommentsBox();