Write the output string when true and false to the clipboard
// ==UserScript==
// @name AtCoderYesNoOutput
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Write the output string when true and false to the clipboard
// @author imomo
// @include https://atcoder.jp/contests/*/tasks/*
// @grant none
// ==/UserScript==
/*ユーザー設定項目*/
//真偽値を入れる変数名を入力
var boolval = "ans"
var cpp = "cout << (("+boolval+")?\"[first]\":\"[second]\") << endl;"
var python = "print(\"[first]\" if "+boolval+" else \"[second]\")";
//使用言語に合わせてc++はcpp,Pythonはpythonと入力 エスケープ処理などが分かる方はオリジナルを入力しても構いません
//オリジナルの場合、1番目の文字列を[first]、2つ目の文字列を[second]としてください。
var outputtext = cpp;
/*設定項目終わり*/
onkeydown = function(){
const regex = /[^A-Za-z!:()]/g;
if((event.ctrlKey || event.metaKey) &&event.shiftKey){
var selObj = window.getSelection().toString();
console.log(selObj);
var obj=[];
if (selObj.indexOf(',') != -1)obj = selObj.split(',');
else if(selObj.indexOf(',') != -1)obj = selObj.split(',');
else obj = selObj.split('、');
var first = obj[0].replace(regex,'');
var second = obj[1].replace(regex,'');
outputtext = outputtext.replace('[first]',first);
outputtext = outputtext.replace('[second]',second);
// 空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 = outputtext;
// 要素を画面外へ
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);
}
}