您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
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.5
- // @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) {
- //if ((e.key == 'c' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey) || (e.key == 'F9' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey)) {
- if ((e.key == 'c' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey)) {
- // pressed ctrl+alt+c or //F9
- GM_setClipboard(getcardhtml(),'html');
- } else if (e.key == 'a' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey) {
- // pressed ctrl+alt+a
- GM_setClipboard(getcardhtml(true),'html');
- }
- } else if ('list' === currentContent) {
- if (e.key == 'c' && !e.shiftKey && e.ctrlKey && e.altKey && !e.metaKey) {
- // pressed ctrl+alt+c
- 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 = 2000;
- 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());
- // TODO: Change title of kreuzen
- // https://amboss.miamed.de/study2/index#/aB123Cdef/45
- // $('<div/>').html($('[tooltip-classname="lg"]').attr('tooltip-content')).text().replace(/^(Sitzung: )/,'');
- // "Examens-Kreuzplan (H. 2016), Tag 12 (Frage 34 von 56)"
- 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';
- getListTitle(); // change browser window title if proper
- }
- }
- function getcardhtml(full) {
- var html = '';
- html += '<h1>' + $.trim($('article.LearningCard h1:first').clone().children().remove().end().text())
- + ($('article.LearningCard h1:first').attr('tooltip-content')? (' (' + $('article.LearningCard h1:first').attr('tooltip-content').replace(/^(Synonyme:<br> )/,'') + ')') : '')
- + '</h1>';
- var tempDiv;
- if (full) {
- tempDiv = $('<div>').append($('article.LearningCard>section').clone().find('section, .unwichtig, .veraltet').remove().end().find('li:emptyorspace').remove().end()); // remove meta infos, veraltet and unwichtig
- //.find('ul:visible:empty, ol:visible:empty').remove().end()
- //.find('ul:empty, ol:empty').remove().end()
- } else {
- tempDiv = $('<div>').append($('article.LearningCard>section:first p').clone()); // only p extracted, first section without p probably not abstracts
- }
- tempDiv.find('a').each(function(i, anchor){
- anchor.href = $(anchor).prop('href'); // all urls to abs
- })
- html += tempDiv.html();
- tempDiv.remove();
- tempDiv = null;
- return html;
- }
- function getlisthtml() {
- var html = '';
- var listTitle = getListTitle();
- html += '<h2>' + listTitle + '</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 += tempDiv.html();
- tempDiv.remove();
- tempDiv = null;
- return html;
- }
- function getListTitle() {
- var listTitle = $.trim($('#LibraryContent').find('#Title').text());
- var examDay = $.trim($('div.Tab.active li.result-selected').text());
- var checkStr = examDay ? $.trim(examDay.substring(0,6)).toUpperCase() : ''; // 'Tag 1 ' or 'Tag 99' => 'TAG 1' or 'TAG 99'
- if (examDay && checkStr.length > 2 && listTitle.substr(-checkStr.length) === checkStr) {
- listTitle = examDay;
- document.title = listTitle;
- }
- else if ('TOP-100 LERNKARTEN' === listTitle) {
- listTitle = 'Top-100 Lernkarten';
- document.title = listTitle;
- }
- return listTitle;
- }
- 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, " "));
- }
- $.expr[':'].notext = function detectNoText(x){
- return x.innerHTML && x.innerHTML.replace(/(<!--.*(?!-->))|\s+/g, '').length === 0
- }
- $.expr[':'].emptyorspace = function detectNoText(x){
- return x.innerHTML.replace(/(<!--.*(?!-->))|\s+/g, '').length === 0
- }
- }());