// ==UserScript== // @name Dropbox Direct Links // @namespace https://github.com/phracker // @version 1.1.3 // @description Displays direct link to shared file for embedding purposes // @grant GM_setClipboard // // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js // @require https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.5/ZeroClipboard.js // @include http*://*dropbox.com/s/*/* // @downloadURL none // ==/UserScript== // direct url var durl = document.URL.replace('www.dropbox.com', 'dl.dropboxusercontent.com').replace(/\?.*/, '').replace(/\#.*/, ''); // Create direct link and copy button var div = document.createElement('div'); div.setAttribute('align', 'center'); div.setAttribute('style', 'font-size: 12px; vertical-align: middle;'); var a = document.createElement('a'); a.href = durl; a.setAttribute('style', 'text-decoration: none;'); a.textContent = durl; var b = document.createElement('button'); b.setAttribute('id', 'durl'); b.setAttribute('data-clipboard-text', durl); b.setAttribute('title', 'Copy Direct URL'); b.setAttribute('style', 'font-size: 10px; padding: 0px 6px; margin-left: 1em; font-weight: 800;'); b.setAttribute('class', 'freshbutton-lightblue'); b.appendChild(document.createTextNode('Copy')); div.appendChild(document.createTextNode('Direct: ')); div.appendChild(a); div.appendChild(b); // Append to page document.getElementById('page-content').appendChild(div); //Create menu button var mb = document.createElement('button'); mb.setAttribute('id', 'mdurl'); mb.setAttribute('data-clipboard-text', durl); mb.setAttribute('title', 'Copy Direct URL'); mb.setAttribute('style', 'display: inline-block; vertical-align: middle; zoom: 1; margin-left: 8px;'); mb.setAttribute('class', 'freshbutton-blue'); mb.appendChild(document.createTextNode('Copy Direct URL')); // Add to menu var buttons = document.getElementsByClassName('buttons').item(0); var extrasButton = document.getElementById('non-owner-menu-button'); buttons.insertBefore(mb,extrasButton); ZeroClipboard.config({ swfPath: "https://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.5/ZeroClipboard.swf" }); var zc = new ZeroClipboard($('#durl')); zc.on('ready', function(event) { zc.on('copy', function(event) { event.clipboardData.setData('text/plain', durl); }); }); var zcm = new ZeroClipboard($('#mdurl')); zcm.on('ready', function(event) { zcm.on('copy', function(event) { event.clipboardData.setData('text/plain', durl); }); });