User:Eleanorg/Thematic1.1/traceroute plugin v1: Difference between revisions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Get the plugin here: | |||
http://pzwart3.wdka.hro.nl/~egreenhalgh/traceroutePlugin.crx | |||
==contentscript.js== | ==contentscript.js== | ||
Pages initially load at fully opacity, and fade out to their appropriate level when the traceroute has completed. | |||
<source lang=javascript> | <source lang=javascript> | ||
// make xhr request to traceroute counting script; return hop count converted to a float | |||
// thanks to Jonas for ajax syntactic sugar | |||
function getTraceRouteCount(callback) { | |||
var currentUrl = window.location.host; | |||
var xhr = new XMLHttpRequest(); | |||
xhr.onreadystatechange = function(data) { | |||
if (xhr.readyState == 4) { | |||
if (xhr.status == 200) { | |||
var data = xhr.responseText; | |||
callback(data); | |||
} else { | |||
callback(null); | |||
} | |||
} | |||
} | |||
var url = "http://pzwart3.wdka.hro.nl/~egreenhalgh/cgi-bin/hopsToPercent2.py?url="+ currentUrl; | |||
xhr.open('GET', url, true); | |||
xhr.send(); | |||
}; | |||
// | // begin to fade out the page | ||
waitUntilExists(document,function(){ | |||
$("body").fadeTo(9000, 0.7); | |||
}); | |||
// | // when xhr request returns data, stop page fade and set to appropriate opacity | ||
function opacityFade(data) { | |||
if(data) { | |||
$("body").stop().fadeTo(2000, data); | |||
//console.log(data); | |||
} | } | ||
}); | } | ||
getTraceRouteCount(opacityFade); | |||
</source> | </source> | ||
Line 31: | Line 56: | ||
"default_icon": "icon.png" | "default_icon": "icon.png" | ||
}, | }, | ||
"permissions": [ | "permissions": ["http://*/"], | ||
"content_scripts": [ | "content_scripts": [ | ||
{ | { | ||
"matches": ["*://*/*"], | "matches": ["*://*/*"], | ||
"js": ["jquery.js", " | "js": ["jquery.js", "waituntilexists.js", "contentscript4.js"], | ||
"run_at": "document_end" | "run_at": "document_end" | ||
} | } | ||
Line 44: | Line 69: | ||
==hopsToPercent2.py== | ==hopsToPercent2.py== | ||
Lives on the PZI server | Lives on the PZI server. | ||
<source lang=python> | <source lang=python> | ||
#!/usr/bin/python | #!/usr/bin/python | ||
#-*- coding:utf-8 -*- | #-*- coding:utf-8 -*- | ||
print "Content-type: text/html\n" | |||
import os | import os, cgi, cgitb | ||
cgitb.enable() | |||
###---------- GET | ###---------- GET NO. OF HOPS-------------- | ||
form = cgi.FieldStorage() | form = cgi.FieldStorage() | ||
url = form["url"].value # dynamic url grabbed from the plugin's javascript | |||
command = "traceroute " + url + " | wc -l" # concatenates your site variable inside command to be sent to system | |||
command = "traceroute " + | |||
traceroute = os.popen(command,'r') # popen function opens system command with argument 'r' for 'read' | traceroute = os.popen(command,'r') # popen function opens system command with argument 'r' for 'read' | ||
hopcount = float(traceroute.read()) - | hopcount = float(traceroute.read()) - 2 | ||
Line 68: | Line 91: | ||
def makePercent(): | def makePercent(): | ||
percent = hopcount / | percent = 1 - (hopcount / 31) | ||
return(percent) | return(percent) | ||
print makePercent() | |||
</source> | </source> |
Latest revision as of 10:11, 15 December 2011
Get the plugin here: http://pzwart3.wdka.hro.nl/~egreenhalgh/traceroutePlugin.crx
contentscript.js
Pages initially load at fully opacity, and fade out to their appropriate level when the traceroute has completed.
// make xhr request to traceroute counting script; return hop count converted to a float
// thanks to Jonas for ajax syntactic sugar
function getTraceRouteCount(callback) {
var currentUrl = window.location.host;
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(data) {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var data = xhr.responseText;
callback(data);
} else {
callback(null);
}
}
}
var url = "http://pzwart3.wdka.hro.nl/~egreenhalgh/cgi-bin/hopsToPercent2.py?url="+ currentUrl;
xhr.open('GET', url, true);
xhr.send();
};
// begin to fade out the page
waitUntilExists(document,function(){
$("body").fadeTo(9000, 0.7);
});
// when xhr request returns data, stop page fade and set to appropriate opacity
function opacityFade(data) {
if(data) {
$("body").stop().fadeTo(2000, data);
//console.log(data);
}
}
getTraceRouteCount(opacityFade);
manifest.json
Gives extension permission to use python script on PZI server.
{
"name": "traceroute1",
"version": "1.0",
"description": "changes the opacity of web pages",
"browser_action": {
"default_icon": "icon.png"
},
"permissions": ["http://*/"],
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["jquery.js", "waituntilexists.js", "contentscript4.js"],
"run_at": "document_end"
}
]
}
hopsToPercent2.py
Lives on the PZI server.
#!/usr/bin/python
#-*- coding:utf-8 -*-
print "Content-type: text/html\n"
import os, cgi, cgitb
cgitb.enable()
###---------- GET NO. OF HOPS--------------
form = cgi.FieldStorage()
url = form["url"].value # dynamic url grabbed from the plugin's javascript
command = "traceroute " + url + " | wc -l" # concatenates your site variable inside command to be sent to system
traceroute = os.popen(command,'r') # popen function opens system command with argument 'r' for 'read'
hopcount = float(traceroute.read()) - 2
###--------- CONVERT TO %------------------
def makePercent():
percent = 1 - (hopcount / 31)
return(percent)
print makePercent()