Greasy Fork

Greasy Fork is available in English.

添加洛谷链接,以及status快捷导航栏 codeforces add Luogu link, and status shortcut navigation bar

Introduces a button which takes you to the friends standings directly

当前为 2023-07-05 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

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

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @license MIT
// @name         添加洛谷链接,以及status快捷导航栏 codeforces add Luogu link, and status shortcut navigation bar
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Introduces a button which takes you to the friends standings directly
// @author       funcdfs
// @match        https://codeforces.com/*/problem/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=codeforces.com
// @grant        none
// ==/UserScript==

// friends-status-button
(function () {
    'use strict';
    let url = window.location;
    let contestId = url.toString().split("/").filter((x) => {
        if (typeof x !== 'string') { return; }
        const num = Number(x);
        if (Number.isInteger(num)) { return num; }
    })[0];
    let s = url.toString().split("/");
    let id = s[s.length - 1];
    let friendBtn = document.createElement('li');

    friendBtn.innerHTML = `<a href="https://codeforces.com/contest/${contestId}/status/${id}?friends=on" target="_blank">Friends Status</a>`;
    friendBtn.classList.add('friendBtn')
    document.querySelector(".second-level-menu-list").appendChild(friendBtn);
})();

// jump to luogu.com
const pathname = location.pathname

if (/\/problemset\/problem\/(\d*)\/([A-Z][1-9]?)$/.test(pathname)) {
    location.href = `/contest/${RegExp.$1}/problem/${RegExp.$2}`;
}
else if (/\/contest\/(\d*)\/problem\/([A-Z][1-9]?)$/.test(pathname)) {
    let x = $('.header>.title'), y = x.html();
    x.html(`${RegExp.$1}<a href="https://www.luogu.com.cn/problem/CF${RegExp.$1 + RegExp.$2}" target="_blank">${y}</a>`);
}
if (0) {
    var stateObject = {};
    var title = "Wow Title";
    var newUrl = "/my/awesome/url";
    history.pushState(stateObject, title, newUrl);
}

//