github显示仓库信息

向仓库搜索页,代码搜索页,仓库主页添加 ⌛创建时间/🍴fork数/📁文件大小显示

目前为 2022-11-12 提交的版本。查看 最新版本

// ==UserScript==
// @name         github-repo-info
// @name:zh-CN   github显示仓库信息
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Add ⌛creation date/🍴forks/📁 repo size to repo search result page,code search page and repo detail page.
// @description:zh-cn 向仓库搜索页,代码搜索页,仓库主页添加 ⌛创建时间/🍴fork数/📁文件大小显示
// @author       CXXN008
// @match        *://github.com/*/*
// @match        *://github.com/search*
// @source       https://github.com/CXXN008/github-repo-info
// @icon         https://www.google.com/s2/favicons?sz=64&domain=github.com
// @grant        window.onurlchange
// @license      MIT

// ==/UserScript==


(function () {
    'use strict';
    // github free rates are limited to 5000 / hour ,if u get some errors in console , try https://github.com/settings/tokens -> Generate new token & paste here
    const API_TOKEN = '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'
    const STYLE = ``

    const PAGE_SELECTOR = { 'search': 'li.repo-list-item> div > div> div > a.v-align-middle', 'repo': 'strong.mr-2 > a:nth-child(1)', 'code': '.Link--secondary' }

    const getPageType = (urlParams) => {
        const q = urlParams.get("q")?.toLocaleLowerCase();
        const type = urlParams.get("type")?.toLocaleLowerCase();
        if(q){
            if(type === 'code'){
                return 'code'
            }else{
                return 'search'
            }
        }else {
            return 'repo'
        }
    }


    window.onurlchange = (c) => {
        // console.log(c)
        const params = {
            "headers": {
                "authorization": `token ${API_TOKEN}`,
            }
        }

        const pageType = getPageType(new URLSearchParams(location.search))
        // console.log(pageType)
        document.querySelectorAll(PAGE_SELECTOR[pageType]).forEach(async e => {
            const p = e.parentElement
            let span = p.querySelector(`#my-span-tag`)
            if (span === null) {
                span = document.createElement('span')
                span.id = 'my-span-tag'
                span.style = STYLE
                span.innerText = '... ...'
                p.append(span)
            }

            const j = (await (await fetch(`https://api.github.com/repos${e.getAttribute('href')}`, params)).json())

            const date = j.created_at.split('T')[0]
            const size = (j.size / 1024).toFixed(2)
            const forks = j.forks_count

            span.innerText = `/⌛${date}/🍴${forks}/📁${size}MB`




        })
    }

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址