1
0
Fork 0
mirror of https://github.com/Oreolek/TrackMeNot-Chrome.git synced 2024-05-12 22:18:21 +03:00
trackmenot/option-script.js

267 lines
9 KiB
JavaScript

var tmn_options ={};
var tmn = chrome.extension.getBackgroundPage().TRACKMENOT.TMNSearch;
var options = null;
function loadHandlers() {
$("#apply-options").click( function() {
tmn_options = {"options":saveOptions()};
chrome.runtime.sendMessage({'tmn':"TMNSaveOptions",'option':tmn_options.options});
alert("Configuration saved");
TMNSetOptionsMenu(tmn_options);
}
);
$("#show-add").click( function() {
$("#add-engine-table").show();
}
);
$("#show-log").click( TMNShowLog );
$("#trackmenot-opt-showqueries").click( TMNShowQueries);
$("#validate-feed").click( function() {
var feeds = $("#trackmenot-seed").val();
var param = {"feeds": feeds};
chrome.runtime.sendMessage({'tmn':"TMNValideFeeds",'param':param});
}
);
$("#clear-log").click( TMNClearLogs );
$("#search-engine-list").on('click', 'button.smallbutton', function(event) {
var del_engine = event.target.id.split("_").pop();
chrome.runtime.sendMessage({'tmn':"TMNDelEngine",'engine':del_engine});
});
$("#help-faq").click( function() {
window.open('http://cs.nyu.edu/trackmenot/faq.html#options');
});
$("#main-site").click( function() {
window.open('http://cs.nyu.edu/trackmenot');
});
$("#add-engine").click( function() {
var engine = {};
engine.name = $("#newengine-name").val();
engine.urlmap = $("#newengine-map").val();
if(engine.urlmap.indexOf('trackmenot') <0 ) {
alert("Did not find 'trackmenot' in the URL");
return;
}
chrome.runtime.sendMessage({'tmn':"TMNAddEngine",'engine': engine});
}
);
}
function TMNSetOptionsMenu( ) {
var options = tmn._getOptions();
var feedList = options.feedList;
var kw_black_list = options.kw_black_list;
//console.log("Enabled: " +options.enabled)
$("#add-engine-table").hide();
$("#trackmenot-opt-enabled").prop('checked', options.enabled);
$("#trackmenot-opt-useTab").prop('checked',options.useTab);
$("#trackmenot-opt-burstMode").prop('checked',options.burstMode);
$("#trackmenot-opt-save-logs").prop('checked',options.saveLogs);
$("#trackmenot-opt-disable-logs").prop('checked',options.disableLogs);
$("#trackmenot-opt-userss").prop('checked',options.useRss);
$("#trackmenot-use-userlist").prop('checked',options.useUserList);
$("#trackmenot-seed").val(feedList);
$("#trackmenot-blacklist").val(kw_black_list);
$("#trackmenot-userlist").val(options.userList);
$("#trackmenot-use-blacklist").prop('checked', options.use_black_list);
$("#trackmenot-use-dhslist").prop('checked', options.use_dhs_list);
var engines = options.searchEngines.split(',');
for( var i=0; i< engines.length;i++)
$("#"+engines[i]).prop('checked',true);
setFrequencyMenu(options.timeout);
}
function setFrequencyMenu(timeout){
var menu = $("#trackmenot-opt-timeout");
$('#trackmenot-opt-timeout option[value=' +timeout+ ']').prop('selected', true);
}
function TMNClearLogs() {
tmn._clearLogs();
TMNShowLog();
}
function TMNShowLog() {
var logs = tmn._getLogs();
var htmlStr = '<table witdh=500 cellspacing=3 bgcolor=white frame=border>';
htmlStr += '<thead><tr align=left>';
htmlStr += '<th>Engine</th>';
htmlStr += '<th>Mode</th>';
htmlStr += '<th>URL</th>';
htmlStr += '<th>Query/Message</th>';
htmlStr += '<th>Date</th>';
htmlStr += '</tr></thead>';
for (var i=0; i< 3000 && i<logs.length ; i++) {
htmlStr += '<tr ';
if (logs[i].type == 'ERROR') htmlStr += 'style="color:Red">';
if (logs[i].type == 'query') htmlStr += 'style="color:Black">';
if (logs[i].type == 'URLmap') htmlStr += 'style="color:Brown">';
if (logs[i].type == 'click') htmlStr += 'style="color:Blue">';
if (logs[i].type == 'info') htmlStr += 'style="color:Green">';
htmlStr += logs[i].engine ? '<td><b>' + logs[i].engine+ '</b></td>' : '<td></td>';
htmlStr += logs[i].mode ? '<td>' + logs[i].mode+ '</td>' : '<td></td>';
htmlStr += logs[i].newUrl ? '<td>' + logs[i].newUrl.substring(0,50) + '</td>' : '<td></td>';
htmlStr += logs[i].query ? '<td>' + logs[i].query+ '</td>' : '<td></td>';
htmlStr += logs[i].date ? '<td>' + logs[i].date+ '</td>' : '<td></td>';
htmlStr += '</font></tr>';
}
htmlStr += '</table>';
$('#tmn_logs_container').html(htmlStr);
}
function TMNShowEngines(engines) {
var htmlStr = "<table>";
for (var i=0; i<engines.length ; i++) {
var engine = engines[i];
htmlStr += '<tr >';
htmlStr += '<td><input type="checkbox" id="'+ engine.id +'" value="'+engine.id +'">'+ engine.name +'</td><td><button class="smallbutton" id="del_engine_'+engine.id+'" > - </button> </td>';
htmlStr += '</tr>';
}
htmlStr += '</table>';
$('#search-engine-list').html(htmlStr);
}
function TMNShowQueries() {
var sources = tmn._getAllQueries();
var htmlStr = '<a href="#dhs">DHS</a> | <a href="#rss"> RSS </a> | <a href="#popular"> Popular </a>|<a href="#extracted"> Extracted</a>';
htmlStr += '<div style="height:1000px;overflow:auto;"><table witdh=500 cellspacing=3 bgcolor=white frame=border>';
if ( sources.dhs ) {
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
htmlStr += '<td > DHS Monitored <td>';
htmlStr += '<a name="dhs"></a>';
htmlStr += '</tr>';
for (var i=0; i<sources.dhs.length ; i++) {
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
htmlStr += '<td>' +sources.dhs[i].category_name+ '<td>';
htmlStr += '</tr>';
for (var j=0; j< sources.dhs[i].words.length ; j++) {
htmlStr += '<tr style="color:Black">';
htmlStr += '<td>' +sources.dhs[i].words[j]+ '<td>';
htmlStr += '</tr>';
}
}
}
if ( sources.rss ) {
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
htmlStr += '<td > RSS <td>';
htmlStr += '<a name="rss"></a>';
htmlStr += '</tr>';
for (var i=0; i < sources.rss.length ; i++) {
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
htmlStr += '<td>' +sources.rss[i].name+ '<td>';
htmlStr += '</tr>';
for (var j=0; j< sources.rss[i].words.length ; j++) {
htmlStr += '<tr style="color:Black">';
htmlStr += '<td>' +sources.rss[i].words[j]+ '<td>';
htmlStr += '</tr>';
}
}
}
if ( sources.zeitgeist ) {
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
htmlStr += '<td > Popular <td>';
htmlStr += '<a name="popular"></a>';
htmlStr += '</tr>';
for (var i=0; i< sources.zeitgeist.length ; i++) {
htmlStr += '<tr style="color:Black">';
htmlStr += '<td>' +sources.zeitgeist[i]+ '<td>';
htmlStr += '</tr>';
}
}
if ( sources.extracted ) {
htmlStr += '<tr style="color:Black" bgcolor=#D6E0E0 align=center>';
htmlStr += '<td > Extracted <td>';
htmlStr += '<a name="extracted"></a>';
htmlStr += '</tr>';
for (var i=0; i<sources.extracted.length ; i++) {
htmlStr += '<tr style="color:Black" bgcolor=#F0F0F0 align=center>';
htmlStr += '<td>' +sources.extracted[i]+ '<td>';
htmlStr += '</tr>';
}
}
htmlStr += '</table>';
$('#tmn_logs_container').html(htmlStr);
}
function saveOptions() {
var options = {};
options.enabled = $("#trackmenot-opt-enabled").is(':checked');
options.useTab = $("#trackmenot-opt-useTab").is(':checked');
options.burstMode = $("#trackmenot-opt-burstMode").is(':checked');
options.disableLogs = $("#trackmenot-opt-disable-logs").is(':checked');
options.useRss = $("#trackmenot-opt-userss").is(':checked');
options.useUserList = $("#trackmenot-use-userlist").is(':checked');
options.saveLogs = $("#trackmenot-opt-save-logs").is(':checked');
options.userList = $("#trackmenot-userlist").val();
options.timeout = $("#trackmenot-opt-timeout").val();
setFrequencyMenu(options.timeout);
var engines = '';
var list = $("#search-engine-list:checked");
$("#search-engine-list :checked").each(
function(){
engines += ($(this).val())+",";
}
);
if (engines.length>0)
engines = engines.substring(0,engines.length-1);
options.searchEngines = engines;
options.feedList = $("#trackmenot-seed").val();
options.use_black_list = $("#trackmenot-use-blacklist").is(':checked');
options.use_dhs_list = $("#trackmenot-use-dhslist").is(':checked');
options.kw_black_list = $("#trackmenot-blacklist").val();
return options;
}
function handleRequest(request, sender, sendResponse) {
if (!request.options) return;
switch (request.options) {
case "TMNSetOptionsMenu":
TMNSetOptionsMenu(request.param);
sendResponse({});
break;
case "TMNSendLogs":
TMNShowLog(request.param);
sendResponse({});
break;
case "TMNSendQueries":
TMNShowQueries(request.param);
sendResponse({});
break;
case "TMNSendEngines":
TMNShowEngines(request.param);
sendResponse({});
break;
default:
sendResponse({}); // snub them.
}
}
document.addEventListener('DOMContentLoaded', function () {
TMNShowEngines(tmn._getTargetEngines());
TMNSetOptionsMenu();
loadHandlers();
});
chrome.runtime.onMessage.addListener(function(){
handleRequest();
});