Export TransIP DNS

extend transip domain with easy-to-copy-paste url,token and DNS records

当前为 2019-09-06 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Export TransIP DNS
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description extend transip domain with easy-to-copy-paste url,token and DNS records
  6. // @author Tomas van Rijsse
  7. // @match https://www.transip.nl/cp/domein-hosting/*
  8. // @match https://www.transip.eu/cp/domain-hosting/*
  9. // @grant none
  10. // @require http://code.jquery.com/jquery-latest.js
  11. // ==/UserScript==
  12. /* jshint -W097 */
  13. /* global jQuery */
  14. 'use strict';
  15.  
  16. jQuery(function(){
  17.  
  18. exportDNS();
  19.  
  20. var waitingForFragment = setInterval(
  21. function(){
  22. if(jQuery('.fragment').length > 0){
  23. startObserver();
  24. clearInterval(waitingForFragment);
  25. }
  26. }, 100
  27. );
  28. });
  29.  
  30. function startObserver(){
  31.  
  32. // Select the node that will be observed for mutations
  33. var targetNode = jQuery('.fragment')[0];
  34.  
  35. // Options for the observer (which mutations to observe)
  36. var config = { childList: true };
  37.  
  38. // Callback function to execute when mutations are observed
  39. var callback = function(mutationsList, observer) {
  40. observer.disconnect();
  41. exportDNS();
  42. observer.observe(targetNode, config);
  43. };
  44.  
  45. // Create an observer instance linked to the callback function
  46. var observer = new MutationObserver(callback);
  47.  
  48. // Start observing the target node for configured mutations
  49. observer.observe(targetNode, config);
  50.  
  51. }
  52.  
  53. function exportDNS(){
  54. var $rows = jQuery('.dns-form-panels').find('.form-panel');
  55.  
  56. if($rows.length == 0){
  57. return false;
  58. }
  59.  
  60. var $table = jQuery('<table></table>');
  61.  
  62. $table.append('<tr><th>Name</th><th>Type</th><th>Value</th></tr>');
  63.  
  64. $rows.each(function(){
  65. var $ = jQuery;
  66.  
  67. if($(this).find('input.content').val() != ""){
  68.  
  69. var $row = $('<tr></tr>');
  70. $row.append('<td>'+ $(this).find('input.name').val() + '</td>');
  71. $row.append('<td>'+ $(this).find('select.type').val() + '</td>');
  72. $row.append('<td>'+ $(this).find('input.content').val() + '</td>');
  73. $table.append($row);
  74.  
  75. }
  76. });
  77.  
  78. $table.find('th,td').css({
  79. padding:'0 10px 0 0',
  80. textOverflow: 'ellipsis',
  81. whiteSpace: 'nowrap',
  82. overflow: 'hidden',
  83. maxWidth: '400px'
  84. })
  85. $table.find('th').css('text-align','left');
  86. $table.css('padding','10px');
  87.  
  88. var $export = jQuery('<div class="overview-panel"></div>');
  89.  
  90. $export.append('<h3 class="ocp-overview-panel-header--border-bottom">DNS export: ' + jQuery('a.ocp-overview-panel-header__title-link').text().trim() + '</h3>');
  91. if(jQuery('.auth-code-result:not(.hidden) input.js-authcode-input').length){
  92. $export.append('<p>Auth code: '+ jQuery('input.js-authcode-input').data('authtoken') +'</p>');
  93. }
  94. $export.append($table);
  95.  
  96. jQuery('div.fragment-overview').append($export);
  97. }