high pena CSS for smartphone

high pena 2 スマホ用のCSSです。不具合があるかもしれないので自己責任で使ってください。Android版FirefoxにアドオンTampermonkeyで動作確認。iOSは不明。

2018-02-13 يوللانغان نەشرى. ئەڭ يېڭى نەشرىنى كۆرۈش.

  1. // ==UserScript==
  2. // @name high pena CSS for smartphone
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.01
  5. // @description high pena 2 スマホ用のCSSです。不具合があるかもしれないので自己責任で使ってください。Android版FirefoxにアドオンTampermonkeyで動作確認。iOSは不明。
  6. // @author ankoiri
  7. // @match http://yaranaika.s64.coreserver.jp/highpena2/*
  8. // @match file:///R:/highpena_smartphone(local)2/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12.  
  13. (function() {
  14.  
  15. var record = 'https://dl.dropboxusercontent.coms/c6d6gvviolrvww4/highpena_smartphone_record.css';
  16. var home_nihon = 'https://dl.dropboxusercontent.com/s/qsse5byyf2zqpvi/highpena_smartphone_top2.css';
  17. var home_off = 'https://dl.dropboxusercontent.com/s/x25b9em3jngr643/highpena_smartphone_top3.css';
  18. var home_on = 'https://dl.dropboxusercontent.com/s/hhvu2zxaa8e8wvj/highpena_smartphone_top.css';
  19. var skill = 'https://dl.dropboxusercontent.com/s/nut96x7hy54lcmd/highpena_smartphone_skill.css';
  20. var skill2 = 'https://dl.dropboxusercontent.com/s/4fgtqg8p6tr19yv/highpena_smartphone_skill2.css';
  21. var consciousness = 'https://dl.dropboxusercontent.com/s/hitepl4lpquluxh/highpena_smartphone_consciousness.css';
  22. var login = 'https://dl.dropboxusercontent.com/s/gxgfhntxnvn3so4/highpena_smartphone_login.css';
  23. var rule = 'https://dl.dropboxusercontent.com/s/hm6ogylb82almr4/highpena_smartphone_default.css';
  24. var defaultcss = 'https://dl.dropboxusercontent.com/s/zd422tt9fx8jcqj/highpena_smartphone_default.css';
  25. var drawer = 'https://dl.dropboxusercontent.com/s/j83j6si5bke1qpx/drawer.css';
  26. var team_mode = 'https://dl.dropboxusercontent.com/s/3jofc9ixzjm3x1m/highpena_smartphone_team_mode.css';
  27.  
  28. var url = location.href;
  29.  
  30. //ラッパーのtable width 変更
  31. var xpath = document.evaluate("/html/body/table" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  32. var xpath_obj = xpath.singleNodeValue;
  33. xpath_obj.width = "99%";
  34.  
  35. //野手・投手のテーブル横スクロール用
  36. var table_width = parseInt(window.innerWidth *0.90);
  37. //console.log("screen.width:" + table_width);
  38.  
  39.  
  40.  
  41. var linkobj = document.getElementsByTagName('link')[0];
  42. //console.log("linkobj:" + linkobj);
  43. linkobj.parentNode.removeChild(linkobj);
  44.  
  45.  
  46. var head ;
  47. var link , link2;
  48.  
  49. head = document.getElementsByTagName('head')[0];
  50. console.log("head:"+head);
  51. if( ! head ) return ;
  52.  
  53. //viewport980に固定
  54.  
  55. var viewport_meta;
  56.  
  57. viewport_meta = document.createElement('meta') ;
  58. viewport_meta.name = 'viewport';
  59. viewport_meta.content = 'width=980';
  60. head.appendChild(viewport_meta) ;
  61.  
  62. //CSS追加
  63. link = document.createElement('link') ;
  64. link.typ = 'text/css' ;
  65. link.rel = 'stylesheet' ;
  66. head.appendChild(link) ;
  67.  
  68. link2 = document.createElement('link') ;
  69. link2.typ = 'text/css' ;
  70. link2.rel = 'stylesheet' ;
  71. link2.href = drawer;
  72.  
  73. head.appendChild(link2) ;
  74.  
  75.  
  76.  
  77. //トップ画面
  78. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[2]/tbody/tr/td[3]/input[3]" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  79. xpath_obj = xpath.singleNodeValue;
  80. //console.log("type=" + xpath_obj.value);
  81.  
  82. //トップ画面(オフシーズン 日本シリーズ の場合)
  83. xpath4 = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr/td[2]/font/font/b" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  84. xpath_obj4 = xpath4.singleNodeValue;
  85.  
  86. //console.log("type=" + xpath_obj.value);
  87.  
  88.  
  89. //能力アップ画面 意識設定画面
  90. xpath2 = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr/td/h3" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  91. xpath_obj2 = xpath2.singleNodeValue;
  92. //console.log("xpath_obj2.innerHTML:" + xpath_obj2.innerHTML);
  93.  
  94.  
  95. //ログイン画面
  96. xpath3 = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/table/tbody/tr/td[2]/table[2]/tbody/tr[1]/td[1]" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  97. xpath_obj3 = xpath3.singleNodeValue;
  98. //console.log("xpath_obj3.innerHTML:" + xpath_obj3.innerHTML);
  99.  
  100. //公式記録とタイトル
  101. xpath5 = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr/td/h3" , document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  102. xpath_obj5 = xpath5.singleNodeValue;
  103. //console.log("xpath_obj3.innerHTML:" + xpath_obj3.innerHTML);
  104.  
  105.  
  106.  
  107. var flag = 0;
  108.  
  109. //記録
  110. if(xpath_obj5 && xpath_obj5.innerHTML.match(/公式記録とタイトル/)){
  111.  
  112. //console.log( "URL:" + location.href);
  113. link.href = record;
  114.  
  115. //球団偵察モード
  116. }else if(location.href.match(/mode=team&team_id/)){
  117.  
  118. //console.log( "URL:" + location.href);
  119. link.href = team_mode;
  120. flag = 7;
  121.  
  122. }else if(xpath_obj4 && xpath_obj4.innerHTML.match(/日本シリーズ/) && xpath_obj && xpath_obj.value == "ログイン"){
  123. //console.log("ホーム画面(日本シリーズ)");
  124.  
  125. link.href = home_nihon;
  126.  
  127. flag = 4;
  128.  
  129. //ホーム画面(オフシーズン 新規登録リンク有り)
  130. }else if(xpath_obj4 && xpath_obj4.innerHTML.match(/オフシーズン/) && xpath_obj && xpath_obj.value == "ログイン"){
  131. //console.log("ホーム画面(オフシーズン)");
  132.  
  133. link.href = home_off;
  134. flag = 5;
  135.  
  136. //ホーム画面(オフ・日シリ以外)
  137. }else if (xpath_obj && xpath_obj.value == "ログイン" ){
  138.  
  139. link.href = home_on;
  140. flag = 1;
  141.  
  142. //能力アップ結果画面
  143. }else if(xpath_obj2 && xpath_obj2.innerHTML.match(/能力アップ結果/)){
  144. console.log("能力アップ結果画面1");
  145. link.href = skill2;
  146. flag = 0;
  147.  
  148. //能力アップ画面
  149. }else if(xpath_obj2 && xpath_obj2.innerHTML.match(/能力アップ/)){
  150. console.log("能力アップ画面1");
  151. link.href = skill;
  152. flag = 2;
  153.  
  154. //意識設定画面
  155. }else if(xpath_obj2 && xpath_obj2.innerHTML.match(/意識設定/)){
  156. console.log("意識設定画面1");
  157. link.href = consciousness;
  158. flag = 6;
  159.  
  160. //ログイン画面
  161. }else if(xpath_obj3 && xpath_obj3.innerHTML.match(/ドラフト指名/)){
  162. console.log("ログイン画面");
  163.  
  164. link.href = login;
  165.  
  166. flag = 3;
  167.  
  168. }else if(location.href.match(/rule.html/)){
  169. console.log(location.href);
  170. link.href = rule;
  171.  
  172. }else{
  173.  
  174. link.href = defaultcss;
  175.  
  176. }
  177.  
  178. console.log("flag:" + flag);
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188. //ドロワー追加用
  189. var div_element = document.createElement("div");
  190. div_element.classList.add("header_wrapper");
  191.  
  192. //オフシーズンの場合、新規登録を追加する
  193. if(flag === 5){
  194. div_element.innerHTML = '<div class="header"><div class="nav-drawer"><input id="nav-input" type="checkbox" class="nav-unshown"><label id="nav-open" for="nav-input"><span></span></label><label class="nav-unshown" id="nav-close" for="nav-input"></label><div id="nav-content">' +
  195. '<ul>' +
  196. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi">ホーム</a></li>' +
  197. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=ranking">ランキング</a></li>' +
  198. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=record">記録</a></li>' +
  199. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=calendar">日程</a></li>' +
  200. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/rule.html">あそびかた</a></li>' +
  201. '<li><a href="http://jbbs.livedoor.jp/game/44608/">掲示板</a></li>' +
  202. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=draft">ドラフト</a></li>' +
  203. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=entry">新規登録</a></li>' +
  204. '</ul></div></div><DIV STYLE="font-size:60px;font-weight:900; color:#DC143C; margin-top:-70pt; margin-left:170pt">2</DIV><DIV STYLE="font-size:40px; font-weight:600; color:000000;margin-top:-45pt;margin-left:115pt">high pena</DIV></div>';
  205.  
  206. //document.body.appendChild(div_element);
  207. //console.log(div_element.innerHTML);
  208. }else{
  209.  
  210.  
  211. div_element.innerHTML = '<div class="header"><div class="nav-drawer"><input id="nav-input" type="checkbox" class="nav-unshown"><label id="nav-open" for="nav-input"><span></span></label><label class="nav-unshown" id="nav-close" for="nav-input"></label><div id="nav-content">' +
  212. '<ul>' +
  213. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi">ホーム</a></li>' +
  214. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=ranking">ランキング</a></li>' +
  215. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=record">記録</a></li>' +
  216. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=calendar">日程</a></li>' +
  217. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/rule.html">あそびかた</a></li>' +
  218. '<li><a href="http://jbbs.livedoor.jp/game/44608/">掲示板</a></li>' +
  219. '<li><a href="http://yaranaika.s64.coreserver.jp/highpena2/index.cgi?mode=draft">ドラフト</a></li>' +
  220. '</ul></div></div><DIV STYLE="font-size:60px;font-weight:900; color:#DC143C; margin-top:-70pt; margin-left:170pt">2</DIV><DIV STYLE="font-size:40px; font-weight:600; color:000000;margin-top:-45pt;margin-left:115pt">high pena</DIV></div>';
  221.  
  222. //document.body.appendChild(div_element);
  223. //console.log(div_element.innerHTML);
  224.  
  225. }
  226.  
  227. //一番上に追加する
  228. var parentObject = document.getElementsByTagName("body")[0];
  229. parentObject.insertBefore(div_element,parentObject.firstChild);
  230.  
  231.  
  232. //-----------------------------------
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241. // ログイン後の画面
  242. if(flag === 3 ){
  243.  
  244.  
  245.  
  246.  
  247.  
  248. //投手 折りたたむ
  249. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/form/form/table[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  250.  
  251. //console.log("xpathtousyu:" + xpath.singleNodeValue);
  252. xpath_obj = xpath.singleNodeValue;
  253.  
  254. xpath_obj.outerHTML = "<div onclick=\"obj=document.getElementById('open2').style; obj.display=(obj.display=='none')?'block':'none';\"><a style=\"font-size:30px;cursor:pointer;text-decoration: underline;\">▼タップで表示</a></div><div id=\"open2\" style=\"display:none;clear:both;\"><div style=\"\width:" + table_width + "px; overflow-x:scroll;\">" + xpath_obj.outerHTML + "</div></div><br>";
  255.  
  256.  
  257. //野手 折りたたむ
  258. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/form/table[1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  259. //console.log("xpathyasyu:" + xpath.singleNodeValue);
  260. xpath_obj = xpath.singleNodeValue;
  261.  
  262. //var temp = "<thread>" + xpath_obj.innerHTML;
  263. //xpath_obj.innerHTML = temp;
  264. xpath_obj.outerHTML = "<div onclick=\"obj=document.getElementById('open1').style; obj.display=(obj.display=='none')?'block':'none';\"><a style=\"font-size:30px;cursor:pointer;text-decoration: underline;\">▼タップで表示</a></div><div id=\"open1\" style=\"display:none;clear:both;\"><div style=\"width:" + table_width + "px; overflow-x:scroll;\">" + xpath_obj.outerHTML + "</div></div><br>";
  265.  
  266. //console.log("xpath_obj:" + xpath_obj.innerHTML);
  267.  
  268. //チーム方針変更 折りたたむ
  269. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/table/tbody/tr/td[1]/table[3]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  270. //console.log("xpathhoushin:" + xpath.singleNodeValue);
  271. xpath_obj = xpath.singleNodeValue;
  272.  
  273. xpath_obj.outerHTML = "<div onclick=\"obj=document.getElementById('open3').style; obj.display=(obj.display=='none')?'block':'none';\"><a style=\"font-size:30px;cursor:pointer;text-decoration: underline;\">▼チーム方針変更 表示</a></div><div id=\"open3\" style=\"display:none;clear:both;\">" + xpath_obj.outerHTML + "</div><br>";
  274.  
  275. //野手ポジション・打順変更ボタン 左寄せ
  276. xpath = document.evaluate("//*[@id=\"open1\"]/div/table/tbody/tr/td/div", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  277. xpath_obj = xpath.singleNodeValue;
  278. xpath_obj.align = "left";
  279.  
  280.  
  281. //投手起用順変更ボタン 左寄せ
  282. xpath = document.evaluate("//*[@id=\"open2\"]/div/table/tbody/tr/td/div", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  283. xpath_obj = xpath.singleNodeValue;
  284. xpath_obj.align = "left";
  285.  
  286. // 契約更改~設定 再設計
  287. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/form/form/table[1]/tbody/tr/td[3]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  288. //console.log("xpathhoushin:" + xpath.singleNodeValue);
  289. xpath_obj = xpath.singleNodeValue;
  290.  
  291.  
  292. var menu2 = ["","","","","","","","","","","","","",""];
  293.  
  294. var arr = xpath_obj.innerHTML.split(/></g);
  295. var k=-1;
  296.  
  297. //add the brackets back in
  298. for(var i = 0; i < arr.length; i++){
  299.  
  300.  
  301. if(i == 0){
  302. arr[i] = arr[i] + '>';
  303. }else if(i == arr.length -1){
  304. arr[i] = '<' + arr[i];
  305. }else{
  306. arr[i] = '<' + arr[i] + '>';
  307.  
  308. }
  309.  
  310.  
  311. //console.log("arr[" + i + "]:" + arr[i]);
  312. if(arr[i].match(/<h4/) || arr[i].match(/<table/) ){
  313. //console.log("next:" + k);
  314. k++;
  315. }
  316.  
  317. if(!(arr[i].match(/<table/) || arr[i].match(/<\/table/) || arr[i].match(/<tbody/) || arr[i].match(/<\/tbody/) || arr[i].match(/<tr/) || arr[i].match(/<\/tr/) || arr[i].match(/<td/) || arr[i].match(/<\/td/) || arr[i].match(/<form/) || arr[i].match(/<\/form/) )){
  318. menu2[k] += arr[i];
  319.  
  320. }
  321.  
  322. }
  323. var table_str ="<table>";
  324.  
  325. for(i=0;i<k+1;i++){
  326. console.log("menu2[" + i + "]:" + menu2[i]);
  327.  
  328.  
  329.  
  330.  
  331. if(menu2[i].match(/<h4/)){
  332. table_str = table_str + "</tr><tr>";
  333. //console.log("tr:" + i);
  334. }
  335.  
  336. table_str = table_str + "<td><form action='index.cgi' method='post'>" + menu2[i] + "</td></form>";
  337.  
  338.  
  339. }
  340. table_str = table_str + "</table>";
  341.  
  342. console.log("table_str:" + table_str);
  343.  
  344. xpath_obj.innerHTML = table_str;
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356. //画面更新ボタン 左寄せ
  357. /*
  358. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[5]/tbody/tr/td/form/form/table[1]/tbody/tr/td[1]/form/div", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  359. xpath_obj = xpath.singleNodeValue;
  360. xpath_obj.align = "left";
  361. */
  362.  
  363.  
  364. }
  365.  
  366. if(flag === 2) {
  367. //能力 ポイントテーブル tr入れ替え
  368.  
  369.  
  370. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr/td/table/tbody/tr[2]/td[1]/form/table", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  371. var table = xpath.singleNodeValue;
  372.  
  373.  
  374.  
  375. //console.log("row1:" + table.innerHTML);
  376.  
  377. var point_cell = [];
  378.  
  379. for(j=0;j<10;j++){
  380.  
  381. console.log("table.rows[" + j + "].innerHTML" + table.rows[j].cells[0].innerHTML);
  382. point_cell[j] = table.rows[j].cells[0].innerHTML;
  383. }
  384.  
  385. table.innerHTML = "";
  386.  
  387. // 行要素を追加
  388. var tr0 = table.insertRow(-1);
  389. var tr1 = table.insertRow(-1);
  390.  
  391. var td = [];
  392.  
  393.  
  394.  
  395. //table.innerHTML = "";
  396.  
  397. for(j=0;j<10;j=j+2){
  398.  
  399. td[j] = tr0.insertCell(-1);
  400. td[j].innerHTML = point_cell[j];
  401. td[j+1] = tr1.insertCell(-1);
  402. td[j+1].innerHTML = point_cell[j+1];
  403.  
  404. }
  405. //console.log("aa" + newtable.innerHTML);
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412. }
  413.  
  414.  
  415.  
  416. // 他球団偵察モードの画面
  417.  
  418. if(flag === 7 ){
  419.  
  420. console.log("table_width:" + table_width);
  421.  
  422. //投手 テーブルスクロール
  423. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr/td/table[3]/tbody/tr/td/table", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  424.  
  425. //console.log("xpathtousyu:" + xpath.singleNodeValue);
  426. xpath_obj = xpath.singleNodeValue;
  427.  
  428. xpath_obj.outerHTML = "<div style=\"\width:" + table_width + "px; overflow-x:scroll; padding-bottom:30px;\">" + xpath_obj.outerHTML + "</div>";
  429.  
  430.  
  431. //野手 テーブルスクロール
  432. xpath = document.evaluate("/html/body/table/tbody/tr[1]/td[2]/table[4]/tbody/tr/td/table[2]/tbody/tr/td/table", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);
  433. //console.log("xpathyasyu:" + xpath.singleNodeValue);
  434. xpath_obj = xpath.singleNodeValue;
  435.  
  436. //var temp = "<thread>" + xpath_obj.innerHTML;
  437. //xpath_obj.innerHTML = temp;
  438. xpath_obj.outerHTML = "<div style=\"width:" + table_width + "px; overflow-x:scroll; padding-bottom:30px;\">" + xpath_obj.outerHTML + "</div><br>";
  439.  
  440. //console.log("xpath_obj:" + xpath_obj.innerHTML);
  441.  
  442.  
  443. }
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455. })();
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.