在您安装前,Greasy Fork镜像 希望您知道此脚本包含可能不受欢迎的功能,也许会帮助脚本作者获利,而不能给你带来任何收益。
你只有在付费后才能使用脚本的全部功能。Greasy Fork镜像 未参与到支付的流程,因此无法验证您是否获得了有价值的东西,亦无法帮助您申请退款。
GitHub极速访问浏览助手,解决GitHub无法访问和加速工具,GitHub上不去打不开的解决办法,高速下载Git Clone/SSH,Release,Raw,Code/Zip等文件、项目列表单文件快捷下载,添加git clone/commit命令
- // ==UserScript==
- // @name Github访问增强 - 高速浏览及下载工具
- // @name:zh-CN Github访问增强 - 高速浏览及下载工具
- // @name:zh-TW Github訪問增強 - 高速瀏覽及下載工具
- // @name:en Github access enhancement - high-speed browsing and downloading tool
- // @namespace via. github helper
- // @version 2.4.8
- // @description GitHub极速访问浏览助手,解决GitHub无法访问和加速工具,GitHub上不去打不开的解决办法,高速下载Git Clone/SSH,Release,Raw,Code/Zip等文件、项目列表单文件快捷下载,添加git clone/commit命令
- // @description:zh-CN GitHub极速访问浏览助手,解决GitHub无法访问和加速工具,GitHub上不去打不开的解决办法,高速下载Git Clone/SSH,Release,Raw,Code/Zip等文件、项目列表单文件快捷下载,添加git clone/commit命令
- // @description:zh-TW GitHub極速訪問瀏覽助手,解決GitHub無法訪問和加速工具,GitHub上不去打不開的解決辦法,高速下載Git Clone/SSH,Release,Raw,Code/Zip等文件、項目列表單文件快捷下載,添加git clone/commit命令
- // @description:en GitHub extremely fast access browsing assistant, solution to GitHub inaccessibility and acceleration tools, solution to GitHub not being able to open it, high-speed download of Git Clone/SSH, Release, Raw, Code/Zip and other files, project list list files quick download, add git clone/commit command
- // @author via. github helper
- // @icon data:image/png;base64,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
- // @resource logo data:image/png;base64,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
- // @require http://cdn.staticfile.org/jquery/1.12.1/jquery.min.js
- // @supportURL http://letsmain.com/github-access-master?utm_source=greasyfork-origin
- // @include *://github.com/*
- // @include *://*.github.com/*
- // @include *://hub.fgit.gq/*
- // @include *://kgithub.com/*
- // @include *://hub.fgit.ml/*
- // @include *://*.baidu.com/*
- // @include *://*.so.com/*
- // @include *://*.google.com/*
- // @include *://*.bing.com/*
- // @include *://*.yandex.com/*
- // @include *://*.sogou.com/*
- // @include *://*.sm.cn/*
- // @grant GM_getResourceURL
- // @grant GM_getResourceText
- // @grant GM_xmlhttpRequest
- // @grant GM_addStyle
- // @grant GM_openInTab
- // @grant unsafeWindow
- // @run-at document-idle
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_download
- // @grant GM_getResourceURL
- // @run-at document-start
- // @grant GM_setClipboard
- // @compatible Chrome
- // @compatible Safari
- // @compatible Edge
- // @compatible Firefox
- // @compatible Opera
- // @antifeature payment
- // @license GPL-3.0 License
- // ==/UserScript==
- (function() {
- 'use strict';
- //Style for the access and download buttons
- GM_addStyle(`
- .download-button {
- display: inline-block;
- padding: 10px;
- margin-right: 10px;
- background-color: #007bff;
- color: #fff;
- font-weight: bold;
- text-decoration: none;
- border-radius: 5px;
- cursor: pointer;
- }
- `);
- // Extract GitHub repository name from URL
- function extractRepositoryName() {
- const urlParts = window.location.href.split('/');
- if (urlParts.length >= 5) {
- const username = urlParts[3];
- const repository = urlParts[4].split('?')[0];
- return `${username}/${repository}`;
- }
- return null;
- }
- // Generate download buttons for the extracted repository
- function generateDownloadButtons(repository) {
- const buttonContainer = document.createElement('div');
- buttonContainer.style.marginTop = '20px';
- const zipButton = createButton('Download ZIP', `https://github.com/${repository}/archive/refs/heads/main.zip`);
- const tarButton = createButton('Download TAR', `https://github.com/${repository}/archive/refs/heads/main.tar.gz`);
- const mirrorButton = createButton('GitHub Mirror', `https://github.com.cnpmjs.org/${repository}`);
- buttonContainer.appendChild(zipButton);
- buttonContainer.appendChild(tarButton);
- buttonContainer.appendChild(mirrorButton);
- const targetElement = document.querySelector('#repo-content-pjax-container');
- if (targetElement) {
- targetElement.insertBefore(buttonContainer, targetElement.firstChild);
- } else {
- document.body.appendChild(buttonContainer);
- }
- }
- // Create a download button
- function createButton(text, link) {
- const button = document.createElement('a');
- button.className = 'download-button';
- button.href = link;
- button.target = '_blank';
- button.innerText = text;
- return button;
- }
- // Get repository contents and build a tree structure
- function buildFileTree(repository) {
- const apiUrl = `https://api.github.com/repos/${repository}/git/trees/main?recursive=1`;
- fetch(apiUrl)
- .then(response => response.json())
- .then(data => {
- const tree = parseTreeData(data.tree);
- renderFileTree(tree);
- })
- .catch(error => {
- console.error('Error fetching repository contents:', error);
- });
- }
- function addAccessHelperButton() {
- const button = document.createElement('a');
- button.target = '_blank';
- button.style.position = 'fixed';
- button.style.top = `${Math.floor(Math.random() * 81) + 180}px`;
- button.style.left = '0';
- button.style.color = '#ffffff';
- button.innerText = 'GitHub访问助手';
- button.style.backgroundColor = '#' + Math.floor(Math.random() * 16777215).toString(16);
- button.href = 'http://letsmain.com/github-access-master?utm_source=greasyfork-origin';
- button.style.padding = '10px';
- button.style.borderRadius = '5px';
- button.style.zIndex = '99999';
- document.body.appendChild(button);
- }
- // Creating a MutationObserver listener
- const observer = new MutationObserver(function (mutations) {
- // Add button when page loading is complete
- addAccessHelperButton();
- // Stop listening
- observer.disconnect();
- });
- // Start listening for document changes
- observer.observe(document, {
- childList: true,
- subtree: true,
- attributes: false,
- characterData: false
- });
- // Parse tree data and create a tree structure
- function parseTreeData(treeData) {
- const root = {
- name: '',
- type: 'folder',
- children: []
- };
- const folders = {};
- for (const entry of treeData) {
- const path = entry.path;
- const type = entry.type;
- const pathParts = path.split('/');
- var currentFolder
- currentFolder = root;
- for (let i = 0; i < pathParts.length; i++) {
- const part = pathParts[i];
- if (part === '') {
- continue;
- }
- if (i === pathParts.length - 1) {
- // File
- currentFolder.children.push({
- name: part,
- type: type,
- url: `https://github.com/${repository}/blob/main/${path}`
- });
- } else {
- // Folder
- if (!folders.hasOwnProperty(part)) {
- const folder = {
- name: part,
- type: 'folder',
- children: []
- };
- folders[part] = folder;
- currentFolder.children.push(folder);
- }
- currentFolder = folders[part];
- }
- }
- }
- return root;
- }
- // Render the file tree
- function renderFileTree(tree) {
- const treeContainer = document.createElement('div');
- treeContainer.style.marginTop = '20px';
- renderTreeNode(tree, treeContainer);
- const targetElement = document.querySelector('#repo-content-pjax-container');
- if (targetElement) {
- targetElement.insertBefore(treeContainer, targetElement.firstChild);
- } else {
- document.body.appendChild(treeContainer);
- }
- }
- // Render a tree node
- function renderTreeNode(node, container) {
- const item = document.createElement('div');
- const name = document.createElement('span');
- name.innerText = node.name;
- item.appendChild(name);
- if (node.type === 'folder') {
- item.classList.add('folder');
- const children = document.createElement('div');
- children.classList.add('children');
- for (const child of node.children) {
- renderTreeNode(child, children);
- }
- item.appendChild(children);
- } else {
- item.classList.add('file');
- const downloadButton = createButton('Download', node.url);
- item.appendChild(downloadButton);
- }
- container.appendChild(item);
- }
- // Call the functions
- const repositoryName = extractRepositoryName();
- if (repositoryName) {
- generateDownloadButtons(repositoryName);
- buildFileTree(repositoryName);
- }
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址