您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
This will help users get a button to click to end of the github commits page.
当前为
- // ==UserScript==
- // @name Find the initial Github commit
- // @namespace http://tampermonkey.net/
- // @version 0.2.1
- // @description This will help users get a button to click to end of the github commits page.
- // @author Mutu,aspen138
- // @match https://github.com/*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=github.com
- // @grant none
- // @license MIT
- // ==/UserScript==
- (function() {
- 'use strict';
- let reg = new RegExp("\/commits\/")
- var isInsert = false
- var timer = setInterval(() => {
- if (isInsert) {
- if (reg.test(window.location.pathname)) {
- } else {
- getCommits()
- isInsert = false
- }
- } else {
- if (reg.test(window.location.pathname)) {
- insertBtn()
- isInsert = true
- } else {
- getCommits()
- }
- }
- }, 1000);
- function getCommits() {
- // Attempt to find the span that displays the commit count
- let commitSpan = document.querySelector("span.fgColor-default.custom-highlight");
- if (commitSpan) {
- // Example innerText might be "90 Commits", so remove "Commits" and trim extra space
- let commitText = commitSpan.innerText.replace("Commits", "").trim();
- //let commitNumber = parseInt(commitText, 10);
- // Store just the numeric portion in sessionStorage
- sessionStorage.setItem("commits", commitText);
- }
- }
- function insertBtn() {
- // Get the total commit count from sessionStorage
- let commitsStr = sessionStorage.getItem("commits");
- let commitsNum = parseInt(commitsStr.replace(/,/, ""), 10);
- console.log("commitsNum=",commitsNum);
- // Select the container that holds the pagination buttons
- let btnGroup = document.querySelector(".Box-sc-g0xbh4-0.prc-ButtonGroup-ButtonGroup-vcMeG");
- if (!btnGroup) return; // Guard clause if the container isn't found
- // Select the "Next" pagination link
- let btnToNext = document.querySelector("[data-testid='pagination-next-button']");
- if (!btnToNext) return; // Guard clause if there's no "Next" button
- // Create the wrapper div
- let newDiv = document.createElement("div");
- // Create the new "Click To End" anchor
- let btnToEnd = document.createElement("a");
- btnToEnd.type = "button";
- btnToEnd.tabIndex = 0;
- btnToEnd.setAttribute("data-testid", "pagination-last-button");
- btnToEnd.className = "prc-Button-ButtonBase-c50BI fgColor-accent text-normal";
- btnToEnd.setAttribute("data-loading", "false");
- btnToEnd.setAttribute("data-size", "medium");
- btnToEnd.setAttribute("data-variant", "invisible");
- btnToEnd.href = btnToNext.href.replace(/\+\d+/g, `+${commitsNum-4}`);
- // Construct the inner span structure to match the new button style
- let spanContent = document.createElement("span");
- spanContent.setAttribute("data-component", "buttonContent");
- spanContent.className = "prc-Button-ButtonContent-HKbr-";
- let spanText = document.createElement("span");
- spanText.setAttribute("data-component", "text");
- spanText.className = "prc-Button-Label-pTQ3x";
- spanText.innerText = "Click To End";
- // Assemble all parts
- spanContent.appendChild(spanText);
- btnToEnd.appendChild(spanContent);
- newDiv.appendChild(btnToEnd);
- console.log("newDiv=",newDiv);
- btnGroup.appendChild(newDiv);
- console.log("btnGroup=", btnGroup);
- }
- })();