示例#1
0
				afterAuthorizeCallback : function(data){
					// after authorization get the data and store it in the "twitter" object in simple-storage
					ss.storage.twitter = {};
					ss.storage.twitter['apiKey'] = data.apiKey;
					ss.storage.twitter['secretKey'] = data.secretKey;
					ss.storage.twitter['requestToken'] = data.requestToken;
					ss.storage.twitter['accessToken'] = data.accessToken;
					ss.storage.twitter['requestTokenSecret'] = data.requestTokenSecret;
					ss.storage.twitter['accessTokenSecret'] = data.accessTokenSecret;
					ss.storage.twitter['pinCode'] = data.pinCode;
					ss.storage.twitter['userid'] = data.userid;
					ss.storage.twitter['screenname'] = data.screenname;
					ss.storage.twitter['refresh_first_time'] = true;
					//Default Settings
					ss.storage.twitter.settings = {};
					//ss.storage.twitter.settings[''] = ;
					
					// @LOG : Quota Usage = VALUE
					console.log("Quota Usage = " + ss.quotaUsage);
					
					// check for SSL if always enabled or not from settings
					Twitter.https(function(data){
						// if "HTTPS ONLY" is enabled
						if(data.always_use_https){
							ss.storage.twitter['https'] = "https://";
							// @LOG : HTTPS enabled
							console.log("HTTPS enabled");
						}else{
							ss.storage.twitter['https'] = "http://";
							// @LOG : HTTPS disabled
							console.log("HTTPS disabled");
						}
					});
				}
示例#2
0
exports.main = function(options) {
	 const 	ss = require("simple-storage"),
			data = require("self").data,
			{Cc,Ci,Cu} = require("chrome"),
			oAuth = require("oAuth").oAuth,	
			tbb = require("toolbarbutton"),
			Twitter = require("Twitter").Twitter,
			panels = require("panel"),
			tabs = require("tabs");
			
	//updating SSL staus everytime when the addon is being loaded
	if(ss.storage.twitter){
		Twitter.https(function(data){
			// if "HTTPS ONLY" is enabled
			if(data.always_use_https){
				ss.storage.twitter['https'] = "https://";
				// @LOG : HTTPS enabled
				console.log("HTTPS enabled");
			}else{
				ss.storage.twitter['https'] = "http://";
				// @LOG : HTTPS disabled
				console.log("HTTPS disabled");
			}
		});
		//latest since_id for uptodate requests
		ss.storage.since_id = {};
		
		ss.storage.hashtags = [];
		sql.execute("select hashtag from hashtags;",function(result,status){
		  for(var i=0;i<result.rows;i++){
		    for(var j=0;j<result.cols;j++){
				ss.storage.hashtags.push("#" + result.data[i][j]);
		    }
		  }
		});
		sql.execute("select mention from mentions;",function(result,status){
		  for(var i=0;i<result.rows;i++){
		    for(var j=0;j<result.cols;j++){
				ss.storage.hashtags.push("@" + result.data[i][j]);
		    }
		  }
		});
	}
	
	// insert the twitter Toolbar Button in the nav bar before the Home button with "TwitterPanel" associated
    // Create Twitter Toolbar Button
	let toolbarbutton = tbb.ToolbarButton({
		id: "twitter-toolbarbutton",
		label: "",
		alwaysShowLabel: true,
		title: "Twitter",
		image: data.url("twitter-icon.png"),
		onCommand: function () {
        // check if twitter oAuth data is stored locally 
    	if(!ss.storage.twitter){
			// if not stored => initialze the oAuth library to get data and store it in the simple-storage
			oAuth.init({
                tbb : toolbarbutton,
				loginUrl : "https://api.twitter.com/oauth/authorize",
				apiUrl : "https://api.twitter.com/",
				apiKey : "",
				secretKey : "",
				afterAuthorizeCallback : function(data){
					// after authorization get the data and store it in the "twitter" object in simple-storage
					ss.storage.twitter = {};
					ss.storage.twitter['apiKey'] = data.apiKey;
					ss.storage.twitter['secretKey'] = data.secretKey;
					ss.storage.twitter['requestToken'] = data.requestToken;
					ss.storage.twitter['accessToken'] = data.accessToken;
					ss.storage.twitter['requestTokenSecret'] = data.requestTokenSecret;
					ss.storage.twitter['accessTokenSecret'] = data.accessTokenSecret;
					ss.storage.twitter['pinCode'] = data.pinCode;
					ss.storage.twitter['userid'] = data.userid;
					ss.storage.twitter['screenname'] = data.screenname;
					ss.storage.twitter['refresh_first_time'] = true;
					//Default Settings
					ss.storage.twitter.settings = {};
					//ss.storage.twitter.settings[''] = ;
					
					// @LOG : Quota Usage = VALUE
					console.log("Quota Usage = " + ss.quotaUsage);
					
					// check for SSL if always enabled or not from settings
					Twitter.https(function(data){
						// if "HTTPS ONLY" is enabled
						if(data.always_use_https){
							ss.storage.twitter['https'] = "https://";
							// @LOG : HTTPS enabled
							console.log("HTTPS enabled");
						}else{
							ss.storage.twitter['https'] = "http://";
							// @LOG : HTTPS disabled
							console.log("HTTPS disabled");
						}
					});
				}
			});
		}
		if(ss.storage.twitter['refresh_first_time']){
			TwitterPanel.postMessage("postAllMessages");
			ss.storage.twitter['refresh_first_time'] = false;
		}
		}
	});
	toolbarbutton.moveTo({
		toolbarID: "nav-bar",
		forceMove: true
	});
    
	// setting userChrome.css to change label CSS in the toolbar button
    let sss = Cc["@mozilla.org/content/style-sheet-service;1"]
            .getService(Ci.nsIStyleSheetService);
    let ios = Cc["@mozilla.org/network/io-service;1"]
            .getService(Ci.nsIIOService);
    let chromeStylesheet = data.url("chrome.css");
    let chromeStylesheetUri = ios.newURI(chromeStylesheet, null, null);
    sss.loadAndRegisterSheet(chromeStylesheetUri, sss.AGENT_SHEET);
};