Greasy Fork

Dropbox Direct Links

Displays direct link to shared file for embedding purposes

目前为 2014-09-20 提交的版本。查看 最新版本

// ==UserScript==
// @name         Dropbox Direct Links
// @namespace    https://github.com/phracker
// @version      1.0.5
// @description  Displays direct link to shared file for embedding purposes
//
// @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/*/*
// ==/UserScript==

// direct url
var durl = document.URL.replace('www.dropbox.com', 'dl.dropboxusercontent.com').replace(/\?.*/, '').replace(/\#.*/, '');

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);
var pageContent = document.getElementById('page-content');
var contentArea = document.getElementById('shmodel-content-area');
pageContent.insertBefore(div,contentArea);


//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 zc2 = new ZeroClipboard($('#mdurl'));
zc2.on('ready', function(event) {
  zc2.on('copy', function(event) {
    event.clipboardData.setData('text/plain', durl);
  });
});