Advertisement
hossem147

ddd

May 4th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.66 KB | None | 0 0
  1. setTimeout(function() {
  2. var real_minx = -7071;
  3. var real_miny = -7071;
  4. var real_maxx = 7071;
  5. var real_maxy = 7071;
  6. var lastsent = {
  7. minx: 0,
  8. miny: 0,
  9. maxx: 0,
  10. maxy: 0
  11. };
  12.  
  13. function valcompare(Y, Z) {
  14. return 0.01 > Y - Z && -0.01 < Y - Z
  15. }
  16. window.agar.hooks.dimensionsUpdated = function(server_minx, server_miny, server_maxx, server_maxy) {
  17. if (valcompare(server_maxx - server_minx, server_maxy - server_miny)) {
  18. real_minx = server_minx;
  19. real_miny = server_miny;
  20. real_maxx = server_maxx;
  21. real_maxy = server_maxy
  22. } else {
  23. if (valcompare(server_minx, lastsent.minx)) {
  24. if (0.01 < server_maxx - lastsent.maxx || -0.01 > server_maxx - lastsent.maxx) {
  25. real_minx = server_minx;
  26. real_maxx = server_minx + 14142.135623730952
  27. }
  28. }
  29. if (0.01 < server_minx - lastsent.minx || -0.01 > server_minx - lastsent.minx) {
  30. if (valcompare(server_maxx, lastsent.maxx)) {
  31. real_maxx = server_maxx;
  32. real_minx = server_maxx - 14142.135623730952
  33. }
  34. }
  35. if (0.01 < server_miny - lastsent.miny || -0.01 > server_miny - lastsent.miny) {
  36. if (valcompare(server_maxy, lastsent.maxy)) {
  37. real_maxy = server_maxy;
  38. real_miny = server_maxy - 14142.135623730952
  39. }
  40. }
  41. if (valcompare(server_miny, lastsent.miny)) {
  42. if (0.01 < server_maxy - lastsent.maxy || -0.01 > server_maxy - lastsent.maxy) {
  43. real_miny = server_miny;
  44. real_maxy = server_miny + 14142.135623730952
  45. }
  46. }
  47. if (server_minx < real_minx) {
  48. real_minx = server_minx;
  49. real_maxx = server_minx + 14142.135623730952
  50. }
  51. if (server_maxx > real_maxx) {
  52. real_maxx = server_maxx;
  53. real_minx = server_maxx - 14142.135623730952
  54. }
  55. if (server_miny < real_miny) {
  56. real_miny = server_miny;
  57. real_maxy = server_miny + 14142.135623730952
  58. }
  59. if (server_maxy > real_maxy) {
  60. real_maxy = server_maxy;
  61. real_miny = server_maxy - 14142.135623730952
  62. }
  63. lastsent.minx = server_minx;
  64. lastsent.miny = server_miny;
  65. lastsent.maxy = server_maxy;
  66. lastsent.maxx = server_maxx
  67. }
  68. offset_x = real_minx || -7071;
  69. offset_y = real_miny || -7071
  70. };
  71. var socket = io.connect('ws://www.botss-cloned-botss.c9users.io:8081');
  72. var canMove = true;
  73. var movetoMouse = true;
  74. var moveEvent = new Array(2);
  75. var canvas = document.getElementById("canvas");
  76. last_transmited_game_server = null;
  77. socket.on('force-login', function(data) {
  78. socket.emit("login", {
  79. "uuid": client_uuid,
  80. "type": "client"
  81. });
  82. transmit_game_server()
  83. });
  84.  
  85. var iDiv = document.createElement('div');
  86. iDiv.id = 'block';
  87. document.getElementsByTagName('body')[0].appendChild(iDiv);
  88. iDiv.innerHTML = '<div style="position: absolute; top: 10px; left: 10px; padding: 0px 8px; font-family: Helvetica; color: rgb(240,244,242); z-index: 9999; border-radius: 9px; min-width: 200px; background-color: rgba(0, 0, 0, 0.2);"><br><center><div><span style="color:#ff0000;">H</span><span style="color:#ff4000;">O</span><span style="color:#ff7f00;">S</span><span style="color:#ffbf00;">S</span><span style="color:#ffff00;">E</span><span style="color:#80ff00;">M</span><span style="color:#00ff00;">B</span><span style="color:#00ff80;">O</span><span style="color:#00ffff;">.</span><span style="color:#0080ff;">T</span><span style="color:#0000ff;">S</span></div><span class="label label-success pull-right"></span></center><hr> Bot Split <span class="label label-info pull-right">E</span> <br>Bot Eject Mass <span class="label label-info pull-right">R</span><br>Bots 16 Split <span class="label label-info pull-right">Z</span> <br> User 16 Split <span class="label label-info pull-right">Shift</span><hr> User Stop(D): <a id="move"><span class="label label-danger pull-right">OFF</span></a> <br>Mouse Control(A):<a id = "follow"><span class="label label-danger pull-right">OFF</span></a> <br>Bot Mode(P):<a id = "changeMode"><span class="label label-danger pull-right">Collect mass</span></a><hr> <br><div style="position: absolute; top: 260px;">Bots Online :</div> <a id="minionCount"><div style="position: absolute; top: 260px; left: 117px;><span id="botlayer-bots" class="label label-warning pull-right"> Waiting Status</span></div></a><br><div id="tLeft">Time Left : <span class="label label-none pull-right"</span>Unlimited</div></b><br><div style="position: absolute; top: 294px;"> : </div><div style="position: absolute; top: 296px; left: 95px;><span id="/:" class="label label-info pull-right">' + :D + '</span></div>';
  89. var timer = null;
  90. var botsUsed = false;
  91. socket.on('spawn-count', function (data) {
  92. if(data.count != null){
  93. document.getElementById('counter').innerHTML = '<b>Online Bots <span class="label label-success pull-right">' + data.count + '</span>';
  94. document.getElementById('bName').innerHTML = '<div id="bName">Bots Name <span class="label pull-right">' + data.nick + '</span></div>';
  95. var t = data.timer;
  96. var seconds = Math.floor( (t/1000) % 60 );
  97. var minutes = Math.floor( (t/1000/60) % 60 );
  98. var hours = Math.floor( (t/(1000*60*60)) % 24 );
  99. var days = Math.floor( t/(1000*60*60*24) );
  100. if(days){
  101. document.getElementById('tLeft').innerHTML = '<div id="tLeft">Time Left <span class="label label-default pull-right">' + days.toFixed() + ' day ' + hours.toFixed() + 'hr</span></div>';
  102. }else
  103. if(hours){
  104. document.getElementById('tLeft').innerHTML = '<div id="tLeft">Time Left <span class="label label-default pull-right">' + hours.toFixed() + ' hr ' + minutes.toFixed() + ' min</span></div>';
  105. }else{
  106. document.getElementById('tLeft').innerHTML = '<div id="tLeft">Time Left <span class="label label-default pull-right">' + minutes.toFixed() + ' min ' + seconds.toFixed() + ' seconds</span></div>';
  107. }
  108. return {
  109. 'total': t,
  110. 'days': days,
  111. 'hours': hours,
  112. 'minutes': minutes,
  113. 'seconds': seconds
  114. };
  115. }else{
  116. document.getElementById('counter').innerHTML = '<div id="counter"><center><b>Your Bots Expired!</b></center></div>';
  117. document.getElementById('bName').innerHTML = '<b><div id="bName">Bots Name <span class="label pull-right">-</span></div>';
  118. document.getElementById('tLeft').innerHTML = '<div>Buy More <a target="_blank" href="http://www.bestbots.co.uk/#" class="btn label label-success pull-right">Click!</a></div>';
  119. }
  120. });
  121. var client_uuid = localStorage.getItem('client_uuid');
  122. if (client_uuid == null) {
  123. console.log("generating a uuid for this user");
  124. client_uuid = ""; var ranStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  125. for (var ii = 0; ii < 15; ii++) client_uuid += ranStr.charAt(Math.floor(Math.random() * ranStr.length));
  126. localStorage.setItem('client_uuid', client_uuid)
  127. }
  128. socket.emit("login", client_uuid);
  129. $("#instructions").replaceWith('<br><div class="input-group"><span class="input-group-addon" id="basic-addon1">WRS Customer Serial</span><input type="text" value="' + client_uuid + '" readonly class="form-control"</div>');
  130.  
  131. function isMe(cell) {
  132. for (var i = 0; i < window.agar.myCells.length; i++) {
  133. if (window.agar.myCells[i] == cell.id) {
  134. return true
  135. }
  136. }
  137. return false
  138. }
  139.  
  140. function getCell() {
  141. var me = [];
  142. for (var key in window.agar.allCells) {
  143. var cell = window.agar.allCells[key];
  144. if (isMe(cell)) {
  145. me.push(cell)
  146. }
  147. }
  148. return me[0]
  149. }
  150. var skin_var = 0;
  151.  
  152. function emitPosition() {
  153. for (i = 0; i < agar.myCells.length; i++) {}
  154. x = (mouseX - window.innerWidth / 2) / window.agar.drawScale + window.agar.rawViewport.x;
  155. y = (mouseY - window.innerHeight / 2) / window.agar.drawScale + window.agar.rawViewport.y;
  156. if (!movetoMouse) {
  157. x = getCell().x;
  158. y = getCell().y
  159. }
  160. socket.emit("pos", {
  161. "x": x - (real_minx + 7071),
  162. "y": y - (real_miny + 7071),
  163. "dimensions": [-7071, -7071, 7071, 7071]
  164. })
  165. }
  166.  
  167.  
  168. function emitSplit() {
  169. socket.emit("cmd", {
  170. "name": "split"
  171. })
  172. }
  173.  
  174. function emitMassEject() {
  175. socket.emit("cmd", {
  176. "name": "eject"
  177. })
  178. }
  179.  
  180. function toggleMovement() {
  181. canMove = !canMove;
  182. switch (canMove) {
  183. case true:
  184. canvas.onmousemove = moveEvent[0];
  185. moveEvent[0] = null;
  186. canvas.onmousedown = moveEvent[1];
  187. moveEvent[1] = null;
  188. break;
  189. case false:
  190. canvas.onmousemove({
  191. clientX: innerWidth / 2,
  192. clientY: innerHeight / 2
  193. });
  194. moveEvent[0] = canvas.onmousemove;
  195. canvas.onmousemove = null;
  196. moveEvent[1] = canvas.onmousedown;
  197. canvas.onmousedown = null;
  198. break
  199. }
  200. }
  201. interval_id = setInterval(function() {
  202. emitPosition()
  203. }, 100);
  204. interval_id2 = setInterval(function() {
  205. transmit_game_server_if_changed()
  206. }, 5000);
  207. document.addEventListener('keydown', function(e) {
  208. var key = e.keyCode || e.which;
  209. switch (key) {
  210. case 65:
  211. movetoMouse = !movetoMouse;
  212. if(movetoMouse) { document.getElementById('ismoveToMouse').innerHTML = "On"; } else { document.getElementById('ismoveToMouse').innerHTML = "Off"; }
  213. break;
  214. case 68:
  215. toggleMovement();
  216. if(!canMove) { document.getElementById('isStopMove').innerHTML = "On"; } else { document.getElementById('isStopMove').innerHTML = "Off"; }
  217. break;
  218. case 69:
  219. emitSplit();
  220. break;
  221. case 82:
  222. emitMassEject();
  223. break
  224. }
  225. });
  226.  
  227. function transmit_game_server_if_changed() {
  228. if (last_transmited_game_server != window.agar.ws) {
  229. transmit_game_server()
  230. }
  231. }
  232.  
  233. function transmit_game_server() {
  234. last_transmited_game_server = window.agar.ws;
  235. socket.emit("cmd", {
  236. "name": "connect_server",
  237. "ip": last_transmited_game_server
  238. })
  239. }
  240. var mouseX = 0;
  241. var mouseY = 0;
  242. $("body").mousemove(function(event) {
  243. mouseX = event.clientX;
  244. mouseY = event.clientY
  245. });
  246. window.agar.minScale = -30
  247. }, 5000);
  248.  
  249. var allRules = [
  250. { hostname: ["agar.io"],
  251. scriptUriRe: /^http:\/\/agar\.io\/main_out\.js/,
  252. replace: function (m) {
  253. m.removeNewlines()
  254.  
  255. m.replace("var:allCells",
  256. /(=null;)(\w+)(.hasOwnProperty\(\w+\)?)/,
  257. "$1" + "$v=$2;" + "$2$3",
  258. "$v = {}")
  259.  
  260. m.replace("var:myCells",
  261. /(case 32:)(\w+)(\.push)/,
  262. "$1" + "$v=$2;" + "$2$3",
  263. "$v = []")
  264.  
  265. m.replace("var:top",
  266. /case 49:[^:]+?(\w+)=\[];/,
  267. "$&" + "$v=$1;",
  268. "$v = []")
  269.  
  270. m.replace("var:topTeams",
  271. /case 50:(\w+)=\[];/,
  272. "$&" + "$v=$1;",
  273. "$v = []")
  274.  
  275. var dr = "(\\w+)=\\w+\\.getFloat64\\(\\w+,!0\\);\\w+\\+=8;\\n?"
  276. var dd = 7071.067811865476
  277. m.replace("var:dimensions hook:dimensionsUpdated",
  278. RegExp("case 64:"+dr+dr+dr+dr),
  279. "$&" + "$v = [$1,$2,$3,$4],$H($1,$2,$3,$4),",
  280. "$v = " + JSON.stringify([-dd,-dd,dd,dd]))
  281.  
  282. var vr = "(\\w+)=\\w+\\.getFloat32\\(\\w+,!0\\);\\w+\\+=4;"
  283. m.save() &&
  284. m.replace("var:rawViewport:x,y var:disableRendering:1",
  285. /else \w+=\(5\*\w+\+(\w+)\)\/6,\w+=\(5\*\w+\+(\w+)\)\/6,.*?;/,
  286. "$&" + "$v0.x=$1; $v0.y=$2; if($v1)return;") &&
  287. m.replace("var:disableRendering:2 hook:skipCellDraw",
  288. /(\w+:function\(\w+\){)(if\(this\.\w+\(\)\){\+\+this\.[\w$]+;)/,
  289. "$1" + "if($v || $H(this))return;" + "$2") &&
  290. m.replace("var:rawViewport:scale",
  291. /Math\.pow\(Math\.min\(64\/\w+,1\),\.4\)/,
  292. "($v.scale=$&)") &&
  293. m.replace("var:rawViewport:x,y,scale",
  294. RegExp("case 17:"+vr+vr+vr),
  295. "$&" + "$v.x=$1; $v.y=$2; $v.scale=$3;") &&
  296. m.reset_("window.agar.rawViewport = {x:0,y:0,scale:1};" +
  297. "window.agar.disableRendering = false;") ||
  298. m.restore()
  299.  
  300. m.replace("reset hook:connect var:ws var:webSocket",
  301. /new WebSocket\((\w+)\);/,
  302. "$v1 = $&; $v0=$1;" + m.reset + "$H();",
  303. "$v0 = ''; $v1 = null;")
  304.  
  305. m.replace("property:scale",
  306. /function \w+\(\w+\){\w+\.preventDefault\(\);[^;]+;1>(\w+)&&\(\1=1\)/,
  307. `;${makeProperty("scale", "$1")};$&`)
  308.  
  309. m.replace("var:minScale",
  310. /;1>(\w+)&&\(\1=1\)/,
  311. ";$v>$1 && ($1=$v)",
  312. "$v = 1")
  313.  
  314. m.replace("var:region",
  315. /console\.log\("Find "\+(\w+\+\w+)\);/,
  316. "$&" + "$v=$1;",
  317. "$v = ''")
  318.  
  319. m.replace("cellProperty:isVirus",
  320. /((\w+)=!!\(\w+&1\)[\s\S]{0,400})((\w+).(\w+)=\2;)/,
  321. "$1$4.isVirus=$3")
  322.  
  323. m.replace("var:dommousescroll",
  324. /("DOMMouseScroll",)(\w+),/,
  325. "$1($v=$2),")
  326.  
  327. m.replace("var:skinF hook:cellSkin",
  328. /(\w+.fill\(\))(;null!=(\w+))/,
  329. "$1;" +
  330. "if($v)$3 = $v(this,$3);" +
  331. "if($h)$3 = $h(this,$3);" +
  332. "$2");
  333.  
  334. m.replace("hook:afterCellStroke",
  335. /\((\w+)\.strokeStyle="#000000",\1\.globalAlpha\*=\.1,\1\.stroke\(\)\);\1\.globalAlpha=1;/,
  336. "$&" + "$H(this);")
  337.  
  338. m.replace("var:showStartupBg",
  339. /\w+\?\(\w\.globalAlpha=\w+,/,
  340. "$v && $&",
  341. "$v = true")
  342.  
  343. var vAlive = /\((\w+)\[(\w+)\]==this\){\1\.splice\(\2,1\);/.exec(m.text)
  344. var vEaten = /0<this\.[$\w]+&&(\w+)\.push\(this\)}/.exec(m.text)
  345. !vAlive && console.error("Expose: can't find vAlive")
  346. !vEaten && console.error("Expose: can't find vEaten")
  347. if (vAlive && vEaten)
  348. m.replace("var:aliveCellsList var:eatenCellsList",
  349. RegExp(vAlive[1] + "=\\[\\];" + vEaten[1] + "=\\[\\];"),
  350. "$v0=" + vAlive[1] + "=[];" + "$v1=" + vEaten[1] + "=[];",
  351. "$v0 = []; $v1 = []")
  352.  
  353. m.replace("hook:drawScore",
  354. /(;(\w+)=Math\.max\(\2,(\w+\(\))\);)0!=\2&&/,
  355. "$1($H($3))||0!=$2&&")
  356.  
  357. m.replace("hook:beforeTransform hook:beforeDraw var:drawScale",
  358. /(\w+)\.save\(\);\1\.translate\((\w+\/2,\w+\/2)\);\1\.scale\((\w+),\3\);\1\.translate\((-\w+,-\w+)\);/,
  359. "$v = $3;$H0($1,$2,$3,$4);" + "$&" + "$H1($1,$2,$3,$4);",
  360. "$v = 1")
  361.  
  362. m.replace("hook:afterDraw",
  363. /(\w+)\.restore\(\);(\w+)&&\2\.width&&\1\.drawImage/,
  364. "$H();" + "$&")
  365.  
  366. m.replace("hook:cellColor",
  367. /(\w+=)this\.color,/,
  368. "$1 ($h && $h(this, this.color) || this.color),")
  369.  
  370. m.replace("var:drawGrid",
  371. /(\w+)\.globalAlpha=(\.2\*\w+);/,
  372. "if(!$v)return;" + "$&",
  373. "$v = true")
  374.  
  375. m.replace("hook:drawCellMass",
  376. /&&\((\w+\|\|0==\w+\.length&&\(!this\.\w+\|\|this\.\w+\)&&20<this\.size)\)&&/,
  377. "&&( $h ? $h(this,$1) : ($1) )&&")
  378.  
  379. m.replace("hook:cellMassText",
  380. /(\.\w+)(\(~~\(this\.size\*this\.size\/100\)\))/,
  381. "$1( $h ? $h(this,$2) : $2 )")
  382.  
  383. m.replace("hook:cellMassTextScale",
  384. /(\.\w+)\((this\.\w+\(\))\)([\s\S]{0,1000})\1\(\2\/2\)/,
  385. "$1($2)$3$1( $h ? $h(this,$2/2) : ($2/2) )")
  386.  
  387. m.replace("var:enableDirectionSending",
  388. /;64>(\w+)\*\1\+(\w+)\*\2/,
  389. ";if(!$v)return" + "$&",
  390. "$v = true")
  391.  
  392. m.replace("var:simpleCellDraw",
  393. /(:function\(\){)(var a=10;)/,
  394. "$1 if($v)return true;$2",
  395. "$v=false")
  396.  
  397. m.replace("hook:updateLeaderboard",
  398. /({\w+=null;)(if\(null!=)/,
  399. "$1 if($H())return; $2")
  400.  
  401. var template = (key,n) =>
  402. `this\\.${key}=\\w+\\*\\(this\\.(\\w+)-this\\.(\\w+)\\)\\+this\\.\\${n};`
  403. var re = new RegExp(template('x', 2) + template('y', 4) + template('size', 6))
  404. var match = re.exec(m.text)
  405. if (match) {
  406. m.cellProp.nx = match[1]
  407. m.cellProp.ny = match[3]
  408. m.cellProp.nSize = match[5]
  409. } else
  410. console.error("Expose: cellProp:x,y,size search failed!")
  411.  
  412. }},
  413. ]
  414.  
  415. function makeProperty(name, varname) {
  416. return "'" + name + "' in window.agar || " +
  417. "Object.defineProperty( window.agar, '"+name+"', " +
  418. "{get:function(){return "+varname+"},set:function(){"+varname+"=arguments[0]},enumerable:true})"
  419. }
  420.  
  421. if (window.top != window.self)
  422. return
  423.  
  424. if (document.readyState !== 'loading')
  425. return console.error("Expose: this script should run at document-start")
  426.  
  427. var isFirefox = /Firefox/.test(navigator.userAgent)
  428.  
  429. // Stage 1: Find corresponding rule
  430. var rules
  431. for (var i = 0; i < allRules.length; i++)
  432. if (allRules[i].hostname.indexOf(window.location.hostname) !== -1) {
  433. rules = allRules[i]
  434. break
  435. }
  436. if (!rules)
  437. return console.error("Expose: cant find corresponding rule")
  438.  
  439.  
  440. // Stage 2: Search for `main_out.js`
  441. if (isFirefox) {
  442. function bse_listener(e) { tryReplace(e.target, e) }
  443. window.addEventListener('beforescriptexecute', bse_listener, true)
  444. } else {
  445. // Iterate over document.head child elements and look for `main_out.js`
  446. for (var i = 0; i < document.head.childNodes.length; i++)
  447. if (tryReplace(document.head.childNodes[i]))
  448. return
  449. // If there are no desired element in document.head, then wait until it appears
  450. function observerFunc(mutations) {
  451. for (var i = 0; i < mutations.length; i++) {
  452. var addedNodes = mutations[i].addedNodes
  453. for (var j = 0; j < addedNodes.length; j++)
  454. if (tryReplace(addedNodes[j]))
  455. return observer.disconnect()
  456. }
  457. }
  458. var observer = new MutationObserver(observerFunc)
  459. observer.observe(document.head, {childList: true})
  460. }
  461.  
  462. // Stage 3: Replace found element using rules
  463. function tryReplace(node, event) {
  464. var scriptLinked = rules.scriptUriRe && rules.scriptUriRe.test(node.src)
  465. var scriptEmbedded = rules.scriptTextRe && rules.scriptTextRe.test(node.textContent)
  466. if (node.tagName != "SCRIPT" || (!scriptLinked && !scriptEmbedded))
  467. return false // this is not desired element; get back to stage 2
  468.  
  469. if (isFirefox) {
  470. event.preventDefault()
  471. window.removeEventListener('beforescriptexecute', bse_listener, true)
  472. }
  473.  
  474. var mod = {
  475. reset: "",
  476. text: null,
  477. history: [],
  478. cellProp: {},
  479. save() {
  480. this.history.push({reset:this.reset, text:this.text})
  481. return true
  482. },
  483. restore() {
  484. var state = this.history.pop()
  485. this.reset = state.reset
  486. this.text = state.text
  487. return true
  488. },
  489. reset_(reset) {
  490. this.reset += reset
  491. return true
  492. },
  493. replace(what, from, to, reset) {
  494. var vars = [], hooks = []
  495. what.split(" ").forEach((x) => {
  496. x = x.split(":")
  497. x[0] === "var" && vars.push(x[1])
  498. x[0] === "hook" && hooks.push(x[1])
  499. })
  500. function replaceShorthands(str) {
  501. function nope(letter, array, fun) {
  502. str = str
  503. .split(new RegExp('\\$' + letter + '([0-9]?)'))
  504. .map((v,n) => n%2 ? fun(array[v||0]) : v)
  505. .join("")
  506. }
  507. nope('v', vars, (name) => "window.agar." + name)
  508. nope('h', hooks, (name) => "window.agar.hooks." + name)
  509. nope('H', hooks, (name) =>
  510. "window.agar.hooks." + name + "&&" +
  511. "window.agar.hooks." + name)
  512. return str
  513. }
  514. var newText = this.text.replace(from, replaceShorthands(to))
  515. if(newText === this.text) {
  516. console.error("Expose: `" + what + "` replacement failed!")
  517. return false
  518. } else {
  519. this.text = newText
  520. if (reset)
  521. this.reset += replaceShorthands(reset) + ";"
  522. return true
  523. }
  524. },
  525. removeNewlines() {
  526. this.text = this.text.replace(/([,\/;])\n/mg, "$1")
  527. },
  528. get: function() {
  529. var cellProp = JSON.stringify(this.cellProp)
  530. return `window.agar={hooks:{},cellProp:${cellProp}};` +
  531. this.reset + this.text
  532. }
  533. }
  534.  
  535. if (scriptEmbedded) {
  536. mod.text = node.textContent
  537. rules.replace(mod)
  538. if (isFirefox) {
  539. document.head.removeChild(node)
  540. var script = document.createElement("script")
  541. script.textContent = mod.get()
  542. document.head.appendChild(script)
  543. } else {
  544. node.textContent = mod.get()
  545. }
  546. console.log("Expose: replacement done")
  547. } else {
  548. document.head.removeChild(node)
  549. var request = new XMLHttpRequest()
  550. request.onload = function() {
  551. var script = document.createElement("script")
  552. mod.text = this.responseText
  553. rules.replace(mod)
  554. script.textContent = mod.get()
  555. // `main_out.js` should not executed before jQuery was loaded, so we need to wait jQuery
  556. function insertScript(script) {
  557. if (typeof jQuery === "undefined")
  558. return setTimeout(insertScript, 0, script)
  559. document.head.appendChild(script)
  560. console.log("Expose: replacement done")
  561. }
  562. insertScript(script)
  563. }
  564. request.onerror = function() { console.error("Expose: response was null") }
  565. request.open("get", node.src, true)
  566. request.send()
  567. }
  568.  
  569. return true
  570. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement