Dropbox Direct Links

Displays direct link to shared file for embedding purposes

  1. // ==UserScript==
  2. // @name Dropbox Direct Links
  3. // @namespace https://github.com/phracker
  4. // @version 1.2.1
  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://code.jquery.com/jquery-2.2.2.min.js
  18. // @require https://cdn.jsdelivr.net/clipboard.js/1.5.9/clipboard.min.js
  19. //
  20. // @include http*://*dropbox.com/s/*/*
  21. // @include http*://*dropbox.com/sh/*/*
  22. // ==/UserScript==
  23.  
  24. // direct url
  25. var durl = document.URL.replace('www.dropbox.com', 'dl.dropboxusercontent.com').replace(/\?.*/, '').replace(/\#.*/, '');
  26. console.log("durl: "+durl);
  27. if (durl.indexOf('marketing.dropbox.com') > 0){
  28. return;
  29. }
  30. // Create direct link and copy button
  31. var div = document.createElement('div');
  32. div.setAttribute('align', 'center');
  33. div.setAttribute('style', 'font-size: 12px; vertical-align: middle;');
  34. var a = document.createElement('a');
  35. a.href = durl;
  36. a.setAttribute('style', 'text-decoration: none;');
  37. a.textContent = durl;
  38. var b = document.createElement('button');
  39. b.setAttribute('id', 'durl');
  40. b.setAttribute('data-clipboard-text', durl);
  41. b.setAttribute('title', 'Copy Direct URL');
  42. b.setAttribute('style', 'font-size: 10px; padding: 0px 6px; margin-left: 1em; font-weight: 800;');
  43. b.setAttribute('class', 'freshbutton-lightblue');
  44. b.appendChild(document.createTextNode('Copy'));
  45. $(div).append(document.createTextNode('Direct: '));
  46. $(div).append(a);
  47. $(div).append(b);
  48. console.log("Div: "+div.outerHTML);
  49. // Append to page
  50. $('.filename').append(div);
  51.  
  52. /*
  53. //Create menu button
  54. var mb = document.createElement('button');
  55. mb.setAttribute('id', 'mdurl');
  56. mb.setAttribute('data-clipboard-text', durl);
  57. // mb.setAttribute('data-clipboard-target', )
  58. mb.setAttribute('title', 'Copy Direct URL');
  59. mb.setAttribute('style', 'display: inline-block; vertical-align: middle; zoom: 1; margin-left: 8px;');
  60. mb.setAttribute('class', 'freshbutton-blue');
  61. mb.appendChild(document.createTextNode('Copy Direct URL'));
  62. // Add to menu
  63. $('.buttons').append(mb);
  64. //var extrasButton = $('#non-owner-menu-button')[0];
  65. //$(buttons).append(mb);
  66. */
  67.  
  68. var cb = new Clipboard('#durl',{
  69. text: function(){ return durl; },
  70. });
  71. // var cb2 = new Clipboard('#mdurl',{
  72. // text: function(){ return durl; },
  73. // });