- первый
- вставляется в макаку --> открываешь страницу в гитхабе --> нажимаешь --> ??? --> ключи со страницы в файле
- второй
- // ==UserScript==
- // @name GitHub Extractor
- // @namespace http://tampermonkey.net/
- // @version 1.3
- // @description Извлекает строки, начинающиеся с "xai-" и содержащие 80 символов, ключи Anthropic, GPT, Deepseek, nvapi и сохраняет их в файл
- // @author Вы
- // @match https://github.com/*
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- // Функция для сохранения данных в файл
- function saveToFile(filename, data) {
- const blob = new Blob([data], { type: 'text/plain' });
- const link = document.createElement('a');
- link.href = URL.createObjectURL(blob);
- link.download = filename;
- link.click();
- }
- // Функция для извлечения строк
- function extractStrings() {
- // Регулярные выражения для поиска строк
- const patternXAI = /xai-[a-zA-Z0-9]{80}/g;
- const patternAnthropic = /sk-ant-api[a-zA-Z0-9-_]{98}/g;
- const patternGPT = /sk-[a-zA-Z0-9]{48}/g;
- const patternDeepseek = /sk-[a-f0-9]{32}/g;
- const patternNvapi = /nvapi-\S{64}/g; // Новый формат ключей
- // Получение HTML-кода страницы
- const htmlContent = document.body[removed];
- // Поиск совпадений
- const matchesXAI = htmlContent.match(patternXAI) || [];
- const matchesAnthropic = htmlContent.match(patternAnthropic) || [];
- const matchesGPT = htmlContent.match(patternGPT) || [];
- const matchesDeepseek = htmlContent.match(patternDeepseek) || [];
- const matchesNvapi = htmlContent.match(patternNvapi) || [];
- // Объединяем и удаляем дубликаты
- const allMatches = [...new Set([
- ...matchesXAI,
- ...matchesAnthropic,
- ...matchesGPT,
- ...matchesDeepseek,
- ...matchesNvapi
- ])];
- if (allMatches.length > 0) {
- // Сохранение в файл
- saveToFile('results.txt', allMatches.join('\n'));
- alert(`Найдено ${allMatches.length} строк. Они сохранены в файл results.txt.`);
- } else {
- alert('Совпадений не найдено.');
- }
- }
- // Добавление кнопки на страницу для запуска скрипта
- const button = document.createElement('button');
- button.textContent = 'Extract Strings';
- button.style.position = 'fixed';
- button.style.top = '10px';
- button.style.right = '10px';
- button.style.zIndex = 1000;
- button.style.padding = '10px';
- button.style.backgroundColor = '#28a745';
- button.style.color = 'white';
- button.style.border = 'none';
- button.style.borderRadius = '5px';
- button.style.cursor = 'pointer';
- button.addEventListener('click', extractStrings);
- document.body.appendChild(button);
- })();