kopia lustrzana https://codeberg.org/lostinlight/distributopia
77 wiersze
2.3 KiB
JavaScript
77 wiersze
2.3 KiB
JavaScript
|
|
'use strict';
|
|
|
|
document.addEventListener('DOMContentLoaded', function () {
|
|
|
|
var h1 = document.querySelector('h1');
|
|
var postTitle = document.querySelector('head').querySelector('title');
|
|
var oggProp = document.querySelector('meta[property="og:title"]');
|
|
|
|
var t1 = postTitle === null ? '' : postTitle.textContent,
|
|
t2 = oggProp === null ? '' : oggProp.content,
|
|
t3 = h1 === null ? '' : h1.textContent;
|
|
|
|
var text = t1 || t2 || t3;
|
|
|
|
var link = encodeURIComponent(window.location.href);
|
|
|
|
var btnsNodeList = document.querySelectorAll('.share-btn');
|
|
|
|
var buttons = [];
|
|
for (var i = 0; i < btnsNodeList.length; i++) {
|
|
buttons.push(btnsNodeList[i]);
|
|
}
|
|
|
|
var inputsNodeList = document.querySelectorAll('.popup input');
|
|
|
|
var inputs = [];
|
|
for (var _i = 0; _i < inputsNodeList.length; _i++) {
|
|
inputs.push(inputsNodeList[_i]);
|
|
}
|
|
|
|
// If url was typed without https://, add it
|
|
function validateProtocol(url) {
|
|
var check = url.match(/^https:\/\//i);
|
|
if (check) {
|
|
return url;
|
|
} else {
|
|
var newUrl = url.split('/').filter(function (n) {
|
|
return n.indexOf('.') > -1;
|
|
});
|
|
return 'https://' + encodeURIComponent(newUrl);
|
|
}
|
|
}
|
|
|
|
var shareLink = function shareLink(e) {
|
|
var isBtn = e.target.name !== 'podurl';
|
|
var service = isBtn ? e.target.value : e.target.nextSibling.value;
|
|
var pod = isBtn ? e.target.previousSibling.value : e.target.value;
|
|
var title = encodeURI(text).replace(/%20/g, '+');
|
|
var path = validateProtocol(pod);
|
|
|
|
if (service === 'diaspora' || service === 'friendica' || service === 'socialhome') {
|
|
window.open(path + '/bookmarklet?url=' + link + '&title=' + title);
|
|
} else if (service === 'gnusocial') {
|
|
window.open(path + '/notice/new?status_textarea=' + title + '&' + link);
|
|
} else if (service === 'mastodon') {
|
|
window.open(path + '/share?text=' + title + ' ' + link);
|
|
} else if (service === 'hubzilla') {
|
|
window.open(path + '/rpost?f=&url=' + link + '&title=' + title);
|
|
} else {
|
|
return;
|
|
}
|
|
};
|
|
|
|
buttons.forEach(function (btn) {
|
|
return btn.addEventListener('click', shareLink, false);
|
|
});
|
|
|
|
// shareLink on Enter press
|
|
inputs.forEach(function (input) {
|
|
return input.addEventListener('keypress', function (e) {
|
|
if (e.keyCode === 13) {
|
|
shareLink(e);
|
|
}
|
|
});
|
|
});
|
|
}); |