Last active
August 29, 2015 13:56
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
README
Rev4