ListProjects - gitcode.net

2023/11/17 14:57:11

Bu betiği kurabilmeniz için Tampermonkey, Greasemonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu betiği kurabilmeniz için Tampermonkey ya da Violentmonkey gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

Bu betiği kurabilmeniz için Tampermonkey ya da Userscripts gibi bir kullanıcı betiği eklentisini kurmanız gerekmektedir.

You will need to install an extension such as Tampermonkey to install this script.

Bu komut dosyasını yüklemek için bir kullanıcı komut dosyası yöneticisi uzantısı yüklemeniz gerekecek.

(Zaten bir kullanıcı komut dosyası yöneticim var, kurmama izin verin!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(Zateb bir user-style yöneticim var, yükleyeyim!)

// ==UserScript==
// @name        ListProjects - gitcode.net
// @namespace   Violentmonkey Scripts
// @match       https://gitcode.net/users/u011405698/projects
// @grant       none
// @version     2311171546
// @author      alvin
// @license     MIT
// @description 2023/11/17 14:57:11
// ==/UserScript==

function data_to_csv(data, name) {
    const blob = new Blob(data, { type: 'text/csv,charset=UTF-8' });
    const uri = URL.createObjectURL(blob);
    let downloadLink = document.createElement('a');
    downloadLink.href = uri;
    downloadLink.download = (name + ".csv") || "temp.csv";
    document.body.appendChild(downloadLink);
    downloadLink.click();
    document.body.removeChild(downloadLink);
}

function exportProjects(){
    projects = document.querySelectorAll("li.project-row")
    //保存数据,注意换行格式
    var data_list = Array();
    data_list.push(["标题", "链接", "\n"]);
    projects.forEach(project => {
        href = project.querySelector('.project').href
        description = ''
        descriptionNode = project.querySelector('.description')
        if (descriptionNode) {
            description = descriptionNode.innerHTML
        }
        data_list.push([href, description]);
        console.log(href)
        console.log(description)

    })
    data_to_csv(data_list, "projects.csv");
}


function addbut() {
    'use strict';
    console.log('我的脚本加载了');
    var button = document.createElement("button"); //创建一个input对象(提示框按钮)
    button.id = "id001";
    button.textContent = "导出项目列表";
    button.style.width = "60px";
    button.style.height = "40px";
    button.style.align = "center";

    //绑定按键点击功能
    button.onclick = function () {
        console.log('点击了按键');
        exportProjects();
        //为所欲为 功能实现处
        //alert("你好");
        return;
    };

    var x = document.querySelector('.gl-pagination');
    //在浏览器控制台可以查看所有函数,ctrl+shift+I 调出控制台,在Console窗口进行实验测试
    x.appendChild(button);

    //var y = document.getElementById('s_btn_wr');
    //y.appendChild(button);
};


window.onload = function () {
   addbut();
}