您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
provide analysis links on ChessTempo
- // ==UserScript==
- // @name ChessTempo Analysis
- // @locale en
- // @description provide analysis links on ChessTempo
- // @namespace http://tampermonkey.net/
- // @version 0.2
- // @author SethTr
- // @match *://chesstempo.com/*
- // @grant GM_addStyle
- // @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js
- // ==/UserScript==
- GM_addStyle(".links-panel {" +
- "color: white;" +
- "background-color: #333;" +
- "position: absolute;" +
- "top: 25%;" +
- "left: 1%;" +
- "border-radius: 5px;" +
- "padding: 5px;" +
- "text-align: center;" +
- "font-size: 18px;" +
- "}");
- function toCord(offset) {
- var num = Number(offset.substr(0, offset.length - 1));
- return Math.round(num / 12.5);
- }
- function fenName(piece) {
- piece = piece.substr(piece.lastIndexOf('/') + 1, 100);
- var isWhite = piece.indexOf("white") >= 0;
- var name = ["king", "queen", "rook", "bishop", "knight", "pawn"];
- var fen = ["k", "q", "r", "b", "n", "p"];
- for (i = 0; i < name.length; i++) {
- if (piece.indexOf(name[i]) >= 0) {
- if (isWhite) {
- return fen[i].toUpperCase();
- } else {
- return fen[i].toLowerCase();
- }
- }
- }
- return "WTF" + piece;
- }
- function fenNotation(board, isWhite) {
- var fen = '';
- for (y = 0; y < 8; y++) {
- var spaces = 0;
- for (x = 0; x < 8; x++) {
- var p = isWhite ? board[8*y + x] : board[63 - (8*y + x)];
- if (p) {
- if (spaces > 0) fen += spaces;
- fen += p;
- spaces = 0;
- } else {
- spaces += 1;
- }
- }
- if (spaces > 0) fen += spaces;
- if (y != 7) fen += '/';
- }
- fen += ' ' + (isWhite ? 'w' : 'b');
- return fen;
- }
- function lichessFen(fen) {
- return "https://www.lichess.org/analysis/" + fen.replace(' ', '_');
- }
- function createWrappedLink(parent, text) {
- var link = document.createElement('a');
- link.appendChild(document.createTextNode(text));
- link.title = text;
- link.target="_blank";
- link.href = "http://lichess.com";
- var div = document.createElement('div');
- div.appendChild(link);
- parent.appendChild(div);
- return link;
- }
- function createLinks() {
- console.log("adding button for links");
- var linkWrapper = document.createElement('div');
- linkWrapper.className = 'links-panel';
- whiteLink = createWrappedLink(linkWrapper, "Analysis white to play");
- blackLink = createWrappedLink(linkWrapper, "Analysis black to play");
- document.getElementsByTagName('body')[0].appendChild(linkWrapper);
- return [whiteLink, blackLink];
- }
- (function() {
- 'use strict';
- var links = createLinks();
- setInterval(function() {
- jQuery.noConflict();
- var board = {};
- jQuery('.svgPieceContainer').parent().each(function(index, pieceDiv) {
- var x = toCord(pieceDiv.style.left);
- var y = toCord(pieceDiv.style.top);
- var piece = fenName(pieceDiv.children[0].src);
- board[8*y + x] = piece;
- });
- var whiteLink = lichessFen(fenNotation(board, true));
- var blackLink = lichessFen(fenNotation(board, false));
- console.log("White to play analysis: ", whiteLink);
- console.log("Black to play analysis: ", blackLink);
- links[0].href = whiteLink;
- links[1].href = blackLink;
- }, 3000);
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址