screencap.js (24268B)
1 var system = require('system'); 2 var args = system.args; 3 var page = require('webpage').create(); 4 var fs = require('fs'); 5 var cookiespath = '/tmp/.iced_cookies'; 6 var config = ''; 7 var loginTimeout = '5000'; 8 if (args.length === 1) { 9 console.log('Try to pass some args when invoking this script!'); 10 } else { 11 var arguments_file = args[1]; 12 var arguments = JSON.parse(fs.read(arguments_file)); 13 if (arguments.hasOwnProperty('plugins')) { 14 var plugins = arguments["plugins"] 15 } 16 if (arguments.hasOwnProperty('zoomlevel')) { 17 var zoomlevel = arguments["zoomlevel"] 18 } 19 var maptype = arguments["maptype"] 20 var search = arguments["search"] 21 var url = arguments["url"] 22 var filepath = arguments['filepath'] 23 var user = arguments['email'] 24 var pass = arguments['password'] 25 var screenshotfunction = arguments['screenshotfunction'] 26 if(screenshotfunction == "portalinfoText"){ 27 var portalinfoResponse = arguments['portalinfoResponse'] 28 } 29 } 30 31 function loadCookies(callback) { 32 if(fs.exists(cookiespath)) { 33 var stream = fs.open(cookiespath, 'r'); 34 35 while(!stream.atEnd()) { 36 var line = stream.readLine().split('='); 37 if(line[0] === 'SACSID') { 38 config.SACSID = line[1]; 39 } else if(line[0] === 'csrftoken') { 40 config.CSRF = line[1]; 41 } else { 42 config.SACSID = ''; 43 config.CSRF = ''; 44 } 45 } 46 stream.close(); 47 } 48 callback(); 49 } 50 51 function addCookies(sacsid, csrf) { 52 phantom.addCookie({ 53 name: 'SACSID', 54 value: sacsid, 55 domain: 'www.ingress.com', 56 path: '/', 57 httponly: true, 58 secure: true 59 }); 60 phantom.addCookie({ 61 name: 'csrftoken', 62 value: csrf, 63 domain: 'www.ingress.com', 64 path: '/' 65 }); 66 } 67 68 loadCookies(function() { 69 if (config.SACSID == undefined || config.SACSID == '') { 70 firePlainLogin(user, pass, url); 71 } else { 72 addCookies(config.SACSID, config.CSRF); 73 afterLogin(url, search, "cookie"); 74 } 75 }); 76 77 function waitFor ($config) { 78 $config._start = $config._start || new Date(); 79 if ($config.timeout && new Date - $config._start > $config.timeout) { 80 if ($config.error) $config.error(); 81 return; 82 } 83 if ($config.check()) { 84 return $config.success(); 85 } 86 setTimeout(waitFor, $config.interval || 0, $config); 87 } 88 89 90 function isSignedIn() { 91 return page.evaluate(function() { 92 return document.getElementsByTagName('a')[0].innerText.trim() !== 'Sign in'; 93 }); 94 } 95 96 function storeCookies() { 97 var cookies = page.cookies; 98 fs.write(cookiespath, '', 'w'); 99 for(var i in cookies) { 100 fs.write(cookiespath, cookies[i].name + '=' + cookies[i].value +'\n', 'a'); 101 } 102 } 103 104 function firePlainLogin(user, pass, url) { 105 page.settings.userAgent = 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1b3) Gecko/20090305 Firefox/3.1b3 GTB5'; 106 page.open('https://www.ingress.com/intel', function (status) { 107 page.evaluate(function () { 108 localStorage.clear() 109 }); 110 if (status !== 'success') {console.log("Login ERROR"); phantom.exit(0);} 111 var link = 'https://www.google.com/accounts/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://www.ingress.com/intel<mpl=' 112 page.open(link, function () { 113 login(user, pass, url); 114 }); 115 }); 116 } 117 118 function login(l, p, url) { 119 if (document.querySelector('#timeoutError')){ 120 firePlainLogin(l, p) 121 } 122 waitFor({ 123 timeout: loginTimeout*2, 124 check: function () { 125 return page.evaluate(function() { 126 if (document.querySelector('#gaia_loginform')) { 127 return true; 128 }else{ 129 return false; 130 } 131 }); 132 }, 133 success: function () { 134 page.evaluate(function (l) { 135 document.getElementById('Email').value = l; 136 }, l); 137 page.evaluate(function () { 138 document.querySelector("#next").click(); 139 }); 140 window.setTimeout(function () { 141 page.evaluate(function (p) { 142 document.getElementById('Passwd').value = p; 143 }, p); 144 if(document.querySelector("#next")){ 145 page.evaluate(function () { 146 document.querySelector("#next").click(); 147 }); 148 }else{ 149 page.evaluate(function () { 150 document.querySelector("#signIn").click(); 151 }); 152 } 153 window.setTimeout(function () { 154 if (page.url.substring(0,40) === 'https://accounts.google.com/ServiceLogin') { 155 console.log("login failed: wrong email and/or password") 156 phantom.exit(0); 157 } 158 159 if (page.url.substring(0,40) === 'https://appengine.google.com/_ah/loginfo') { 160 page.evaluate(function () { 161 document.getElementById('persist_checkbox').checked = true; 162 document.getElementsByTagName('form').submit(); 163 }); 164 } 165 166 if (page.url.substring(0,44) === 'https://accounts.google.com/signin/challenge') { 167 twostep = system.stdin.readLine(); 168 } 169 window.setTimeout(afterLogin(url, search, "plain"), loginTimeout); 170 }, loginTimeout) 171 }, loginTimeout / 10); 172 }, 173 error: function () { 174 phantom.exit(0); 175 } 176 }); 177 } 178 179 function map(search){ 180 setTimeout(function() { 181 if (search != 'nix') { 182 searchfunc(search); 183 } 184 waitFor({ 185 timeout: 240000, 186 check: function () { 187 return page.evaluate(function(zoomlevel) { 188 if (document.querySelector('.map').textContent.indexOf('done') != -1) { 189 return true; 190 }else{ 191 console.log('generateFakeOutput') 192 return false; 193 } 194 }, zoomlevel); 195 }, 196 success: function () { 197 var startTime = new Date().getTime(); 198 var interval = setInterval(function(){ 199 if(new Date().getTime() - startTime > 5000){ 200 hideDebris(); 201 prepare('1280', '720'); 202 main(); 203 clearInterval(interval); 204 return; 205 } 206 console.log('generateFakeOutput') 207 }, 1000); 208 }, 209 error: function () { 210 var startTime = new Date().getTime(); 211 var interval = setInterval(function(){ 212 if(new Date().getTime() - startTime > 5000){ 213 hideDebris(); 214 prepare('1280', '720'); 215 main(); 216 clearInterval(interval); 217 return; 218 } 219 console.log('generateFakeOutput') 220 }, 1000); 221 } 222 }); 223 }, "1000"); 224 } 225 226 function portalinfoScreen(){ 227 setTimeout(function() { 228 waitFor({ 229 timeout: 240000, 230 check: function () { 231 return page.evaluate(function() { 232 if (document.querySelector('.map').textContent.indexOf('done') != -1) { 233 return true; 234 }else{ 235 console.log('generateFakeOutput') 236 return false; 237 } 238 }); 239 }, 240 success: function () { 241 var clipRect = page.evaluate(function(){ 242 return document.querySelector('#sidebar').getBoundingClientRect(); 243 }); 244 page.evaluate(function(){ 245 document.querySelector('#playerstat').style.display = 'none'; 246 document.querySelector('#searchwrapper').style.display = 'none'; 247 document.querySelector('#redeem').style.display = 'none'; 248 }); 249 setTimeout(function() { 250 var elementHeight = page.evaluate(function(){ 251 return $("#sidebar").height(); 252 }); 253 254 page.clipRect = { 255 top: clipRect.top, 256 left: clipRect.left, 257 width: clipRect.width, 258 height: elementHeight 259 } 260 setTimeout(function() {s(filepath)}, "1000"); 261 }, "2000"); 262 }, 263 error: function () { 264 var clipRect = page.evaluate(function(){ 265 return document.querySelector('#sidebar').getBoundingClientRect(); 266 }); 267 268 setTimeout(function() { 269 var elementHeight = page.evaluate(function(){ 270 return $("#sidebar").height(); 271 }); 272 273 page.clipRect = { 274 top: clipRect.top, 275 left: clipRect.left, 276 width: clipRect.width, 277 height: elementHeight 278 } 279 setTimeout(function() {s(filepath)}, "1000"); 280 }, "2000"); 281 } 282 }); 283 }, "1000"); 284 } 285 286 function portalinfoText(){ 287 setTimeout(function() { 288 waitFor({ 289 timeout: 240000, 290 check: function () { 291 return page.evaluate(function() { 292 if ((document.querySelector('.map').textContent.indexOf('done') != -1) || (document.getElementById("resodetails").rows[0])) { 293 return true; 294 }else{ 295 console.log('generateFakeOutput') 296 return false; 297 } 298 }); 299 }, 300 success: function () { 301 var PortalName = page.evaluate(function(){ 302 return document.getElementById("portaldetails").getElementsByClassName("title")[0].innerHTML; 303 }); 304 var reso1 = page.evaluate(function(){ 305 return document.getElementById("resodetails").rows[0].cells[1].firstElementChild.getAttribute("title"); 306 }); 307 var reso2 = page.evaluate(function(){ 308 return document.getElementById("resodetails").rows[0].cells[2].firstElementChild.getAttribute("title"); 309 }); 310 var reso3 = page.evaluate(function(){ 311 return document.getElementById("resodetails").rows[1].cells[1].firstElementChild.getAttribute("title"); 312 }); 313 var reso4 = page.evaluate(function(){ 314 return document.getElementById("resodetails").rows[1].cells[2].firstElementChild.getAttribute("title"); 315 }); 316 var reso5 = page.evaluate(function(){ 317 return document.getElementById("resodetails").rows[2].cells[1].firstElementChild.getAttribute("title"); 318 }); 319 var reso6 = page.evaluate(function(){ 320 return document.getElementById("resodetails").rows[2].cells[2].firstElementChild.getAttribute("title"); 321 }); 322 var reso7 = page.evaluate(function(){ 323 return document.getElementById("resodetails").rows[3].cells[1].firstElementChild.getAttribute("title"); 324 }); 325 var reso8 = page.evaluate(function(){ 326 return document.getElementById("resodetails").rows[3].cells[2].firstElementChild.getAttribute("title"); 327 }); 328 var text = PortalName.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><br /><b>Resonator 1:</b><br />" + reso1.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 2:</b><br />" + reso2.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 3:</b><br />" + reso3.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 4:</b><br />" + reso4.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 5:</b><br />" + reso5.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 6:</b><br />" + reso6.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 7:</b><br />" + reso7.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 8:</b><br />" + reso8.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') 329 console.log(text) 330 fs.write(portalinfoResponse, text, 'w'); 331 var startTime = new Date().getTime(); 332 var startTime = new Date().getTime(); 333 var interval = setInterval(function(){ 334 if(new Date().getTime() - startTime > 5000){ 335 clearInterval(interval); 336 phantom.exit(0); 337 return; 338 } 339 console.log('doSomeOutput') 340 }, 1000); 341 }, 342 error: function () { 343 var PortalName = page.evaluate(function(){ 344 return document.getElementById("portaldetails").getElementsByClassName("title")[0].innerHTML; 345 }); 346 var reso1 = page.evaluate(function(){ 347 return document.getElementById("resodetails").rows[0].cells[1].firstElementChild.getAttribute("title"); 348 }); 349 var reso2 = page.evaluate(function(){ 350 return document.getElementById("resodetails").rows[0].cells[2].firstElementChild.getAttribute("title"); 351 }); 352 var reso3 = page.evaluate(function(){ 353 return document.getElementById("resodetails").rows[1].cells[1].firstElementChild.getAttribute("title"); 354 }); 355 var reso4 = page.evaluate(function(){ 356 return document.getElementById("resodetails").rows[1].cells[2].firstElementChild.getAttribute("title"); 357 }); 358 var reso5 = page.evaluate(function(){ 359 return document.getElementById("resodetails").rows[2].cells[1].firstElementChild.getAttribute("title"); 360 }); 361 var reso6 = page.evaluate(function(){ 362 return document.getElementById("resodetails").rows[2].cells[2].firstElementChild.getAttribute("title"); 363 }); 364 var reso7 = page.evaluate(function(){ 365 return document.getElementById("resodetails").rows[3].cells[1].firstElementChild.getAttribute("title"); 366 }); 367 var reso8 = page.evaluate(function(){ 368 return document.getElementById("resodetails").rows[3].cells[2].firstElementChild.getAttribute("title"); 369 }); 370 var text = PortalName.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><br /><b>Resonator 1:</b><br />" + reso1.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 2:</b><br />" + reso2.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 3:</b><br />" + reso3.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 4:</b><br />" + reso4.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 5:</b><br />" + reso5.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 6:</b><br />" + reso6.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 7:</b><br />" + reso7.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') + "<br /><b>Resonator 8:</b><br />" + reso8.replace(/(?:\r\n|\r|\n)/g, '<br />').replace(/(?:\t)/g, ' ') 371 console.log(text) 372 fs.write(portalinfoResponse, text.replace(/'/g, ''), 'w'); 373 var startTime = new Date().getTime(); 374 var startTime = new Date().getTime(); 375 var interval = setInterval(function(){ 376 if(new Date().getTime() - startTime > 5000){ 377 clearInterval(interval); 378 phantom.exit(0); 379 return; 380 } 381 console.log('doSomeOutput') 382 }, 1000); 383 } 384 }); 385 }, "1000"); 386 } 387 388 function afterLogin(url, search, mode) { 389 page.viewportSize = { width: '1280', height: '720' }; 390 page.open(url, function(status) { 391 console.log(url) 392 if (status !== 'success') {console.log('unable to connect to remote server after Login'); phantom.exit(0);} 393 if (!isSignedIn()) { 394 if(mode =="cookie"){ 395 if(fs.exists(cookiespath)) { 396 fs.remove(cookiespath); 397 } 398 } 399 console.log("not logged in") 400 quit(); 401 } 402 setTimeout(function() { 403 if(mode == "plain"){ 404 storeCookies(); 405 } 406 setupIITC() 407 if(screenshotfunction == "map"){ 408 map(search); 409 }else if (screenshotfunction == "portalinfoScreen"){ 410 portalinfoScreen(); 411 }else if (screenshotfunction == "portalinfoText"){ 412 portalinfoText(); 413 } 414 }, "1000"); 415 }); 416 } 417 418 function loadIitcPlugin(src) { 419 page.evaluate(function(src) { 420 var script = document.createElement('script'); 421 script.type='text/javascript'; 422 script.src=src; 423 document.head.insertBefore(script, document.head.lastChild); 424 }, src); 425 } 426 427 function loadLocalIitcPlugin(src) { 428 page.injectJs(src) 429 } 430 431 function searchfunc(search){ 432 page.evaluate(function(search, zoomlevel) { 433 if (document.querySelector('#search')){ 434 window.addHook('search', function(query) { 435 var checkExist = setInterval(function() { 436 if (query.results.length > 0) { 437 map.fitBounds(query.results[0].bounds, {maxZoom: 17}) 438 clearInterval(checkExist); 439 } 440 if (typeof zoomlevel !== 'undefined' || zoomlevel !== null) { 441 console.log(zoomlevel) 442 window.map.setZoom(zoomlevel,animate=false) 443 } 444 }, 100); 445 }); 446 setTimeout(function() { 447 window.search.doSearch(search, true) 448 }, 2000); 449 } 450 }, search, zoomlevel); 451 } 452 453 function setupIITC(){ 454 loadIitcPlugin('https://static.iitc.me/build/release/plugins/canvas-render.user.js'); 455 page.evaluate(function(maptype) { 456 localStorage['ingress.intelmap.layergroupdisplayed'] = JSON.stringify({ 457 "Unclaimed/Placeholder Portals": false, 458 "Level 1 Portals": true, 459 "Level 2 Portals": true, 460 "Level 3 Portals": true, 461 "Level 4 Portals": true, 462 "Level 5 Portals": true, 463 "Level 6 Portals": true, 464 "Level 7 Portals": true, 465 "Level 8 Portals": true, 466 "Fields": true, 467 "Links": true, 468 "Resistance": true, 469 "Enlightened": true, 470 "DEBUG Data Tiles":false, 471 "Artifacts":true, 472 "Ornaments":true 473 }); 474 var script = document.createElement('script'); 475 script.type='text/javascript'; 476 script.src='https://static.iitc.me/build/test/total-conversion-build.user.js'; 477 document.head.insertBefore(script, document.head.lastChild); 478 if (maptype == "intel") { 479 localStorage['iitc-base-map'] = 'Google Default Ingress Map'; 480 }else { 481 localStorage['iitc-base-map'] = 'Google Roads'; 482 } 483 }, maptype); 484 if (maptype != "intel") { 485 for(var i in plugins){ 486 var plugin = plugins[i]; 487 if(plugin.match('(http(s)?:\/\/)')){ 488 loadIitcPlugin(plugin); 489 }else{ 490 loadLocalIitcPlugin(plugin); 491 } 492 } 493 } 494 } 495 496 function s(file) { 497 console.log('SCREENSHOT') 498 page.render(file); 499 var startTime = new Date().getTime(); 500 var startTime = new Date().getTime(); 501 var interval = setInterval(function(){ 502 if(new Date().getTime() - startTime > 5000){ 503 clearInterval(interval); 504 phantom.exit(0); 505 return; 506 } 507 console.log('doSomeOutput') 508 }, 1000); 509 } 510 511 function hideDebris() { 512 window.setTimeout(function() { 513 page.evaluate(function() { 514 if (document.querySelector('#chat')) {document.querySelector('#chat').style.display = 'none';} 515 if (document.querySelector('#chatcontrols')) {document.querySelector('#chatcontrols').style.display = 'none';} 516 if (document.querySelector('#chatinput')) {document.querySelector('#chatinput').style.display = 'none';} 517 if (document.querySelector('#updatestatus')) {document.querySelector('#updatestatus').style.display = 'none';} 518 if (document.querySelector('#sidebartoggle')) {document.querySelector('#sidebartoggle').style.display = 'none';} 519 if (document.querySelector('#scrollwrapper')) {document.querySelector('#scrollwrapper').style.display = 'none';} 520 if (document.querySelector('.leaflet-control-container')) {document.querySelector('.leaflet-control-container').style.display = 'none';} 521 if (document.querySelector('#portal_highlight_select')) {document.querySelector('#portal_highlight_select').style.display = 'none';} 522 }); 523 }, 200); 524 } 525 526 function prepare(widthz, heightz) { 527 window.setTimeout(function() { 528 page.evaluate(function(w, h) { 529 var water = document.createElement('p'); 530 water.id='viewport-ice'; 531 water.style.position = 'absolute'; 532 water.style.top = '0'; 533 water.style.marginTop = '0'; 534 water.style.paddingTop = '0'; 535 water.style.left = '0'; 536 water.style.width = w + 'px'; 537 water.style.height = h + 'px'; 538 document.querySelectorAll('body')[0].appendChild(water); 539 }, widthz, heightz); 540 var selector = "#viewport-ice"; 541 setElementBounds(selector); 542 }, 500); 543 } 544 545 546 function setElementBounds(selector) { 547 page.clipRect = page.evaluate(function(selector) { 548 var clipRect = document.querySelector(selector).getBoundingClientRect(); 549 return { 550 top: clipRect.top, 551 left: clipRect.left, 552 width: clipRect.width, 553 height: clipRect.height 554 }; 555 }, selector); 556 } 557 558 function getDateTime(format) { 559 var now = new Date(); 560 var year = now.getFullYear(); 561 var month = now.getMonth()+1; 562 var day = now.getDate(); 563 var hour = now.getHours(); 564 var minute = now.getMinutes(); 565 var second = now.getSeconds(); 566 var timeZone = ''; 567 if(month.toString().length === 1) { 568 month = '0' + month; 569 } 570 if(day.toString().length === 1) { 571 day = '0' + day; 572 } 573 if(hour.toString().length === 1) { 574 hour = '0' + hour; 575 } 576 if(minute.toString().length === 1) { 577 minute = '0' + minute; 578 } 579 if(second.toString().length === 1) { 580 second = '0' + second; 581 } 582 var dateTime; 583 if (format === 1) { 584 dateTime = year + '-' + month + '-' + day + '--' + hour + '-' + minute + '-' + second; 585 } else { 586 dateTime = day + '.' + month + '.' + year + ' ' + hour + ':' + minute + ':' + second + timeZone; 587 } 588 return dateTime; 589 } 590 591 function addTimestamp(time) { 592 if (search == "nix") { 593 if (maptype == "iitc") { 594 page.evaluate(function(dateTime, search) { 595 var water = document.createElement('p'); 596 water.id='watermark-ice'; 597 water.innerHTML = dateTime; 598 water.style.position = 'absolute'; 599 water.style.color = '#3A539B'; 600 water.style.top = '0'; 601 water.style.zIndex = '4404'; 602 water.style.marginTop = '0'; 603 water.style.paddingTop = '0'; 604 water.style.left = '0'; 605 water.style.fontSize = '30px'; 606 water.style.opacity = '0.8'; 607 water.style.fontFamily = 'monospace'; 608 water.style.textShadow = '0px 1px 8px rgba(150, 150, 150, 1)'; 609 document.querySelectorAll('body')[0].appendChild(water); 610 }, time, search); 611 }else { 612 page.evaluate(function(dateTime, search) { 613 var water = document.createElement('p'); 614 water.id='watermark-ice'; 615 water.style.zIndex = '4404'; 616 water.innerHTML = dateTime; 617 water.style.position = 'absolute'; 618 water.style.color = 'orange'; 619 water.style.top = '0'; 620 water.style.left = '0'; 621 water.style.fontSize = '30px'; 622 water.style.opacity = '0.8'; 623 water.style.marginTop = '0'; 624 water.style.paddingTop = '0'; 625 water.style.fontFamily = 'monospace'; 626 water.style.textShadow = '0px 1px 8px rgba(150, 150, 150, 1)'; 627 document.querySelectorAll('body')[0].appendChild(water); 628 }, time, search); 629 } 630 }else{ 631 if (maptype == "iitc") { 632 page.evaluate(function(dateTime, search) { 633 var water = document.createElement('p'); 634 water.id='watermark-ice'; 635 water.innerHTML = dateTime + ' - ' + search; 636 water.style.position = 'absolute'; 637 water.style.color = '#3A539B'; 638 water.style.top = '0'; 639 water.style.zIndex = '4404'; 640 water.style.marginTop = '0'; 641 water.style.paddingTop = '0'; 642 water.style.left = '0'; 643 water.style.fontSize = '30px'; 644 water.style.opacity = '0.8'; 645 water.style.fontFamily = 'monospace'; 646 water.style.textShadow = '0px 1px 8px rgba(150, 150, 150, 1)'; 647 document.querySelectorAll('body')[0].appendChild(water); 648 }, time, search); 649 }else { 650 page.evaluate(function(dateTime, search) { 651 var water = document.createElement('p'); 652 water.id='watermark-ice'; 653 water.style.zIndex = '4404'; 654 water.innerHTML = dateTime + ' - ' + search; 655 water.style.position = 'absolute'; 656 water.style.color = 'orange'; 657 water.style.top = '0'; 658 water.style.left = '0'; 659 water.style.fontSize = '30px'; 660 water.style.opacity = '0.8'; 661 water.style.marginTop = '0'; 662 water.style.paddingTop = '0'; 663 water.style.fontFamily = 'monospace'; 664 water.style.textShadow = '0px 1px 8px rgba(150, 150, 150, 1)'; 665 document.querySelectorAll('body')[0].appendChild(water); 666 }, time, search); 667 } 668 } 669 } 670 671 /** 672 * Main function. 673 */ 674 function main() { 675 page.evaluate(function() { 676 if (document.getElementById('watermark-ice')) { 677 var oldStamp = document.getElementById('watermark-ice'); 678 oldStamp.parentNode.removeChild(oldStamp); 679 } 680 }); 681 window.setTimeout(function() { 682 addTimestamp(getDateTime(0)); 683 file = filepath; 684 s(file); 685 }, 400); 686 }