GitHub Auto-Fill Form

try to take over the world!

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

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 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     GitHub Auto-Fill Form
// @version      2024-02-25
// @description  try to take over the world!
// @author       SMNET
// @license MIT
// @grant    GM_xmlhttpRequest
// @match  https://github.com/github-copilot/signup/billing?*
// @match  https://github.com/github-copilot/signup/success
// @match  https://github.com/github-copilot/signup/settings
// @match  https://github.com/join/welcome
// @namespace https://greasyfork.org/users/1218336
// ==/UserScript==

function fillForm3() {
    let summaryElement = document.querySelector('summary[data-view-component="true"]');
    if(summaryElement) {
        summaryElement.click();
        setTimeout(() => {
            let allowedButton = document.querySelector('button[value="allowed"]');
            if(allowedButton) {
                allowedButton.click();
                setTimeout(() => {
                    let saveButton = document.getElementById('copilot_settings_submit');
                    if(saveButton) {
                        saveButton.click();
                    } else {
                        console.error('Could not find the "Save and complete setup" button');
                    }
                }, 100);
            } else {
                console.error('Could not find the "Allowed" button');
            }
        }, 100);
    } else {
        console.error('Could not find the summary element');
    }
}
function fillForm1(data) {
    let firstName = data.address.Full_Name.split(" ")[0];
    let lastName = data.address.Full_Name.split(" ")[1] || firstName;
    document.querySelector('input[name="user_contact_info[first_name]"]').value = firstName;
    document.querySelector('input[name="user_contact_info[last_name]"]').value = lastName;
    let countrySelect1 = document.querySelector('select[name="user_contact_info[country]"]');
    for(let i=0; i<countrySelect1.options.length; i++){
        if(countrySelect1.options[i].innerText === 'United States of America'){
            countrySelect1.value = countrySelect1.options[i].value;
            break;
        }
    }
    let submitButton = document.querySelector('button.btn-primary.btn.width-full.mt-3');
    if(submitButton) {
        submitButton.click();
    } else {
        console.error('Could not find the "Submit" button');
    }
}
function fillForm2(data) {
    let firstName = data.address.Full_Name.split(" ")[0];
    let lastName = data.address.Full_Name.split(" ")[1] || firstName;
    document.querySelector('input[name="account_screening_profile[first_name]"]').value = firstName;
    document.querySelector('input[name="account_screening_profile[last_name]"]').value = lastName;
    document.querySelector('input[name="account_screening_profile[address1]"]').value = data.address.Address;
    document.querySelector('input[name="account_screening_profile[city]"]').value = data.address.City;
    document.querySelector('input[name="account_screening_profile[region]"]').value = data.address.State;
    document.querySelector('input[name="account_screening_profile[postal_code]"]').value = data.address.Zip_Code;
    let countrySelect2 = document.querySelector('select[name="account_screening_profile[country_code]"]');
    for(let i=0; i<countrySelect2.options.length; i++){
        if(countrySelect2.options[i].innerText === 'United States of America'){
            countrySelect2.value = countrySelect2.options[i].value;
            break;
        }
    }
    let checkElement = document.querySelector('h4.mb-3');
    if(checkElement && checkElement.innerText.trim() === 'Payment method') {
        return;
    } else {
        let saveButton = document.querySelector('button[name="submit"][type="submit"]');
        if (saveButton) saveButton.click();
    }
}
window.onload = () => {
    let currentUrl = window.location.href;
    let specificElement = document.querySelector('#copilot_settings_telemetry');


    if (currentUrl === "https://github.com/github-copilot/signup/settings") {
        window.location.href = "https://cocopilot.org/copilot/token";
    }
    else if (currentUrl === "https://github.com/join/welcome") {
        window.location.href = "https://github.com/github-copilot/signup/billing?payment_duration=monthly";
    }
    else if (specificElement) {
        return fillForm3();
    } else {
        GM_xmlhttpRequest({
            method: 'POST',
            url: 'https://www.meiguodizhi.com/api/v1/dz',
            headers: {
                'Content-Type': 'application/json',
            },
            data: JSON.stringify({
                "city": "",
                "path": "/",
                "method": "refresh"
            }),
            onload: (response) => {
                var data = JSON.parse(response.responseText);
                specificElement = document.querySelector('input[name="user_contact_info[first_name]"]');
                if (specificElement) {
                    fillForm1(data);
                } else {
                    fillForm2(data);
                }
            },
            onerror: (error) => {
                console.error('Error during request:', error);
            }
        });
    }
};