Write contestID and problem to the clipboard
当前为
// ==UserScript==
// @name AtCoderDevotionScript
// @namespace http://tampermonkey.net/
// @version 0.2
// @description Write contestID and problem to the clipboard
// @author imomo
// @include https://atcoder.jp/contests/*/tasks/*
// @grant none
// ==/UserScript==
//シェルスクリプト、もしくはシェルスクリプトを呼び出すコマンドを設定
var callScripts = "nq";
var copystr;
onkeydown = function(){
if(event.ctrlKey&&event.keyCode==81){
//問題ページのURLを取得
var contestUrl = location.href;
//パス毎に分割
var problemPass = contestUrl.split("/");
//contestID及び問題種別を格納
var contestID = problemPass[problemPass.length - 3];
var problem =contestUrl.substr(-1);
if(!isNaN(problem))problem = String.fromCharCode(96 + Number(problem));
if(callScripts != "")copystr = callScripts + " " + contestID + " " + problem;
else copystr = contestID +" " + problem;
// 空div 生成
var tmp = document.createElement("div");
// 選択用のタグ生成
var pre = document.createElement('pre');
// 親要素のCSSで user-select: none だとコピーできないので書き換える
pre.style.webkitUserSelect = 'auto';
pre.style.userSelect = 'auto';
tmp.appendChild(pre).textContent = copystr;
// 要素を画面外へ
var s = tmp.style;
s.position = 'fixed';
s.right = '200%';
// body に追加
document.body.appendChild(tmp);
// 要素を選択
document.getSelection().selectAllChildren(tmp);
// クリップボードにコピー
document.execCommand("copy");
// 要素削除
document.body.removeChild(tmp);
//通知
alert("ID:" + contestID +"& problem :" + problem+" copied!!");
}
}