refactor background scripts

This commit is contained in:
Sriram Hariharan
2019-08-13 14:39:07 -05:00
parent 5c5cc48bb5
commit c72931d0ed

View File

@@ -164,12 +164,12 @@ function checkConflicts(sendResponse) {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
var conflicts = []; var conflicts = [];
var courses = data.savedCourses; var courses = data.savedCourses;
for (var i = 0; i < courses.length; i++) { for (let i = 0; i < courses.length; i++) {
for (var j = i + 1; j < courses.length; j++) { for (let j = i + 1; j < courses.length; j++) {
if (isConflict(courses[i].datetimearr, courses[j].datetimearr)) { let course_a = courses[i];
console.log("conflict"); let course_b = courses[j];
conflicts.push([courses[i], courses[j]]); if (isConflict(course_a.datetimearr, course_b.datetimearr))
} conflicts.push([course_a, course_b]);
} }
} }
if (conflicts.length == 0) { if (conflicts.length == 0) {
@@ -177,7 +177,6 @@ function checkConflicts(sendResponse) {
isConflict: false isConflict: false
}); });
} else { } else {
console.log(conflicts);
sendResponse({ sendResponse({
isConflict: true, isConflict: true,
between: conflicts between: conflicts
@@ -191,19 +190,15 @@ function isSingleConflict(currdatearr, unique, sendResponse) {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
var courses = data.savedCourses; var courses = data.savedCourses;
var conflict = false; var conflict = false;
for (var i = 0; i < courses.length; i++) {
if (isConflict(currdatearr, courses[i].datetimearr)) {
conflict = true;
break;
}
}
var contains = false; var contains = false;
var i = 0; for (let i = 0; i < courses.length; i++) {
while (i < courses.length && !contains) { let course = courses[i];
if (courses[i].unique == unique) { if (!conflict && isConflict(currdatearr, course.datetimearr)) {
conflict = true;
}
if (!contains && isSameCourse(course, unique)) {
contains = true; contains = true;
} }
i++;
} }
sendResponse({ sendResponse({
isConflict: conflict, isConflict: conflict,
@@ -212,16 +207,19 @@ function isSingleConflict(currdatearr, unique, sendResponse) {
}); });
} }
/* Check if conflict between two date-time-arrs*/ /* Check if conflict between two date-time-arrs*/
function isConflict(adtarr, bdtarr) { function isConflict(adtarr, bdtarr) {
for (var i = 0; i < adtarr.length; i++) { for (var i = 0; i < adtarr.length; i++) {
var currday = adtarr[i][0]; var current_day = adtarr[i][0];
var currtimes = adtarr[i][1]; var current_times = adtarr[i][1];
for (var j = 0; j < bdtarr.length; j++) { for (var j = 0; j < bdtarr.length; j++) {
var nextday = bdtarr[j][0]; var next_day = bdtarr[j][0];
var nextimes = bdtarr[j][1]; var next_times = bdtarr[j][1];
if (nextday == currday) { if (next_day == current_day) {
if (currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]) { if (current_times[0] < next_times[1] && current_times[1] > next_times[0]) {
return true; return true;
} }
} }
@@ -280,7 +278,7 @@ function alreadyContains(unique, sendResponse) {
function contains(courses, unique) { function contains(courses, unique) {
var i = 0; var i = 0;
while (i < courses.length) { while (i < courses.length) {
if (courses[i].unique == unique) { if (isSameCourse(courses[i], unique)) {
return true; return true;
} }
i++; i++;
@@ -288,6 +286,10 @@ function contains(courses, unique) {
return false; return false;
} }
function isSameCourse(course, unique) {
return course.unique == unique
}
function updateTabs() { function updateTabs() {
chrome.tabs.query({}, function (tabs) { chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) { for (var i = 0; i < tabs.length; i++) {
@@ -306,28 +308,28 @@ setInterval(updateStatus, UPDATE_INTERVAL);
function updateStatus(sendResponse) { function updateStatus(sendResponse) {
chrome.storage.sync.get('savedCourses', function (data) { chrome.storage.sync.get('savedCourses', function (data) {
var courses = data.savedCourses; var courses = data.savedCourses;
var nochange = true; var no_change = true;
for (let i = 0; i < courses.length; i++) { for (let i = 0; i < courses.length; i++) {
try { try {
let c = courses[i]; let c = courses[i];
let oldstatus = c.status; let old_status = c.status;
let oldlink = c.link; let old_link = c.link;
$.ajax({ $.ajax({
url: oldlink, url: old_link,
success: function (result) { success: function (result) {
if (result) { if (result) {
console.log(result); console.log(result);
var object = $('<div/>').html(result).contents(); var object = $('<div/>').html(result).contents();
let newstatus = object.find('[data-th="Status"]').text(); let new_status = object.find('[data-th="Status"]').text();
let registerlink = object.find('td[data-th="Add"] a'); let register_link = object.find('td[data-th="Add"] a');
if (registerlink) if (register_link)
registerlink = registerlink.attr('href'); register_link = register_link.attr('href');
var haschanged = (newstatus == oldstatus && registerlink == oldlink); var haschanged = (new_status == old_status && register_link == old_link);
if (!haschanged) if (!haschanged)
console.log(c.unique + ' updated from ' + oldstatus + " to " + newstatus + " and " + oldlink + " to " + registerlink); console.log(c.unique + ' updated from ' + old_status + " to " + new_status + " and " + old_link + " to " + register_link);
nochange &= haschanged; no_change &= haschanged;
c.registerlink = registerlink; c.registerlink = register_link;
c.status = newstatus; c.status = new_status;
} }
} }
}); });
@@ -336,7 +338,7 @@ function updateStatus(sendResponse) {
console.log('Not logged into UT Coursebook. Could not update class statuses.'); console.log('Not logged into UT Coursebook. Could not update class statuses.');
} }
} }
if (!nochange) { if (!no_change) {
chrome.storage.sync.set({ chrome.storage.sync.set({
savedCourses: courses savedCourses: courses
}); });