Advertisement
Reisyukaku

Web Skype Hax

Aug 5th, 2015
984
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         SkypeDestroyer
  3. // @namespace    http://mzinck.com
  4. // @version      0.1
  5. // @description  Skype Script
  6. // @author       Mitchell Zinck <mitchellzinck@yahoo.com
  7. // @include      https://web.skype.com/en/
  8. // @grant        none
  9. // ==/UserScript==
  10.  
  11.  
  12. (function(XHR) {
  13.     "use strict";
  14.  
  15.     var stats = [];
  16.     var timeoutId = null;
  17.  
  18.     var open = XHR.prototype.open;
  19.     var send = XHR.prototype.send;
  20.  
  21.     XHR.prototype.open = function(method, url, async, user, pass) {
  22.         this._url = url;
  23.         open.call(this, method, url, async, user, pass);
  24.     };
  25.  
  26.     XHR.prototype.send = function(data) {
  27.         var k;
  28.         if(isMsg(data) && data != null) {      
  29.             k = JSON.parse(data);
  30.             var size = null;
  31.             var color = null;
  32.             if(k.content.indexOf("!") > -1) {
  33.                 size = k.content.match(/\!(.*?)\!/)[1];
  34.             }
  35.             if(k.content.indexOf("+") > -1) {
  36.                 color = k.content.match(/\+(.*?)\+/)[1];
  37.             }
  38.             if(k.content.substring(0, 1) === "#") {    
  39.                 k = replaceURL(k);
  40.                 if(k !== null) {
  41.                     k = JSON.stringify(k);
  42.                     data = k;
  43.                 }
  44.                 if(size !== null) {
  45.                     k = changeFontSize(JSON.parse(data), size);
  46.                     if(k !== null) {
  47.                         k = JSON.stringify(k);
  48.                         data = k;
  49.                     }
  50.                 }
  51.                 if(color !== null) {
  52.                     k = changeFontColor(JSON.parse(data), color);
  53.                     if(k !== null) {
  54.                         k = JSON.stringify(k);
  55.                         data = k;
  56.                     }
  57.                 }
  58.             }
  59.  
  60.             console.log(data);
  61.         }        
  62.  
  63.         var self = this;
  64.         var start;
  65.         var oldOnReadyStateChange;
  66.         var url = this._url;
  67.  
  68.         function onReadyStateChange() {
  69.             if(self.readyState == 4 /* complete */) {
  70.                 var time = new Date() - start;                
  71.                 stats.push({
  72.                     url: url,
  73.                     duration: time                    
  74.                 });
  75.  
  76.                 if(!timeoutId) {
  77.                     timeoutId = window.setTimeout(function() {
  78.                         var xhr = new XHR();
  79.                         xhr.noIntercept = true;
  80.                         xhr.open("POST", "/clientAjaxStats", true);
  81.                         xhr.setRequestHeader("Content-type","application/json");
  82.                         xhr.send(JSON.stringify({ stats: stats } ));                        
  83.  
  84.                         timeoutId = null;
  85.                         stats = [];
  86.                     }, 2000);
  87.                 }                
  88.             }
  89.  
  90.             if(oldOnReadyStateChange) {
  91.                 oldOnReadyStateChange();
  92.             }
  93.         }
  94.  
  95.         if(!this.noIntercept) {
  96.             start = new Date();
  97.  
  98.             if(this.addEventListener) {
  99.                 this.addEventListener("readystatechange", onReadyStateChange, false);
  100.             } else {
  101.                 oldOnReadyStateChange = this.onreadystatechange;
  102.                 this.onreadystatechange = onReadyStateChange;
  103.             }
  104.         }
  105.  
  106.         send.call(this, data);
  107.     }
  108. })(XMLHttpRequest);
  109.  
  110. function isMsg(value) {
  111.     try {
  112.         JSON.stringify(value);
  113.         if(JSON.stringify(value).indexOf("content") > -1) {
  114.             return true;
  115.         } else {
  116.             return false;
  117.         }
  118.     } catch (ex) {
  119.         return false;
  120.     }
  121. }
  122.  
  123. function replaceURL(data) {
  124.     try {
  125.         if(data.content.indexOf('<a href="') > -1) {
  126.             var remove = data.content.match(/\<(.*?)\>/)[1];
  127.             data.content = data.content.replace(remove, '');
  128.             data.content = data.content.replace('<', '');
  129.             data.content = data.content.replace('>', '');
  130.             data.content = data.content.replace('</a>', '');
  131.             console.log(data.content);
  132.         }
  133.         if(data.content.match(/\[(.*?)\]/)[1].indexOf("http://") == -1 && data.content.match(/\[(.*?)\]/)[1].indexOf("https://") == -1) {  
  134.             data.content = "<a href='http://" +  data.content.match(/\[(.*?)\]/)[1] + "'>" + data.content.match(/\(([^)]+)\)/)[1] + "</a>";
  135.         } else {
  136.             data.content = "<a href='" +  data.content.match(/\[(.*?)\]/)[1] + "'>" + data.content.match(/\(([^)]+)\)/)[1] + "</a>";
  137.         }
  138.         return data;
  139.     } catch(ex) {
  140.         return null;
  141.     }
  142. }
  143.  
  144. function changeFontSize(data, size) {
  145.     try {
  146.         if(data.content.indexOf("#") > -1) {
  147.             data.content = data.content.replace('#','');
  148.             data.content = data.content.replace(data.content.match(/\!(.*?)\!/)[1], '');
  149.             data.content = data.content.replace(/!/g, '');
  150.         }
  151.  
  152.         data.content = "<font size='" +  size + "'>" + data.content + "</font>";
  153.         return data;
  154.     } catch(ex) {
  155.         return null;
  156.     }
  157. }
  158.  
  159. function changeFontColor(data, color) {
  160.     try {
  161.         if(data.content.indexOf("#") > -1) {
  162.             data.content = data.content.replace('#','');
  163.             data.content = data.content.replace(data.content.match(/\+(.*?)\+/)[1], '');
  164.             data.content = data.content.replace(/\+/g, '');
  165.         }
  166.  
  167.         data.content = "<font color='#" +  color + "'>" + data.content + "</font>";
  168.         return data;
  169.     } catch(ex) {
  170.         return null;
  171.     }
  172. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement