Google Drive Direct Link Converter

Convert Google Drive file links to direct links

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Google Drive Direct Link Converter
// @namespace    http://tampermonkey.net/
// @version      0.1
// @license MIT
// @description  Convert Google Drive file links to direct links
// @match        *://drive.google.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Function to convert Google Drive file link to direct link
    function convertToDirectLink(url) {
        var id = '';
        var splitUrl = url.split('/');
        for (var i = 0; i < splitUrl.length; i++) {
            if (splitUrl[i] === 'd') {
                id = splitUrl[i + 1];
                break;
            }
        }
        return 'https://drive.google.com/uc?export=download&id=' + id;
    }

    // Create the red dot
    var dot = document.createElement('div');
    dot.style.position = 'fixed';
    dot.style.top = '50%';
    dot.style.left = '50%';
    dot.style.width = '20px';
    dot.style.height = '20px';
    dot.style.backgroundColor = 'red';
    dot.style.borderRadius = '50%';
    dot.style.cursor = 'pointer';
    document.body.appendChild(dot);

    // Make the red dot draggable
    dot.onmousedown = function(event) {
        moveAt(event.pageX, event.pageY);

        function moveAt(pageX, pageY) {
            dot.style.left = pageX - dot.offsetWidth / 2 + 'px';
            dot.style.top = pageY - dot.offsetHeight / 2 + 'px';
        }

        function onMouseMove(event) {
            moveAt(event.pageX, event.pageY);
        }

        document.addEventListener('mousemove', onMouseMove);

        dot.onmouseup = function() {
            document.removeEventListener('mousemove', onMouseMove);
            dot.onmouseup = null;
        };
    };

    // Create the overlay with two inputs and a button
    var overlay = document.createElement('div');
    overlay.style.display = 'none';
    overlay.style.position = 'fixed';
    overlay.style.transform = 'translate(-50%, -50%)';
    overlay.style.backgroundColor = 'white';
    overlay.style.border = '1px solid black';
    overlay.style.padding = '10px';

    var input1 = document.createElement('input');
    input1.type = 'text';
    input1.placeholder = 'Paste Google Drive link here...';

     // Add a close button to the overlay
     var closeButton = document.createElement('button');
     closeButton.innerHTML = 'Close';
     closeButton.style.marginLeft = '10px';

     closeButton.addEventListener('click', function() {
         overlay.style.display ='none';
         dot.style.display ='block';
     });

     var input2 = document.createElement('input');
     input2.type = 'text';
     input2.placeholder = 'Direct link will appear here...';
     input2.style.marginTop = '10px';

     var button = document.createElement('button');
     button.innerHTML = 'Convert Google Drive Link';
     button.style.marginLeft = '10px';
     button.style.marginTop = '10px';

     // Add the event listener for the button
     button.addEventListener('click', function() {
        if (input1.value.includes('https://drive.google.com/file/d/')) {
            var directLink = convertToDirectLink(input1.value);
            input2.value = directLink;
            alert('Link has been converted!');
        } else {
            alert('No valid Google Drive link found in the input.');
        }
     });

     overlay.appendChild(input1);
     overlay.appendChild(input2);
     overlay.appendChild(button);
     overlay.appendChild(closeButton);

     document.body.appendChild(overlay);

     // Add the event listener for the red dot
     dot.addEventListener('click', function() {
         overlay.style.display ='block';
         dot.style.display ='none';
         input1.value ='';
         input2.value ='';
         input1.focus();
         // Set the position of the overlay to the position of the red dot
         overlay.style.top = dot.style.top;
         overlay.style.left = dot.style.left;
     });
})();