Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name ReportVaultManager
- // @description Dodaje raporty do skarbce w tle
- // @author Slupio98(only little) and others
- // @version 1.0.1
- // @updateURL http://pastebin.com/raw/iWC9HEK1
- // @downloadURL http://pastebin.com/raw/iWC9HEK1
- // @run-at document-end
- // @match https://*.plemiona.pl/game.php?village=*&screen=report&mode=all&group_id=*&view=*
- // @match http://*.plemiona.pl/game.php?village=*&screen=report&mode=all&group_id=*&view=*
- // ==/UserScript==
- (function () {
- unsafeWindow.MyTwstats = {
- "hash": "e3f3f1321b62b75e13ed",
- "address": "https://pl.mytwstats.com/reportsVault/",
- "alert_msg": ["Błąd połączenia z serwerem pl.mytwstats.com", "Ta strona nie zawiera raportu"],
- "loaded": false,
- "load": function () {
- this.timer = setTimeout(function () {
- alert(MyTwstats.alert_msg[0]);
- }, 5000);
- // var c = document.createElement("script");
- // c.src = this.address + "ext/server.js";
- // document.getElementsByTagName("head")[0].appendChild(c);
- },
- "init": function () {
- if (/view=\d+/i.test(location.href) && /screen=report/i.test(location.href)) {
- if (this.loaded) {
- this.sendReport(this.getReport());
- } else {
- this.load();
- }
- } else {
- alert(this.alert_msg[1]);
- }
- }
- };
- setTimeout(function(){
- MyTwstats.init();
- }, 100);
- })();
- MyTwstats.vaultResponse = function (response) {
- console.log(response.message);
- };
- MyTwstats.handleIframe = function (id, iframe, report) {
- var doc = iframe.contentWindow || iframe.contentDocument;
- if (doc.document) doc = doc.document;
- var form = doc.getElementsByTagName('form')[0];
- if (form) {
- inputA = form.getElementsByTagName('input');
- inputA[0].value = id;
- inputA[1].value = MyTwstats.hash;
- inputA[2].value = report;
- var iframeLoad = function () {
- setTimeout(function () {
- iframe.parentNode.removeChild(iframe);
- var c = document.createElement('script');
- c.src = MyTwstats.address + 'response.php?id=' + id + '&hash=' + MyTwstats.hash;
- document.getElementsByTagName('head')[0].appendChild(c);
- }, 1);
- }
- iframe.onload = function () {
- iframeLoad();
- };
- iframe.onreadystatechange = function () {
- if (MyTwstats.readyState === 'complete') {
- iframeLoad();
- }
- };
- form.submit();
- }
- }
- MyTwstats.createIFrame = function () {
- var iframe = document.getElementById('MyTwstatsIframe');
- if (!iframe) {
- iframe = document.createElement('iframe');
- iframe.style.display = 'none';
- iframe.setAttribute('id', 'MyTwstatsIframe');
- document.body.appendChild(iframe);
- }
- return iframe;
- }
- MyTwstats.createForm = function (iframe) {
- var doc = iframe.contentWindow || iframe.contentDocument;
- if (doc.document) doc = doc.document;
- var form = doc.createElement('form');
- form.setAttribute('id', 'MyTwstatsIframe_form');
- form.method = 'post';
- form.action = MyTwstats.address + 'update_ext.php';
- form.setAttribute('enctype', 'multipart/form-data');
- doc.body.appendChild(form);
- var input = doc.createElement('input');
- input.type = 'text';
- input.name = 'id';
- form.appendChild(input);
- var input = doc.createElement('input');
- input.type = 'text';
- input.name = 'hash';
- form.appendChild(input);
- var input = doc.createElement('input');
- input.type = 'text';
- input.name = 'val';
- form.appendChild(input);
- }
- MyTwstats.getReport = function () {
- return document.getElementById('content_value').getElementsByTagName('tr')[0].childNodes[1].innerHTML;
- }
- MyTwstats.sendReport = function (report) {
- if (report != false) {
- var iframe = MyTwstats.createIFrame();
- setTimeout(function () { MyTwstats.createForm(iframe) }, 1);
- var report = base64_encode(report);
- var id = Math.round(Math.random() * 1000000);
- setTimeout(function () { MyTwstats.handleIframe(id, iframe, report) }, 5);
- }
- }
- function utf8_encode(argString) {
- // http://kevin.vanzonneveld.net
- // + original by: Webtoolkit.info (http://www.webtoolkit.info/)
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + improved by: sowberry
- // + tweaked by: Jack
- // + bugfixed by: Onno Marsman
- // + improved by: Yves Sucaet
- // + bugfixed by: Onno Marsman
- // + bugfixed by: Ulrich
- // * example 1: utf8_encode('Kevin van Zonneveld');
- // * returns 1: 'Kevin van Zonneveld'
- var string = (argString + ''); // .replace(/\r\n/g, "\n").replace(/\r/g, "\n");
- var utftext = "";
- var start, end;
- var stringl = 0;
- start = end = 0;
- stringl = string.length;
- for (var n = 0; n < stringl; n++) {
- var c1 = string.charCodeAt(n);
- var enc = null;
- if (c1 < 128) {
- end++;
- } else if (c1 > 127 && c1 < 2048) {
- enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
- } else {
- enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
- }
- if (enc !== null) {
- if (end > start) {
- utftext += string.substring(start, end);
- }
- utftext += enc;
- start = end = n + 1;
- }
- }
- if (end > start) {
- utftext += string.substring(start, string.length);
- }
- return utftext;
- }
- function base64_encode(data) {
- // http://kevin.vanzonneveld.net
- // + original by: Tyler Akins (http://rumkin.com)
- // + improved by: Bayron Guevara
- // + improved by: Thunder.m
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // + bugfixed by: Pellentesque Malesuada
- // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
- // - depends on: utf8_encode
- // * example 1: base64_encode('Kevin van Zonneveld');
- // * returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
- // mozilla has this native
- // - but breaks in 2.0.0.12!
- //if (typeof this.window['atob'] == 'function') {
- // return atob(data);
- //}
- var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
- var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
- ac = 0,
- enc = "",
- tmp_arr = [];
- if (!data) {
- return data;
- }
- data = utf8_encode(data + '');
- do { // pack three octets into four hexets
- o1 = data.charCodeAt(i++);
- o2 = data.charCodeAt(i++);
- o3 = data.charCodeAt(i++);
- bits = o1 << 16 | o2 << 8 | o3;
- h1 = bits >> 18 & 0x3f;
- h2 = bits >> 12 & 0x3f;
- h3 = bits >> 6 & 0x3f;
- h4 = bits & 0x3f;
- // use hexets to index into b64, and append result to encoded string
- tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
- } while (i < data.length);
- enc = tmp_arr.join('');
- switch (data.length % 3) {
- case 1:
- enc = enc.slice(0, -2) + '==';
- break;
- case 2:
- enc = enc.slice(0, -1) + '=';
- break;
- }
- return enc;
- }
- MyTwstats.loaded = true;
- MyTwstats.sendReport(MyTwstats.getReport());
- clearTimeout(MyTwstats.timer);
Add Comment
Please, Sign In to add comment