home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Theme / 8GadgetPack / 8GadgetPackSetup.msi / Gadgets.7z / Gadgets / Denk-Daran.gadget / fehler.js < prev    next >
Text File  |  2013-04-19  |  4KB  |  133 lines

  1. ∩╗┐window.onerror = fehlbehandl;
  2.  
  3. function fehlbehandl(x, y, z) {
  4.     //x = Nachricht
  5.     //y = Datei
  6.     //z = Zeile
  7.     
  8.     //windows-version ermitteln
  9.     var str = navigator.userAgent;
  10.     var anf = str.indexOf("Win");
  11.     var end = str.substring(anf).indexOf(";");
  12.     
  13.     //generierte fehlermeldung
  14.     var str_fehler = zle+" "+z+": "+x.replace(/\r|\n/g, "")+" ("+y+", "+str.substring(anf, anf+end)+", "+navigator.platform+")";
  15.     
  16.     if(fehlausg(str_fehler) == 6){
  17.         var xml = new XMLHttpRequest();
  18.         //versuchen fehler zu senden
  19.         xml.open('POST', "http://dahi24.da.funpic.de/errors/error.php");
  20.         xml.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=utf-8'); //f├╝r post wichtig
  21.         xml.onreadystatechange = function (){ auswert_fehlbehandl(xml, str_fehler) };
  22.         try{
  23.             xml.send("fehler="+str_fehler+"&programm=Denk-Daran "+System.Gadget.version);
  24.         }
  25.         catch(e){
  26.             //request wurde geblockt
  27.         }
  28.     }
  29.  
  30. }
  31.  
  32.  
  33. function auswert_fehlbehandl(xml, str_fehler) {
  34.     //fehlermeldung cachen, wenn kein netz
  35.      if(xml.readyState == 4){
  36.         if(xml.status != "200"){
  37.             fso = new ActiveXObject("Scripting.FileSystemObject");
  38.             pfad_error = System.Gadget.path + "\\daten\\errorcache.dat";
  39.             
  40.             
  41.             //bereits vorhandene fehler einlesen
  42.             if(fso.FileExists(pfad_error)){
  43.                 fso_dat = fso.OpenTextFile(pfad_error, 1, false, -1);
  44.                 alttxt = fso_dat.ReadAll();
  45.                 fso_dat.close();
  46.             }
  47.             else alttxt="";
  48.                 
  49.             var txte=alttxt.split("\r\n");
  50.             var prf=0;
  51.             
  52.             //pr├╝fen ob fehler schon mal aufgetreten ist
  53.             for(var i=0; i<txte.length; i++){ 
  54.                 if(txte[i] == str_fehler) prf=1;
  55.             }
  56.             
  57.             if(prf == 0){
  58.                 //umbruch anh├ñngen, wenn schon was in der textdatei steht
  59.                 if(alttxt != "") var tmp = "\r\n";
  60.                 else var tmp = "";
  61.                 
  62.                 fso_dat = fso.OpenTextFile(pfad_error, 8, true, -1);
  63.                 fso_dat.Write(tmp+str_fehler);
  64.                 fso_dat.close();
  65.             }
  66.         }
  67.     }
  68. }
  69.  
  70.  
  71. //fehlermeldungen, die bei fehlender internetverbindung auftraten, an den server senden, wenn m├╢glich
  72. function lokfehlsend(){
  73.     fso = new ActiveXObject ("Scripting.FileSystemObject");
  74.     pfad_error = System.Gadget.path + "\\daten\\errorcache.dat";
  75.     
  76.     //es wurden fehler gecacht
  77.     if(fso.FileExists(pfad_error)){
  78.         var fso_dat = fso.OpenTextFile(pfad_error, 1, false, -1);
  79.         alttxt = fso_dat.ReadAll();
  80.         fso_dat.close();
  81.     
  82.     
  83.         var txte=alttxt.split("\r\n");
  84.         var text="";
  85.         
  86.         //backslash f├╝r versendung vorbereiten
  87.         for(var i=0; i<txte.length; i++){
  88.             text += txte[i];
  89.             if(i != (txte.length-1))text += "\\r\\n";
  90.         }
  91.         
  92.         //lokal zwischengespeicherte fehler wenn m├╢glich senden
  93.         var xml = new XMLHttpRequest();
  94.         xml.open('POST', "http://dahi24.da.funpic.de/errors/error.php");
  95.         xml.setRequestHeader('Content-type','application/x-www-form-urlencoded; charset=utf-8'); //f├╝r post wichtig (zeichensatz, da er sonst unveraendert als utf16 aus der textdatei uebernommen wird)
  96.         xml.onreadystatechange = function (){ 
  97.             
  98.             if(xml.readyState == 4){
  99.                 if(xml.status == "200"){
  100.                     fso.DeleteFile(pfad_error, true);
  101.                 }
  102.             }
  103.             
  104.         };
  105.         
  106.         try{
  107.             xml.send("fehler="+text+"&programm=Denk-Daran "+System.Gadget.version);
  108.         }
  109.         catch(e){
  110.             //request wurde geblockt
  111.         }
  112.     }
  113. }
  114.  
  115.  
  116. //liest Gadget-Einstellungen (hoffentlich) zuverl├ñssiger ein
  117. function readGadgetSetting(x){
  118.     var i=0;
  119.     var ok = false;
  120.     do{
  121.         try{
  122.             var tmp = System.Gadget.Settings.read(x);
  123.             ok = true;
  124.         }
  125.         catch(e){
  126.             i++;
  127.             if(i == 5){ //letzer versuch fehlgeschlagen
  128.                 fehlbehandl("On following setting cannot be accessed: '" + x + "'. Cause could be a real-time scanner or a system optimization program.", "-", "-");
  129.             }
  130.         }
  131.     } while(ok == false && i < 5);
  132.     return tmp;
  133. }