Duolingo JWT Token

Get your jwt_token!

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         Duolingo JWT Token
// @namespace    http://tampermonkey.net/
// @version      1.0.1
// @description  Get your jwt_token!
// @author       airpl4ne
// @match        https://www.duolingo.com/*
// @icon         https://github.com/pillowslua/crackduo/blob/main/hacklingo.png?raw=true
// @license MIT
// @grant        GM_addStyle
// ==/UserScript==

//use this script to get jwt_token
//free bots : https://discord.gg/Gvmd7deFtS

(function() {
    'use strict';

    // css
    GM_addStyle(`
      #jwtToolBox {
        position: fixed;
        top: 80px;
        right: 20px;
        background: #1cb0f6;
        color: white;
        font-family: Arial, sans-serif;
        font-size: 14px;
        padding: 15px;
        border-radius: 12px;
        z-index: 99999;
        box-shadow: 0 4px 10px rgba(0,0,0,0.2);
      }
      #jwtToolBox button {
        background: #fff;
        color: #1cb0f6;
        border: none;
        padding: 6px 10px;
        margin-top: 8px;
        border-radius: 8px;
        cursor: pointer;
        font-weight: bold;
      }
      #jwtToolBox button:hover {
        background: #f0f0f0;
      }
      #jwtTokenDisplay {
        margin-top: 10px;
        word-break: break-all;
        max-width: 250px;
        background: rgba(255,255,255,0.15);
        padding: 6px;
        border-radius: 6px;
      }
    `);

    // create box /ui
    const box = document.createElement("div");
    box.id = "jwtToolBox";
    box.innerHTML = `
      <div><b>🔑 Duolingo JWT Tool</b></div>
      <button id="getTokenBtn">Get jwt_token</button>
      <div id="jwtTokenDisplay">[Chưa lấy]</div>
    `;
    document.body.appendChild(box);

    // credit : hoangtienghi_ discord
    function getJwtToken() {
        let match = document.cookie.match(new RegExp('(^| )jwt_token=([^;]+)'));
        if (match) {
            return match[2];
        }
        return null;
    }

    // event
    document.getElementById("getTokenBtn").addEventListener("click", () => {
        let token = getJwtToken();
        let display = document.getElementById("jwtTokenDisplay");
        if (token) {
            display.textContent = token;
        } else {
            display.textContent = "❌ Không tìm thấy jwt_token!";
        }
    });
})();