dotfiles/.config/BetterDiscord/plugins/copyCode.plugin.js

85 lines
1.8 KiB
JavaScript

//META{"name":"copyCode"}*//
var copyCode = function() {};
copyCode.prototype.inject = function() {
setTimeout(function(){
$("code.hljs").each(function() {
if (!$(this).find('.copybutton').length) {
$(this).css({
"position": "relative"
});
var button = $("<button>Copy</button>").addClass("copybutton").css({
"color": "#839496",
"border": "2px solid #282b30",
"background-color": "#2e3136",
"position": "absolute",
"right": "0",
"bottom": "0"
});
button.click(function() {
$(this).hide();
var text = $(this).parent()[0];
var range = document.createRange();
range.selectNode(text);
window.getSelection().addRange(range);
try {
document.execCommand('copy');
} catch (err) {
console.log(err);
}
window.getSelection().removeAllRanges();
$(this).show();
});
$(this).append(button);
}
});
}, 100);
};
copyCode.prototype.observer = function(e) {
this.inject();
};
copyCode.prototype.start = function() {
this.inject();
};
copyCode.prototype.load = function() {};
copyCode.prototype.enable = function() {};
copyCode.prototype.onSwitch = function() {};
copyCode.prototype.onMessage = function() {};
copyCode.prototype.getSettingsPanel = function() {
return "";
};
copyCode.prototype.getName = function() {
return "Copy Code Plugin";
};
copyCode.prototype.getDescription = function() {
return "Copies Code from Code Blocks with a Button";
};
copyCode.prototype.getVersion = function() {
return "2.0";
};
copyCode.prototype.getAuthor = function() {
return "Finicalmist";
};
copyCode.prototype.remove = function() {
$("code.hljs").css({
"position": ""
});
$(".copybutton").remove();
};
copyCode.prototype.stop = function() {};
copyCode.prototype.unload = function() {};
copyCode.prototype.disable = function() {};