automatic-gdufe

广财校园网自动填写账号密码!采用本地cookie储存登录账号,安全且方便

  1. // ==UserScript==
  2. // @name automatic-gdufe
  3. // @namespace nothing
  4. // @version 1.6
  5. // @description 广财校园网自动填写账号密码!采用本地cookie储存登录账号,安全且方便
  6. /*本开源脚本仅在本地执行填表动作,不会上传您的数据。*/
  7. // @author cloudstream
  8. // @match http://100.64.13.17/*
  9. // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
  10. // @grant none
  11. // @license MIT
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16. var account = '';
  17. var code = '';
  18. let result = document.cookie.match("(^|[^;]+)\\s*jwsession\\s*=\\s*([^;]+)");
  19. let value = (result ? result.pop() : "");
  20. if(value != ""){//decode
  21. let parts = value.split('x');
  22. let len1 = parseInt(parts[0]);
  23. let len2 = parseInt(parts[1]);
  24. let soup = parts[2];
  25. let output1="", output2="";
  26. let major = len1+len2
  27. for(let i=0; i<major;){
  28. if(len1-- > 0){
  29. output1 += soup[i++];
  30. }
  31. if(len2-- > 0){
  32. output2 += soup[i++];
  33. }
  34. }
  35. account = output1;
  36. code = output2;//decode account number and password
  37. }
  38. //writes information to input labels
  39. var hasInputs = false;
  40. function fillPage(){
  41. var flag = true;
  42. var content = window.document.querySelectorAll('.edit_lobo_cell');
  43. for(let i=0; i<content.length; i++){
  44. let item = content[i];
  45. if(item!=null){
  46. let slot = item.getAttribute('name');
  47. if(slot=='logout') {hasInputs = true; flag = false; console.log('Already logged in.'); return;}
  48. else if(slot=='DDDDD') {item.value = account; flag = false;}
  49. else if(slot=='upass') item.value = code;
  50. ee&&ee(1); // 自动点击登录按钮
  51. }
  52. }
  53. if(hasInputs) alert("没找到对应资源哦,刷新看看");
  54. }
  55. function modifyPage(){
  56. var style = document.createElement("style");
  57. style.innerHTML = ".edit_cell {cursor: default!important;}";//修复原来登录页面鼠标指针异常问题
  58. document.head.appendChild(style);
  59. if(hasInputs) return;
  60. var aLabel = document.createElement("a");
  61. aLabel.setAttribute("style", "top: 103px; left: 0px; width: 70px; height: 28px; color: rgb(127, 127, 127); padding: 4px; position: absolute;");
  62. aLabel.setAttribute("href", "#saved");
  63. aLabel.setAttribute("id","aLabel");
  64. aLabel.innerHTML = "Save";
  65. aLabel.onclick = function(){
  66. let content = window.document.querySelectorAll('.edit_lobo_cell');
  67. let arg1 = "", arg2 = "";
  68. for(let i=0; i<content.length; i++){
  69. let item = content[i];
  70. if(item!=null){
  71. let slot = item.getAttribute('name');
  72. if(slot=='logout') {console.log('Already logged in.'); return;}
  73. else if(slot=='DDDDD') {arg1 = item.value;}
  74. else if(slot=='upass') arg2 = item.value;
  75. }
  76. }
  77. let len1 = arg1.length;
  78. let len2 = arg2.length;
  79. let output = len1+"x"+len2+"x";
  80. let major = Math.max(len1, len2);
  81. for(let i=0; i<major; i++){
  82. if(len1-- > 0){
  83. output += arg1[i];
  84. }
  85. if(len2-- > 0){
  86. output += arg2[i];
  87. }
  88. }
  89. document.cookie = "jwsession="+output+"; max-age=120000000;";
  90. document.getElementById("aLabel").innerHTML = "Saved √";
  91. }//save点击事件
  92. var anchor = window.document.getElementsByName('f1')[0];
  93. anchor.appendChild(aLabel);
  94. }
  95. //hook of the script
  96. onload=function(){
  97. var body = document.getElementsByTagName('body')[0];
  98. if(body.innerHTML != null && body.innerHTML.startsWith("内核接口")){
  99. location.reload(true);
  100. }
  101. fillPage();
  102. modifyPage();
  103. }
  104. })();