您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds total questions per difficulty to the stats bar.
当前为
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==UserScript==
- // @name Better Stats Bar (LeetCode)
- // @description Adds total questions per difficulty to the stats bar.
- // @namespace https://greatest.deepsurf.us/en/users/128831-marvinyan
- // @match https://leetcode.com/problemset/algorithms/
- // @grant none
- // @require https://greatest.deepsurf.us/scripts/374849-library-onelementready-es6/code/Library%20%7C%20onElementReady%20ES6.js?version=649483
- // @version 0.0.1.20190102075610
- // ==/UserScript==
- (() => {
- const LC_ALGO_API = 'https://leetcode.com/api/problems/algorithms/';
- const getData = url =>
- new Promise((resolve, reject) => {
- const xhr = new XMLHttpRequest();
- xhr.open('GET', url, true);
- xhr.onload = () => {
- if (xhr.status >= 200 && xhr.status < 300) {
- resolve(xhr.response);
- } else {
- reject({
- status: xhr.status,
- statusText: xhr.statusText
- });
- }
- };
- xhr.onerror = () => {
- reject({
- status: xhr.status,
- statusText: xhr.statusText
- });
- };
- xhr.send();
- });
- const parseData = response => {
- const counts = [0, 0, 0];
- const questions = JSON.parse(response).stat_status_pairs;
- questions.forEach(q => {
- counts[q.difficulty.level - 1]++;
- });
- return counts;
- };
- const updateStatsBar = counts => {
- const statsBar = $('#welcome > span > span');
- let $totalSolvedSpan = $(statsBar[0]).closest('span');
- const newText = $totalSolvedSpan.text().replace('/', ' / ');
- $totalSolvedSpan.text(newText);
- for (let i = 1; i < statsBar.length; i++) {
- statsBar[i].append(` / ${counts[i - 1]}`);
- }
- };
- const run = async () => {
- const data = await getData(LC_ALGO_API);
- const counts = parseData(data);
- updateStatsBar(counts);
- };
- waitForKeyElements('#welcome', run);
- })();