Dropbox Direct Links

Displays direct link to shared file for embedding purposes

目前为 2014-12-04 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Dropbox Direct Links
  3. // @namespace https://github.com/phracker
  4. // @version 1.1.19
  5. // @description Displays direct link to shared file for embedding purposes
  6. //
  7. // @grant GM_setClipboard
  8. // @grant GM_getResourceText
  9. // @grant GM_getResourceURL
  10. // @grant GM_log
  11. // @grant GM_getValue
  12. // @grant GM_setValue
  13. // @grant GM_xmlhttpRequest
  14. // @grant GM_openInTab
  15. // @grant GM_info
  16. //
  17. // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js
  18. // @require https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.js
  19. // @resource zcswf https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.6/ZeroClipboard.swf
  20. // @resource zc_swf https://dl.dropboxusercontent.com/s/z8gln344lvluj17/ZeroClipboard.swf
  21. //
  22. // @include http*://*dropbox.com/s/*/*
  23. // ==/UserScript==
  24.  
  25. // direct url
  26. var durl = document.URL.replace('www.dropbox.com', 'dl.dropboxusercontent.com').replace(/\?.*/, '').replace(/\#.*/, '');
  27.  
  28. // Create direct link and copy button
  29. var div = document.createElement('div');
  30. div.setAttribute('align', 'center');
  31. div.setAttribute('style', 'font-size: 12px; vertical-align: middle;');
  32. var a = document.createElement('a');
  33. a.href = durl;
  34. a.setAttribute('style', 'text-decoration: none;');
  35. a.textContent = durl;
  36. var b = document.createElement('button');
  37. b.setAttribute('id', 'durl');
  38. b.setAttribute('data-clipboard-text', durl);
  39. b.setAttribute('title', 'Copy Direct URL');
  40. b.setAttribute('style', 'font-size: 10px; padding: 0px 6px; margin-left: 1em; font-weight: 800;');
  41. b.setAttribute('class', 'freshbutton-lightblue');
  42. b.appendChild(document.createTextNode('Copy'));
  43. div.appendChild(document.createTextNode('Direct: '));
  44. div.appendChild(a);
  45. div.appendChild(b);
  46. // Append to page
  47. document.getElementById('page-content').appendChild(div);
  48.  
  49. //Create menu button
  50. var mb = document.createElement('button');
  51. mb.setAttribute('id', 'mdurl');
  52. mb.setAttribute('data-clipboard-text', durl);
  53. mb.setAttribute('title', 'Copy Direct URL');
  54. mb.setAttribute('style', 'display: inline-block; vertical-align: middle; zoom: 1; margin-left: 8px;');
  55. mb.setAttribute('class', 'freshbutton-blue');
  56. mb.appendChild(document.createTextNode('Copy Direct URL'));
  57. // Add to menu
  58. var buttons = document.getElementsByClassName('buttons').item(0);
  59. var extrasButton = document.getElementById('non-owner-menu-button');
  60. buttons.insertBefore(mb,extrasButton);
  61.  
  62.  
  63. ZeroClipboard.config({
  64. // swfPath: GM_getResourceURL("zcswf")
  65. swfPath: "https://dl.dropboxusercontent.com/s/z8gln344lvluj17/ZeroClipboard.swf"
  66. });
  67.  
  68. var zc = new ZeroClipboard($('#durl'));
  69. zc.on('ready', function(event) {
  70. console.log('durl ready'] );
  71. zc.on('copy', function(event) {
  72. event.clipboardData.setData('text/plain', durl);
  73. });
  74. zc.on('aftercopy', function(event) {
  75. console.log('Copied: ' + event.data['text/plain'] );
  76. });
  77. });
  78. var zcm = new ZeroClipboard($('#mdurl'));
  79. zcm.on('ready', function(event) {
  80. console.log('mdurl ready'] );
  81. zcm.on('copy', function(event) {
  82. event.clipboardData.setData('text/plain', durl);
  83. });
  84. zc.on('aftercopy', function(event) {
  85. console.log('Copied: ' + event.data['text/plain'] );
  86. });
  87. });