You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
8.2 KiB
246 lines
8.2 KiB
DELETE_STRING="delete";
|
|
BAR_IMG1="/env/grafics/green-block.png";
|
|
BAR_IMG2="/env/grafics/red-block.png";
|
|
WORDCACHEBAR_LENGTH=1/4;
|
|
|
|
|
|
var statusRPC;
|
|
var queuesRPC;
|
|
var refreshInterval=5;
|
|
var wait=0;
|
|
var changing=false; //change the interval
|
|
var statusLoaded=true;
|
|
var queueLoaded=true;
|
|
|
|
function initCrawler(){
|
|
refresh();
|
|
//loadInterval=window.setInterval("refresh()", refreshInterval*1000);
|
|
countInterval=window.setInterval("countdown()", 1000);
|
|
}
|
|
|
|
function changeInterval(){
|
|
if(!changing){
|
|
window.clearInterval(countInterval);
|
|
counter=document.getElementById("nextUpdate");
|
|
//counter.innerHTML='<input type="text" id="newInterval" onblur="newInterval()" size="2" />';
|
|
//document.getElementById("newInterval").focus();
|
|
counter.value=refreshInterval;
|
|
changing=true;
|
|
}
|
|
}
|
|
function newInterval(){
|
|
refreshInterval=document.getElementById("nextUpdate").value;
|
|
refresh();
|
|
countInterval=window.setInterval("countdown()", 1000);
|
|
changing=false;
|
|
}
|
|
function countdown(){
|
|
if(statusLoaded && queueLoaded){
|
|
document.getElementById("nextUpdate").value=wait;
|
|
wait--;
|
|
if(wait==0){
|
|
refresh();
|
|
}
|
|
}
|
|
}
|
|
function refresh(){
|
|
wait=refreshInterval;
|
|
statusLoaded=false;
|
|
queueLoaded=false;
|
|
requestStatus();
|
|
requestQueues();
|
|
}
|
|
|
|
function requestStatus(){
|
|
statusRPC=createRequestObject();
|
|
statusRPC.open('get', '/api/status_p.xml?html=');
|
|
statusRPC.onreadystatechange = handleStatus;
|
|
statusRPC.send(null);
|
|
}
|
|
function requestQueues(){
|
|
queuesRPC=createRequestObject();
|
|
queuesRPC.open('get', '/api/queues_p.xml?html=');
|
|
queuesRPC.onreadystatechange = handleQueues;
|
|
queuesRPC.send(null);
|
|
|
|
}
|
|
|
|
function handleStatus(){
|
|
if(statusRPC.readyState != 4){
|
|
return;
|
|
}
|
|
var statusResponse = statusRPC.responseXML;
|
|
statusTag=getFirstChild(statusResponse, "status");
|
|
|
|
ppm=getValue(getFirstChild(statusTag, "ppm"));
|
|
|
|
var ppmNum = document.getElementById("ppmNum");
|
|
removeAllChildren(ppmNum);
|
|
ppmNum.appendChild(document.createTextNode(ppm));
|
|
|
|
var ppmSpan = document.getElementById("ppmSpan");
|
|
removeAllChildren(ppmSpan);
|
|
for(i = 0; i < ppm / 10; i++){
|
|
img=document.createElement("img");
|
|
img.setAttribute("src", BAR_IMG1);
|
|
ppmSpan.appendChild(img);
|
|
}
|
|
|
|
// traffic output (no bar up to now)
|
|
traffic = getFirstChild(statusTag, "traffic");
|
|
trafficCrawlerValue = getValue(getFirstChild(traffic, "crawler"));
|
|
trafCrawlerSpan = document.getElementById("trafficCrawler");
|
|
removeAllChildren(trafCrawlerSpan);
|
|
trafCrawlerSpan.appendChild(document.createTextNode(Math.round((trafficCrawlerValue) / 1024 / 10.24) / 100));
|
|
|
|
var wordCacheSize=getValue(getFirstChild(statusTag, "wordCacheSize"));
|
|
var wordCacheMaxSize=getValue(getFirstChild(statusTag, "wordCacheMaxSize"));
|
|
|
|
wordCacheNum=document.getElementById("wordcacheNum");
|
|
removeAllChildren(wordCacheNum);
|
|
wordCacheNum.appendChild(document.createTextNode(wordCacheSize+"/"+wordCacheMaxSize));
|
|
|
|
wordCacheSpan=document.getElementById("wordcacheSpan");
|
|
removeAllChildren(wordCacheSpan);
|
|
var img;
|
|
var percent=Math.round(wordCacheSize/wordCacheMaxSize*100);
|
|
for(i=0;i<percent*WORDCACHEBAR_LENGTH;i++){
|
|
img=document.createElement("img");
|
|
img.setAttribute("src", BAR_IMG2);
|
|
wordCacheSpan.appendChild(img);
|
|
}
|
|
for(i=0;i<(100-percent)*WORDCACHEBAR_LENGTH;i++){
|
|
img=document.createElement("img");
|
|
img.setAttribute("src", BAR_IMG1);
|
|
wordCacheSpan.appendChild(img);
|
|
}
|
|
statusLoaded=true;
|
|
}
|
|
|
|
function handleQueues(){
|
|
if(queuesRPC.readyState != 4){
|
|
return;
|
|
}
|
|
var queuesResponse = queuesRPC.responseXML;
|
|
//xml=getFirstChild(queuesResponse);
|
|
xml=getFirstChild(queuesResponse, "queues");
|
|
if(queuesResponse != null){
|
|
clearTable(document.getElementById("queueTable"), 1);
|
|
|
|
dbsize=getFirstChild(xml, "dbsize");
|
|
urlpublictextSize=getValue(getFirstChild(dbsize, "urlpublictext"));
|
|
rwipublictextSize=getValue(getFirstChild(dbsize, "rwipublictext"));
|
|
document.getElementById("urldbsize").firstChild.nodeValue=urlpublictextSize;
|
|
document.getElementById("rwidbsize").firstChild.nodeValue=rwipublictextSize;
|
|
|
|
loaderqueue=getFirstChild(xml, "loaderqueue");
|
|
updateTable(loaderqueue, "loader");
|
|
|
|
loaderqueue_size=getValue(getFirstChild(loaderqueue, "size"));
|
|
loaderqueue_max=getValue(getFirstChild(loaderqueue, "max"));
|
|
document.getElementById("loaderqueuesize").firstChild.nodeValue=loaderqueue_size;
|
|
document.getElementById("loaderqueuemax").firstChild.nodeValue=loaderqueue_max;
|
|
|
|
localcrawlerqueue=getFirstChild(xml, "localcrawlerqueue");
|
|
localcrawlerqueue_size=getValue(getFirstChild(localcrawlerqueue, "size"));
|
|
localcrawlerqueue_state=getValue(getFirstChild(localcrawlerqueue, "state"));
|
|
document.getElementById("localcrawlerqueuesize").firstChild.nodeValue=localcrawlerqueue_size;
|
|
putQueueState("localcrawler", localcrawlerqueue_state);
|
|
|
|
updateTable(localcrawlerqueue, "local crawler");
|
|
|
|
limitcrawlerqueue=getFirstChild(xml, "limitcrawlerqueue");
|
|
updateTable(limitcrawlerqueue, "limitCrawlerTable");
|
|
limitcrawlerqueue_size=getValue(getFirstChild(limitcrawlerqueue, "size"));
|
|
limitcrawlerqueue_state=getValue(getFirstChild(limitcrawlerqueue, "state"));
|
|
document.getElementById("limitcrawlerqueuesize").firstChild.nodeValue=limitcrawlerqueue_size;
|
|
putQueueState("limitcrawler", limitcrawlerqueue_state);
|
|
updateTable(limitcrawlerqueue, "limit crawler");
|
|
|
|
remotecrawlerqueue=getFirstChild(xml, "remotecrawlerqueue");
|
|
updateTable(remotecrawlerqueue, "remoteCrawlerTable");
|
|
remotecrawlerqueue_size=getValue(getFirstChild(remotecrawlerqueue, "size"));
|
|
remotecrawlerqueue_state=getValue(getFirstChild(remotecrawlerqueue, "state"));
|
|
document.getElementById("remotecrawlerqueuesize").firstChild.nodeValue=remotecrawlerqueue_size;
|
|
putQueueState("remotecrawler", remotecrawlerqueue_state);
|
|
updateTable(remotecrawlerqueue, "remote crawler");
|
|
}
|
|
queueLoaded=true;
|
|
}
|
|
|
|
function putQueueState(queue, state) {
|
|
a = document.getElementById(queue + "stateA");
|
|
img = document.getElementById(queue + "stateIMG");
|
|
if (state == "paused") {
|
|
a.href = "Crawler_p.html?continue=" + queue;
|
|
a.title = "Continue this queue";
|
|
img.src = "/env/grafics/start.gif";
|
|
img.alt = "Continue this queue";
|
|
} else {
|
|
a.href = "Crawler_p.html?pause=" + queue;
|
|
a.title = "Pause this queue";
|
|
img.src = "/env/grafics/stop.gif";
|
|
img.alt = "Pause this queue";
|
|
}
|
|
}
|
|
|
|
function updateTable(indexingqueue, tablename){
|
|
indexingTable=document.getElementById("queueTable");
|
|
entries=indexingqueue.getElementsByTagName("entry");
|
|
|
|
dark=false;
|
|
for(i=0;i<entries.length;i++){
|
|
profile=getValue(getFirstChild(entries[i], "profile"));
|
|
initiator=getValue(getFirstChild(entries[i], "initiator"));
|
|
depth=getValue(getFirstChild(entries[i], "depth"));
|
|
modified=getValue(getFirstChild(entries[i], "modified"));
|
|
anchor=getValue(getFirstChild(entries[i], "anchor"));
|
|
url=getValue(getFirstChild(entries[i], "url"));
|
|
size=getValue(getFirstChild(entries[i], "size"));
|
|
hash=getValue(getFirstChild(entries[i], "hash"));
|
|
inProcess=false;
|
|
if(getValue(getFirstChild(entries[i], "inProcess"))=="true"){
|
|
inProcess=true;
|
|
}
|
|
if (tablename=="indexingTable")
|
|
deletebutton=createLinkCol("IndexCreateIndexingQueue_p.html?deleteEntry="+hash, DELETE_STRING);
|
|
else
|
|
deletebutton=createCol("");
|
|
row=createIndexingRow(tablename, profile, initiator, depth, modified, anchor, url, size, deletebutton);
|
|
|
|
//create row
|
|
if(inProcess){
|
|
row.setAttribute("class", "TableCellActive");
|
|
}else if(dark){
|
|
row.setAttribute("class", "TableCellDark");
|
|
}else{
|
|
row.setAttribute("class", "TableCellLight");
|
|
}
|
|
getFirstChild(indexingTable, "tbody").appendChild(row);
|
|
dark=!dark;
|
|
}
|
|
}
|
|
|
|
function shortenURL(url) {
|
|
if (url.length > 80) {
|
|
return url.substr(0, 80) + "...";
|
|
} else {
|
|
return url;
|
|
}
|
|
}
|
|
|
|
function createIndexingRow(queue, profile, initiator, depth, modified, anchor, url, size, deletebutton){
|
|
row=document.createElement("tr");
|
|
row.setAttribute("height", 10);
|
|
row.appendChild(createCol(queue));
|
|
row.appendChild(createCol(profile));
|
|
row.appendChild(createCol(initiator));
|
|
row.appendChild(createCol(depth));
|
|
row.appendChild(createCol(modified));
|
|
row.appendChild(createCol(anchor));
|
|
row.appendChild(createLinkCol(url, shortenURL(url)));
|
|
row.appendChild(createCol(size));
|
|
row.appendChild(deletebutton);
|
|
return row;
|
|
}
|