PK 3chrome/PK 3&chrome/memotoofirefox.jarPK X3content/PK S3t(content/bmsyncNetworkService.js// this code was written by Torisugari var gBookmarksSynchronizerUploadService= { _channel:null, _callback:null, _data:"", _scheme:"", _errorData:"", start:function(aStr,aURI,aType,aCallback) { if( !aStr || !aURI) return false; this._callback=aCallback; this._scheme=aURI.scheme; const ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); const stringStream=Components.classes["@mozilla.org/io/string-input-stream;1"] .createInstance(Components.interfaces.nsIStringInputStream); this._channel = ioService.newChannelFromURI( aURI ) .QueryInterface(Components.interfaces.nsIUploadChannel); try{ stringStream.setData(aStr, -1); this._channel.setUploadStream(stringStream,aType,-1); this._channel.asyncOpen(this, null); this._callback("send",status); this._data=aStr; return true; }catch(e){window.alert("__netwerk__\n\n"+"e");} return false; }, cancel:function() { if(this._channel) this._channel.cancel(0x804b0002); }, onDataAvailable: function (channel, ctxt, input, sourceOffset, count){ const sis = Components.classes["@mozilla.org/scriptableinputstream;1"] .createInstance(Components.interfaces.nsIScriptableInputStream); sis.init(input); this._errorData +=sis.read(count); }, onStartRequest: function (channel, ctxt){}, onStopRequest: function (channel, ctxt, status) { if(this._scheme != "ftp") { var res=0; try{ res = channel.QueryInterface(Components.interfaces.nsIHttpChannel) .responseStatus; }catch(e){} if(res==200||res==201 || res==204) status=0; /* 200:OK 201:Created 204:No Content This is an uploading channel, no need to "GET" the file contents. */ if(this._errorData || res==401) status=res; if(this._errorData && res==200) alert(this._errorData); } if(this._callback) this._callback("done",status); } }; var gBookmarksSynchronizerDownloadService= { _channel:null, streamLoader:null, data:null, length:null, _callback:null, _startTime:0, _endTime:0, start:function(aURI,aCallback) { if( !aURI ) return false; this._callback=aCallback; try{ var ioService = Components.classes["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); this.streamLoader=Components.classes["@mozilla.org/network/stream-loader;1"] .createInstance(Components.interfaces.nsIStreamLoader); this._channel = ioService.newChannelFromURI( aURI ); if(aURI.scheme=="http" || aURI.scheme=="https") this._channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; this.streamLoader.init(this._channel, this , null); this._startTime=(new Date()).getTime(); }catch(e){ alert(e); return false;} return true; }, cancel:function() { if(this._channel) this._channel.cancel(0x804b0002); }, onStreamComplete :function ( loader , ctxt , status , resultLength , result ) { this.data=""; this._endTime=(new Date()).getTime(); if(status==0) { this.length=resultLength; if(typeof(result)=="string") this.data=result; else { while(result.length > (256*192) ) { this.data += String.fromCharCode.apply(this,result.splice(0,256*192)); } this.data += String.fromCharCode.apply(this,result); } } if(this._callback) this._callback("done",status); }, get time(){ return this._endTime-this._startTime; } }; PK 3\content/bookmarks.jsinitServices(); initBMService(); var BookmarksCommandMemotoo = { doBookmarksCommand: function (aSource, aCommand, aArgumentsArray) { var rCommand = RDF.GetResource(aCommand); var kSuppArrayContractID = "@mozilla.org/supports-array;1"; var kSuppArrayIID = Components.interfaces.nsISupportsArray; var sourcesArray = Components.classes[kSuppArrayContractID].createInstance(kSuppArrayIID); if (aSource) { sourcesArray.AppendElement(aSource); } var argsArray = Components.classes[kSuppArrayContractID].createInstance(kSuppArrayIID); var length = aArgumentsArray?aArgumentsArray.length:0; for (var i = 0; i < length; ++i) { var rArc = RDF.GetResource(aArgumentsArray[i].property); argsArray.AppendElement(rArc); var rValue = null; if ("resource" in aArgumentsArray[i]) { rValue = RDF.GetResource(aArgumentsArray[i].resource); } else rValue = RDF.GetLiteral(aArgumentsArray[i].literal); argsArray.AppendElement(rValue); } // Exec the command in the Bookmarks datasource. BMDS.DoCommand(sourcesArray, rCommand, argsArray); }, importBookmarksFromFile: function (aDossier, aFile) { var rTarget = RDF.GetResource(aDossier); if (! BMSVC.isBookmarkedResource(rTarget)) { rTarget = RDF.GetResource("NC:BookmarksRoot"); } RDFC.Init(BMDS, rTarget); var args = [{ property: NC_NS+"URL", literal: aFile}]; this.doBookmarksCommand(rTarget, NC_NS_CMD+"import", args); }, }PK es3cN  content/browse.xul PK 2content/contents.rdf chrome://memotoofirefox/content/memotoofirefoxOverlay.xul PK wQ3_6content/download.xul PK M3locale/PK fD3 locale/en-US/PK %q3lllocale/en-US/contents.rdf PK r3alocale/en-US/memotoofirefox.dtd Options ..."> Add this site"> Search bookmarks"> Show the toolbar"> Show the sidebar"> PK fD3~Xss&locale/en-US/memotoofirefox.propertiesloginpasswordempty=Error: Login and password couldn't be empty loginpassworderror=Error: Impossible to connect to Memotoo.com with this login and this password uploadok=Update Memotoo.com bookmarks -> OK downloadok=Update Firefox bookmarks -> OK upload0bookmark=Update Memotoo.com impossible -> there is 0 bookmark in this folder options1=Memotoo.com -> Options ...PK fD3 locale/fr-FR/PK 2Ylllocale/fr-FR/contents.rdf PK r3dlocale/fr-FR/memotoofirefox.dtd Options ..."> Ajouter ce site"> Rechercher des favoris"> Afficher la barre de navigation"> Afficher le volet de navigation"> PK ɀ38&locale/fr-FR/memotoofirefox.propertiesloginpasswordempty=Erreur: le login et le mot de passe ne peuvent pas etre vide loginpassworderror=Erreur: Impossible de se connecter a Memotoo.com avec ce login et ce mot de passe uploadok=Mise a jour des favoris Memotoo.com -> OK downloadok=Mise a jour des favoris Firefox -> OK upload0bookmark=Mise a jour Memotoo.com impossible -> Il n'y a 0 favori dans ce dossier options1=Memotoo.com -> Options ...PK M3skin/PK 2Liskin/contents.rdf PK u3O?Bskin/default.csstextbox.noframe, textbox.noframe > .textbox-internal-box, textbox.noframe > .textarea-internal-box { background: transparent !important; border: none; padding: 0px; -moz-appearance: none; }PK M3k l{{skin/memotoo.pngPNG  IHDR DsBITOkPLTE̴ּܸ޵﫻ߙֵ֫ڒ裷ݝѤ֊煸랰ȡӶԓ̙{r–͇siląvd[TݽwySPIAI<ڭk>;تeb2(~/|ԭU$z'wvtHeIplmУAjcdf`\̙3Y"P$SMHKŕ"BM.<8)1 8 4 + EytRNSkf pHYs B4tEXtCreation Time08/24/05!tEXtSoftwareMacromedia Fireworks 4.0&'uIDATxO@*/nu(sRcbWh(lf]i\ޕ@$71s/='Xv1cYVFM4e[Fb |}'3p@9!wrK1.EhG!ʛ5Qpn3 Om\O@>;{${u`QHM:Ok2PȮ5@7FLAQvQ 9ڑ#]q h8'׽ ׻ DuPQJQ ˪ҊJSVꊴ4J4.–?>}9|9|rCwiF9xr3o+!,Љčx)wb-s"/>9o6Vl?+a[4?%Vsc[à1R {, do:oHIENDB`PK X3content/PK S3t( &content/bmsyncNetworkService.jsPK 3\ dcontent/bookmarks.jsPK es3cN   content/browse.xulPK 2 content/contents.rdfPK wQ3_6 "content/download.xulPK k3xu"" %content/functions.jsPK \3@Ӌnn Hcontent/MemotooFirefox.jsPK [3$.<" tecontent/MemotooFirefoxBookmarks.jsPK vo3) ~content/memotoofirefoxOverlay.jsPK n3''! content/memotoofirefoxOverlay.xulPK r~3M# ! content/MemotooFirefoxSettings.jsPK Lq3[py77 content/options.jsPK t3Z Z  kcontent/options.xulPK p_3F content/upload.xulPK M3locale/PK fD3 ۸locale/en-US/PK %q3ll locale/en-US/contents.rdfPK r3a locale/en-US/memotoofirefox.dtdPK fD3~Xss& locale/en-US/memotoofirefox.propertiesPK fD3 Dlocale/fr-FR/PK 2Yll olocale/fr-FR/contents.rdfPK r3d locale/fr-FR/memotoofirefox.dtdPK ɀ38& locale/fr-FR/memotoofirefox.propertiesPK M3skin/PK 2Li skin/contents.rdfPK u3O?B skin/default.cssPK M3k l{{ skin/memotoo.pngPKx<PK 3 defaults/PK 3_O33 install.rdf {f2f498ff-5352-b59c-4b2e-8146e085eaab} Memotoo.com extension for Firefox 0.2 Synchronize yours bookmarks between Firefox and Memotoo.com Thomas Pequet http://www.memotoo.com/ http://memotoofirefox.mozdev.org/update.rdf chrome://memotoofirefox/skin/memotoo.png chrome://memotoofirefox/content/options.xul content/ locale/fr-FR/ locale/en-US/ skin/ {ec8030f7-c20a-464f-9b0e-13a3a9e97384} 1.0 1.0 PK 3chrome/PK 3& %chrome/memotoofirefox.jarPK 3 &defaults/PK 3_O33 Minstall.rdfPK