Skip to content

Instantly share code, notes, and snippets.

@Noitidart
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Noitidart/9096743 to your computer and use it in GitHub Desktop.
Save Noitidart/9096743 to your computer and use it in GitHub Desktop.
_firefox-addon-snippet-HTTWPWrapperEXAMPLES - examples of usage of https://gist.github.com/Noitidart/9088113
var labelHTTP = 'loadPreLike - loadingPreLike of el0 in like arr';
HTTP('GET',referer,{
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('SUCCESS loaded PreLikePage ' + referer + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
httpDelayTimerCookie = function() { loadLikeNew(tag, nextPage); };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(1, 1), Ci.nsITimer.TYPE_ONE_SHOT);
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('FAILED loading PreLikePage ' + referer + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
}
});
/**********************************************/
var labelHTTP = 'loadLikeNew - liking el0 in like arr';
var referer = idsToLike[0].link.replace('http://instagr.am', 'http://instagram.com');
referer = referer.substr(0,referer.length-1);
Cu.reportError('use referer:"' + referer + '"')
HTTP('POST','http://instagram.com/web/likes/' + idsToLike[0].id + '/like/',{
contentType: 'application/x-www-form-urlencoded',
body: '',
headers: {
'Accept': '*/*',
'X-Instagram-AJAX': 1,
'X-CSRFToken': settings.csrfmiddlewaretoken.value,
'X-Requested-With': 'XMLHttpRequest',
'Referer': referer
},
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
Cu.reportError('excecuting loadLikeNew2 right away, as is done on site by normal human interaction');
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('SUCCESS loaded loadLikeNew ' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
loadLikeNew2(tag, nextPage);
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('FAILED loading loadLikeNew' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
if (responseText == 'Rate limit exceeded') {
var newPause = getPause(55, 65);
Cu.reportError('EXCEPTION: rate limit exceeded!! will increase min and max pause settings by 1second and will retry liking in ' + newPause + 's');
settings.minWait.value++;
settings.maxWait.value++;
Cu.reportError('INFO: new min wait = ' + settings.minWait.value);
Cu.reportError('INFO: new max wait = ' + settings.maxWait.value);
httpDelayTimerCookie = function() { loadLikeNew(tag, nextPage); };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, newPause, Ci.nsITimer.TYPE_ONE_SHOT);
}
}
});
/***********************************************************************************************/
var labelHTTP = 'loadLikeNew2 - liking el0 in like arr';
var referer = idsToLike[0].link.replace('http://instagr.am', 'http://instagram.com');
referer = referer.substr(0,referer.length-1);
var shortcode = referer.substr(referer.lastIndexOf('/')+1);
Cu.reportError('use referer:"' + referer + '"')
Cu.reportError('use shortcode:"' + shortcode + '"')
HTTP('POST','http://instagram.com/query/',{
contentType: 'application/x-www-form-urlencoded',
body: 'q=ig_shortcode(' + shortcode + ')+%7B+id%2C+code%2C+owner+%7B+id%2C+username%2C+profile_pic_url%2C+followed_by_viewer%2C+requested_by_viewer+%7D%2Cis_video%2C+video_url%2C+date%2C+display_src%2C+location+%7B+name+%7D%2C+caption%2C+likes+%7B+count%2C+viewer_has_liked%2C+nodes+%7B+user+%7B+username%2C+profile_pic_url+%7D+%7D+%7D%2C+comments.last(20)+%7B+nodes+%7B+id%2C+user+%7B+username%2C+profile_pic_url+%7D%2C+text%2C+viewer_can_delete+%7D%7D%7D',
headers: {
'Accept': 'application/json, text/javascript, */*; q=0.01',
'X-Instagram-AJAX': 1,
'X-CSRFToken': settings.csrfmiddlewaretoken.value,
'X-Requested-With': 'XMLHttpRequest',
'Referer': referer
},
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('SUCCESS loaded loadLikeNew2' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
var response = JSON.parse(responseText);
if (!response.status) {
Cu.reportError('ERROR: ' + labelHTTP + 'reponse status is not there:');
return;
}
if (response.status != 'ok') {
Cu.reportError('ERROR: ' + labelHTTP + 'reponse status does not equal "ok" but it = "' + response.status + '"');
return;
}
delete imgsOfIds[idsToLike[0].id];
idsToLike.splice(0,1);
var win = wm.getMostRecentWindow('navigator:browser');
//Cu.reportError(win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab'))
if (win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab') == 'true') {
//write contents
var html = [];
for (var i=0; i<idsToLike.length; i++) {
html.push('<img src="' + imgsOfIds[idsToLike[i].id].low_resolution.url + '">');
}
win.gBrowser.contentDocument.body.innerHTML = html.join('<br>');
}
if (onPostLike) {
httpDelayTimerCookie = function() { onPostLike(tag, nextPage); };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(), Ci.nsITimer.TYPE_ONE_SHOT);
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('FAILED loading loadLikeNew2' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
}
});
/**************************************************************/
var labelHTTP = 'loadLike - liking el0 in like arr';
HTTP('POST','https://api.instagram.com/v1/media/' + idsToLike[0].id + '/likes',{
contentType: 'application/x-www-form-urlencoded',
body: 'access_token=' + settings.token.value,
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onSuccess: function(status, responseXML, responseText, headers, statusText) {
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('SUCCESS loaded loadLike' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
delete imgsOfIds[idsToLike[0].id];
idsToLike.splice(0,1);
var win = wm.getMostRecentWindow('navigator:browser');
//Cu.reportError(win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab'))
if (win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab') == 'true') {
//write contents
var html = [];
for (var i=0; i<idsToLike.length; i++) {
html.push('<img src="' + imgsOfIds[idsToLike[i].id].low_resolution.url + '">');
}
win.gBrowser.contentDocument.body.innerHTML = html.join('<br>');
}
if (onPostLike) {
httpDelayTimerCookie = function() { onPostLike(tag, nextPage); };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(), Ci.nsITimer.TYPE_ONE_SHOT);
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('FAILED loading loadLikeNew2' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
if (statusText == 'BAD REQUEST') {
var response = JSON.parse(responseText);
if (response.meta && response.meta.error_message && response.meta.error_message == 'Client request limit reached') {
var newPause = getPause(55, 65);
Cu.reportError('EXCEPTION: Client request limit reached retry liking in ' + newPause + 's');
httpDelayTimerCookie = function() { loadLike(tag, nextPage); };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, newPause, Ci.nsITimer.TYPE_ONE_SHOT);
}
}
}
});
/**********************************************************************/
var labelHTTP = 'loadSearch - searches by tag';
if (nextPage) {
Cu.reportError('in loadSearch - loading next page:' + nextPage);
var url = nextPage;
} else {
if (!tag) {
Cu.reportError('tag is undefined = ' + tag);
}
var url = 'https://api.instagram.com/v1//tags/' + tag + '/media/recent?access_token=' + settings.token.value
}
HTTP('GET',url,{ //switched from client_id to access_token cuz want to test if it has user already liked in here
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('SUCCESS loaded loadSearch' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
//httpDelayTimerCookie = load2;
//httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(), Ci.nsITimer.TYPE_ONE_SHOT);
var response = JSON.parse(responseText);
if (response.data.length == 0) {
nsiPromptService.alert(null, "InstaLike - Error", 'No results found for search term "' + tag + '"');
if (onPostSearch) { onPostSearch = null; }
return;
}
idsToLike = [];
imgsOfIds = {};
for (var i=0; i<response.data.length; i++) {
if (!response.data[i].user_has_liked) {
idsToLike.push({id:response.data[i].id,link:response.data[i].link});
imgsOfIds[response.data[i].id] = eval(uneval(response.data[i].images));
}
}
if (idsToLike.length == 0) {
if (!response.pagination.next_url) {
nsiPromptService.alert(null, "InstaLike - Exception", 'All results found for search term "' + tag + '" are already liked by currently logged in user AND there are no more pages');
if (onPostSearch) { onPostSearch = null; }
return;
} else {
Cu.reportError('InstaLike - Exception - All results found on this page for search term "' + tag + '" are already liked by currently logged in user BUT there are more pages so going to next page right now');
httpDelayTimerCookie = function() {
loadSearch(tag, response.pagination.next_url)
};
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
return;
}
}
var win = wm.getMostRecentWindow('navigator:browser');
//Cu.reportError(win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab'))
if (win.gBrowser.selectedTab.getAttribute('instaLikeLiveTab') == 'true') {
//write contents
var html = [];
for (var i=0; i<idsToLike.length; i++) {
html.push('<img src="' + imgsOfIds[idsToLike[i].id].low_resolution.url + '">');
}
win.gBrowser.contentDocument.body.innerHTML = html.join('<br>');
}
Cu.reportError('at onPostSearch = ' + uneval(onPostSearch));
//var promptCheck = {value: false};
//var promptInput = {value: responseText};
//var promptResult = nsiPromptService.prompt(null, 'InstaLike - Search & Like', "Enter search term/tag: ", promptInput, null, promptCheck);
if (onPostSearch) {
if (response.pagination.next_url) {
nextPage = response.pagination.next_url;
} else {
nextPage = null;
}
httpDelayTimerCookie = function() { onPostSearch(tag, nextPage) };
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(), Ci.nsITimer.TYPE_ONE_SHOT);
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
var respDataStr = [];respDataStr.push('status:"' + status + '"');respDataStr.push('statusText:"' + statusText + '"');respDataStr.push('responseText:"' + responseText + '"');respDataStr.push('headers:"' + uneval(headers) + '"');respDataStr = respDataStr.join('<br><br>');
Logs.push('FAILED loading loadSearch' + '|' + new Date().toLocaleString().replace(/^.*?, /m,'') + '|' + respDataStr);
}
});
/*******************************************************************************/
var labelHTTP = 'load1 - loads login page';
HTTP('GET','https://instagram.com/oauth/authorize/?client_id=aef239dfe18f4e63ad77c98c44700812&redirect_uri=http://instalike.comyr.com&response_type=token&scope=likes',{
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onOpened: function(requester) {
requester.channel.QueryInterface(Ci.nsIHttpChannel).redirectionLimit = 0;
},
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
if (statusText == 'FOUND') {
if (!headers.Location) {
Cu.reportError('ERROR: ' + labelHTTP + ' - pre-redir but no Location header');
return;
}
if (headers.Location.indexOf('https://instagram.com/accounts/login/?next=/oauth/authorize/%3Fclient_id%3Daef239dfe18f4e63ad77c98c44700812%26redirect_uri%3Dhttp%3A//instalike.comyr.com%26response_type%3Dtoken%26scope%3Dlikes') > -1) {
var setcookie = headers['Set-Cookie'].match(/csrftoken=([0-9a-z]+)/);
if (!setcookie) {
Cu.reportError('ERROR: ' + labelHTTP + ' - could not extract csrfmiddlewaretoken from setcookie');
return;
} else {
csrfmiddlewaretoken = setcookie[1];
settings.csrfmiddlewaretoken.value = setcookie[1];
Cu.reportError(uneval(csrfmiddlewaretoken));
httpDelayTimerCookie = load2;
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
}
} else {
var token = headers.Location.match(/#access_token=([0-9a-z\.]+)/);
if (!token) {
Cu.reportError('ERROR: ' + labelHTTP + ' - could not extract token from location');
return;
} else {
settings.token.value = token[1];
}
var setcookie = headers['Set-Cookie'].match(/csrftoken=([0-9a-z]+)/);
if (!setcookie) {
Cu.reportError('ERROR: ' + labelHTTP + ' - could not extract csrfmiddlewaretoken from setcookie');
return;
} else {
csrfmiddlewaretoken = setcookie[1];
settings.csrfmiddlewaretoken.value = setcookie[1];
Cu.reportError(uneval(csrfmiddlewaretoken));
}
Cu.reportError('LOGIN COMPLETED SUCCESFULLY access_token = "' + settings.token.value + '" AND csrftoken = "' + settings.csrfmiddlewaretoken.value + '"')
if (onLoginSuccess) {
httpDelayTimerCookie = onLoginSuccess;
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
}
}
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
}
});
/***********************************************************************/
var labelHTTP = 'load2 - sending username and password';
HTTP('POST','https://instagram.com/accounts/login/?next=/oauth/authorize/%3Fclient_id%3Daef239dfe18f4e63ad77c98c44700812%26redirect_uri%3Dhttp%3A//instalike.comyr.com%26response_type%3Dtoken%26scope%3Dlikes',{
contentType: 'application/x-www-form-urlencoded',
body: 'csrfmiddlewaretoken=' + csrfmiddlewaretoken + '&username=' + settings.un.value + '&password=' + settings.pw.value,
headers: {Referer: 'https://instagram.com/accounts/login/?next=/oauth/authorize/%3Fclient_id%3Daef239dfe18f4e63ad77c98c44700812%26redirect_uri%3Dhttp%3A//instalike.comyr.com%26response_type%3Dtoken%26scope%3Dlikes'},
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onOpened: function(requester) {
requester.channel.QueryInterface(Ci.nsIHttpChannel).redirectionLimit = 1;
},
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
//test here if it needs authorization, or if it already is authorized
if (statusText == 'OK') {//status == 200
//it landed on authorization page
if (/Authorization Request/i.test(responseText)) {
//yes verified its on authorization request page
httpDelayTimerCookie = load3;
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
} else {
Cu.reportError('ERROR: ' + labelHTTP + ' - did not redirect so SHOULD be on authorization request page but checked html and it is NOT so error out');
return;
}
} else if (statusText == 'FOUND') { //status == 0
if (!headers.Location) {
Cu.reportError('ERROR: ' + labelHTTP + ' - pre-redir but no Location header');
return;
}
var token = headers.Location.match(/#access_token=([0-9a-z\.]+)/);
if (!token) {
Cu.reportError('ERROR: ' + labelHTTP + ' - could not extract token from location');
return;
} else {
settings.token.value = token[1];
}
Cu.reportError('LOGIN COMPLETED SUCCESFULLY access_token = ' + settings.token.value)
if (onLoginSuccess) {
httpDelayTimerCookie = onLoginSuccess;
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
}
} else {
Cu.reportError('ERROR: ' + labelHTTP + ' - not pre-rdired, we must get a pre-redir as thats where access_token is');
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
}
});
/*******************************************************************************************/
var labelHTTP = 'load3 - granting authorization';
HTTP('POST','https://instagram.com/oauth/authorize/?client_id=aef239dfe18f4e63ad77c98c44700812&redirect_uri=http://instalike.comyr.com&response_type=token&scope=likes',{
contentType: 'application/x-www-form-urlencoded',
body: 'csrfmiddlewaretoken=' + csrfmiddlewaretoken + '&allow=Authorize',
headers: {Referer: 'https://instagram.com/oauth/authorize/?client_id=aef239dfe18f4e63ad77c98c44700812&redirect_uri=http://instalike.comyr.com&response_type=token&scope=likes'},
returnHeaders: true,
/*timeout: 30000,
onTimeout: function() {
Cu.reportError('TIMEOUT: ' + labelHTTP);
},*/
onOpened: function(requester) {
requester.channel.QueryInterface(Ci.nsIHttpChannel).redirectionLimit = 0;
},
onSuccess: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('SUCCESS: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
if (statusText == 'FOUND') { //status == 0
if (!headers.Location) {
Cu.reportError('ERROR: ' + labelHTTP + ' - pre-redir but no Location header');
return;
}
var token = headers.Location.match(/#access_token=([0-9a-z\.]+)/);
if (!token) {
Cu.reportError('ERROR: ' + labelHTTP + ' - could not extract token from location');
return;
} else {
settings.token.value = token[1];
}
Cu.reportError('LOGIN COMPLETED SUCCESFULLY access_token = ' + settings.token.value)
if (onLoginSuccess) {
httpDelayTimerCookie = onLoginSuccess;
httpDelayTimer.initWithCallback(httpDelayTimerEvent, getPause(3, 5), Ci.nsITimer.TYPE_ONE_SHOT);
}
} else {
Cu.reportError('ERROR: ' + labelHTTP + ' - not pre-rdired, we must get a pre-redir as thats where access_token is');
}
},
onFailure: function(status, responseXML, responseText, headers, statusText) {
Cu.reportError('FAIL: ' + labelHTTP + '\n\nstatusText:' + statusText + '\nstatus:' + status + '\nresponseText:' + responseText + '\nheaders:' + uneval(headers));
}
});
@Noitidart
Copy link
Author

README

Rev4

  • Renamed file and description, classified as -firefox-addon-snippet-

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment