[Bbs2ch-cvs 270] [252] nsBbs2chService から b2rGlobalService への以降

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2007年 11月 8日 (木) 23:15:35 JST


Revision: 252
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=bbs2ch&view=rev&rev=252
Author:   flyson
Date:     2007-11-08 23:15:35 +0900 (Thu, 08 Nov 2007)

Log Message:
-----------
nsBbs2chService から b2rGlobalService への以降

Modified Paths:
--------------
    trunk/bbs2chreader/chrome/content/bbs2chreader/post/filter.js


-------------- next part --------------
Modified: trunk/bbs2chreader/chrome/content/bbs2chreader/post/filter.js
===================================================================
--- trunk/bbs2chreader/chrome/content/bbs2chreader/post/filter.js	2007-11-08 14:13:42 UTC (rev 251)
+++ trunk/bbs2chreader/chrome/content/bbs2chreader/post/filter.js	2007-11-08 14:15:35 UTC (rev 252)
@@ -1,148 +1,148 @@
-
-
-function b2rPostFilterManager(){
-	this._filters = new Array();
-}
-
-b2rPostFilterManager.prototype = {
-	get filters(){
-		return this._filters;
-	},
-
-	loadScripts: function(){
-		this._filters = new Array();
-		var fileExtensionTest = /\.xml$/i;
-
-		var bbs2chreaderID = "{0B9D558E-6983-486b-9AAD-B6CBCD2FC807}";
-		var extensionManager = Cc["@mozilla.org/extensions/manager;1"].getService(Ci.nsIExtensionManager);
-		var installLocation = extensionManager.getInstallLocation(bbs2chreaderID);
-		var postFiltersFolder = installLocation.getItemFile(bbs2chreaderID, "defaults/postFilters")
-				.clone().QueryInterface(Ci.nsILocalFile);
-		var entries = postFiltersFolder.directoryEntries.QueryInterface(Ci.nsIDirectoryEnumerator);
-		while(true){
-			var entry = entries.nextFile;
-			if(!entry) break;
-			if(!fileExtensionTest.test(entry.leafName)) continue;
-
-			var postFilter = this._createFilter(entry);
-			if(postFilter){
-				this._filters.push(postFilter);
-			}
-		}
-		entries.close();
-
-
-		var postFiltersProfileFolder = gBbs2chService.getDataDir();
-		postFiltersProfileFolder.appendRelativePath("postFilters");
-		if(!postFiltersProfileFolder.exists()){
-			postFiltersProfileFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0777);
-		}
-		var entries = postFiltersProfileFolder.directoryEntries.QueryInterface(Ci.nsIDirectoryEnumerator);
-		while(true){
-			var entry = entries.nextFile;
-			if(!entry) break;
-			if(!fileExtensionTest.test(entry.leafName)) continue;
-
-			var postFilter = this._createFilter(entry);
-			if(postFilter){
-				this._filters.push(postFilter);
-			}
-		}
-		entries.close();
-	},
-
-	_createFilter: function(aLocalFile){
-		var fileInputStream = Cc["@mozilla.org/network/file-input-stream;1"]
-				.createInstance(Ci.nsIFileInputStream);
-		fileInputStream.init(aLocalFile, 0x01, 0666, Ci.nsIFileInputStream.CLOSE_ON_EOF);
-		var parser = new DOMParser();
-		var doc = parser.parseFromStream(fileInputStream, null, aLocalFile.fileSize , "text/xml");
-		if(doc.firstChild.nodeName!="postFilter") return null;
-		doc.normalize();
-
-		var filter = {};
-		filter.title = this._getTextContent(doc, "title");
-		if(!filter.title) filter.title = aLocalFile.leafName.replace(/\.xml$/, "");
-		filter.description = this._getTextContent(doc, "description");
-		filter.version = this._getTextContent(doc, "version");
-		filter.script = this._getTextContent(doc, "script");
-		filter.scriptFile = aLocalFile;
-		filter.scriptDoc = doc;
-		if(!filter.script) return null;
-
-		return filter;
-	},
-
-	_getTextContent: function(aDoc, aTagName){
-		var nodes = aDoc.getElementsByTagName(aTagName);
-		if(nodes.length>0) return nodes[0].textContent;
-		return null;
-	},
-
-	execFilterScript: function(aPostFilter, aTextArea){
-		var safeWindow = new XPCNativeWrapper(window);
-		var sandbox = new Components.utils.Sandbox(safeWindow);
-		sandbox.PostFilter = new b2rPostFilterContext(aPostFilter, aTextArea);
-
-		sandbox.__proto__ = safeWindow;
-		try{
-			var stackLinenumber = Components.stack.lineNumber + 1;
-			Components.utils.evalInSandbox(aPostFilter.script, sandbox);
-		}catch(ex){
-			this.logErrorMessage(ex.message, aPostFilter.scriptFile.path, ex.lineNumber - stackLinenumber);
-			return aTextArea.value;
-		}
-		return sandbox.PostFilter.result;
-	},
-
-	logErrorMessage: function(aMessage, aSourceName, aLineNumber){
-		var consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
-		var scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
-		scriptError.init(aMessage, aSourceName, null, aLineNumber, null, null, null);
-		consoleService.logMessage(scriptError);
-	}
-
-}
-
-
-function b2rPostFilterContext(aPostFilter, aTextArea){
-	this._filter = aPostFilter;
-	this._textArea = aTextArea;
-	this._value = aTextArea.value;
-	this._result = aTextArea.value;
-}
-
-b2rPostFilterContext.prototype = {
-
-	get scriptFile(){
-		return this._filter.scriptFile;
-	},
-	get scriptDoc(){
-		return this._filter.scriptDoc;
-	},
-
-	get value(){
-		return this._value;
-	},
-
-	get result(){
-		return String(this._result);
-	},
-	set result(aValue){
-		return this._result = aValue;
-	},
-
-	get isSelection(){
-		return this._textArea.selectionStart != this._textArea.selectionEnd;
-	},
-
-	get selectionLeft(){
-		return this.value.substring(0, this._textArea.selectionStart);
-	},
-	get selection(){
-		return this.value.substring(this._textArea.selectionStart, this._textArea.selectionEnd);
-	},
-	get selectionRight(){
-		return this.value.substring(this._textArea.selectionEnd);
-	}
+
+
+function b2rPostFilterManager(){
+	this._filters = new Array();
+}
+
+b2rPostFilterManager.prototype = {
+	get filters(){
+		return this._filters;
+	},
+
+	loadScripts: function(){
+		this._filters = new Array();
+		var fileExtensionTest = /\.xml$/i;
+
+		var bbs2chreaderID = "{0B9D558E-6983-486b-9AAD-B6CBCD2FC807}";
+		var extensionManager = Cc["@mozilla.org/extensions/manager;1"].getService(Ci.nsIExtensionManager);
+		var installLocation = extensionManager.getInstallLocation(bbs2chreaderID);
+		var postFiltersFolder = installLocation.getItemFile(bbs2chreaderID, "defaults/postFilters")
+				.clone().QueryInterface(Ci.nsILocalFile);
+		var entries = postFiltersFolder.directoryEntries.QueryInterface(Ci.nsIDirectoryEnumerator);
+		while(true){
+			var entry = entries.nextFile;
+			if(!entry) break;
+			if(!fileExtensionTest.test(entry.leafName)) continue;
+
+			var postFilter = this._createFilter(entry);
+			if(postFilter){
+				this._filters.push(postFilter);
+			}
+		}
+		entries.close();
+
+		var b2rService = Cc["@bbs2ch.sourceforge.jp/b2r-global-service;1"].getService(Ci.b2rIGlobalService);
+		var postFiltersProfileFolder = b2rService.io.getDataDir();
+		postFiltersProfileFolder.appendRelativePath("postFilters");
+		if(!postFiltersProfileFolder.exists()){
+			postFiltersProfileFolder.create(Ci.nsIFile.DIRECTORY_TYPE, 0777);
+		}
+		var entries = postFiltersProfileFolder.directoryEntries.QueryInterface(Ci.nsIDirectoryEnumerator);
+		while(true){
+			var entry = entries.nextFile;
+			if(!entry) break;
+			if(!fileExtensionTest.test(entry.leafName)) continue;
+
+			var postFilter = this._createFilter(entry);
+			if(postFilter){
+				this._filters.push(postFilter);
+			}
+		}
+		entries.close();
+	},
+
+	_createFilter: function(aLocalFile){
+		var fileInputStream = Cc["@mozilla.org/network/file-input-stream;1"]
+				.createInstance(Ci.nsIFileInputStream);
+		fileInputStream.init(aLocalFile, 0x01, 0666, Ci.nsIFileInputStream.CLOSE_ON_EOF);
+		var parser = new DOMParser();
+		var doc = parser.parseFromStream(fileInputStream, null, aLocalFile.fileSize , "text/xml");
+		if(doc.firstChild.nodeName!="postFilter") return null;
+		doc.normalize();
+
+		var filter = {};
+		filter.title = this._getTextContent(doc, "title");
+		if(!filter.title) filter.title = aLocalFile.leafName.replace(/\.xml$/, "");
+		filter.description = this._getTextContent(doc, "description");
+		filter.version = this._getTextContent(doc, "version");
+		filter.script = this._getTextContent(doc, "script");
+		filter.scriptFile = aLocalFile;
+		filter.scriptDoc = doc;
+		if(!filter.script) return null;
+
+		return filter;
+	},
+
+	_getTextContent: function(aDoc, aTagName){
+		var nodes = aDoc.getElementsByTagName(aTagName);
+		if(nodes.length>0) return nodes[0].textContent;
+		return null;
+	},
+
+	execFilterScript: function(aPostFilter, aTextArea){
+		var safeWindow = new XPCNativeWrapper(window);
+		var sandbox = new Components.utils.Sandbox(safeWindow);
+		sandbox.PostFilter = new b2rPostFilterContext(aPostFilter, aTextArea);
+
+		sandbox.__proto__ = safeWindow;
+		try{
+			var stackLinenumber = Components.stack.lineNumber + 1;
+			Components.utils.evalInSandbox(aPostFilter.script, sandbox);
+		}catch(ex){
+			this.logErrorMessage(ex.message, aPostFilter.scriptFile.path, ex.lineNumber - stackLinenumber);
+			return aTextArea.value;
+		}
+		return sandbox.PostFilter.result;
+	},
+
+	logErrorMessage: function(aMessage, aSourceName, aLineNumber){
+		var consoleService = Cc["@mozilla.org/consoleservice;1"].getService(Ci.nsIConsoleService);
+		var scriptError = Cc["@mozilla.org/scripterror;1"].createInstance(Ci.nsIScriptError);
+		scriptError.init(aMessage, aSourceName, null, aLineNumber, null, null, null);
+		consoleService.logMessage(scriptError);
+	}
+
+}
+
+
+function b2rPostFilterContext(aPostFilter, aTextArea){
+	this._filter = aPostFilter;
+	this._textArea = aTextArea;
+	this._value = aTextArea.value;
+	this._result = aTextArea.value;
+}
+
+b2rPostFilterContext.prototype = {
+
+	get scriptFile(){
+		return this._filter.scriptFile;
+	},
+	get scriptDoc(){
+		return this._filter.scriptDoc;
+	},
+
+	get value(){
+		return this._value;
+	},
+
+	get result(){
+		return String(this._result);
+	},
+	set result(aValue){
+		return this._result = aValue;
+	},
+
+	get isSelection(){
+		return this._textArea.selectionStart != this._textArea.selectionEnd;
+	},
+
+	get selectionLeft(){
+		return this.value.substring(0, this._textArea.selectionStart);
+	},
+	get selection(){
+		return this.value.substring(this._textArea.selectionStart, this._textArea.selectionEnd);
+	},
+	get selectionRight(){
+		return this.value.substring(this._textArea.selectionEnd);
+	}
 };
\ No newline at end of file


bbs2ch-cvs メーリングリストの案内
Back to archive index