Copy article informations from Miamed Amboss.
当前为
// ==UserScript==
// @name Amboss Copier
// @namespace http://oix.cc/gm
// @description Copy article informations from Miamed Amboss.
// @author Bin Zhang
// @icon https://amboss.miamed.de/favicon-192x192.png
// @homepageURL http://oix.cc/amboss
// @version 0.0.3
// @match https://amboss.miamed.de/library
// @include /^https?://amboss-miamed-de\.ezproxy\..*/library$/
// @grant GM_setClipboard
// @run-at document-idle
// ==/UserScript==
(function(){
var loadingWatcher;
var currentContent;
if (typeof angular !== 'undefined' || typeof angular.element('#LibraryContent').scope() !== 'undefined') {
setwatcher();
window.addEventListener("hashchange", setwatcher);
document.addEventListener('keydown', function(e) {
if ('card' === currentContent) {
// pressed ctrl+alt+c
if (e.key == 'c' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey) {
GM_setClipboard('<a href="url">test</a>','html');
}
} else if ('list' === currentContent) {
// pressed ctrl+alt+c
if (e.key == 'c' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey) {
GM_setClipboard(getlisthtml(),'html');
}
}
}, false);
}
function setwatcher() {
currentContent = null;
var i;
if (!i) i = 50;
if (null !== getParameterByName('xid', '?' + window.location.hash.substring(1))) {
// only cards set $root.loading, poll loading
loadingWatcher = setInterval(checkloading, i);
} else {
i = 1000;
loadingWatcher = setInterval(function (){
clearInterval(loadingWatcher);
loaded();
}, i);
}
//console.log('i=' + i);
}
function checkloading() {
//console.log('watch');
//console.log(angular.element('#LibraryContent').scope().$root.loading);
if (angular.element('#LibraryContent').scope().$root.loading !== true) {
//console.log(typeof angular.element('#LibraryContent').scope().$root.loading);
clearInterval(loadingWatcher);
loaded();
}
}
function loaded () {
console.log('loaded');
//console.log($('#LibraryContent').html());
if (null !== getParameterByName('xid', '?' + window.location.hash.substring(1)) && $('#LibraryContent').find('article.LearningCard:visible').length > 0) {
//console.log('card');
currentContent = 'card';
}
if ($('#LibraryContent').find('#LibraryList:visible').length > 0) {
//console.log('list');
currentContent = 'list';
}
}
function getParameterByName(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
function getlisthtml() {
var html = '';
html += '<h2>' + $.trim($('#LibraryContent').find('#Title').text()) + '</h2>';
var tempDiv = $('<div>').append($('table#LibraryList').clone().find('td:not(:nth-child(2), :nth-child(3), :nth-child(8), :nth-child(9))').remove().end().find('th').remove().end());
tempDiv.hide();
$('body').append(tempDiv);
$(tempDiv).find('a').each(function(i, anchor){
anchor.href = $(anchor).prop('href'); // all urls to abs
})
html += $('table#LibraryList').html();
tempDiv.remove();
tempDiv = null;
return html;
}
}());