From c72931d0edff6b86ed3802567a8885d4b19cb426 Mon Sep 17 00:00:00 2001 From: Sriram Hariharan Date: Tue, 13 Aug 2019 14:39:07 -0500 Subject: [PATCH] refactor background scripts --- js/background.js | 78 +++++++++++++++++++++++++----------------------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/js/background.js b/js/background.js index 6cb33401..65bdd6c2 100644 --- a/js/background.js +++ b/js/background.js @@ -164,12 +164,12 @@ function checkConflicts(sendResponse) { chrome.storage.sync.get('savedCourses', function (data) { var conflicts = []; var courses = data.savedCourses; - for (var i = 0; i < courses.length; i++) { - for (var j = i + 1; j < courses.length; j++) { - if (isConflict(courses[i].datetimearr, courses[j].datetimearr)) { - console.log("conflict"); - conflicts.push([courses[i], courses[j]]); - } + for (let i = 0; i < courses.length; i++) { + for (let j = i + 1; j < courses.length; j++) { + let course_a = courses[i]; + let course_b = courses[j]; + if (isConflict(course_a.datetimearr, course_b.datetimearr)) + conflicts.push([course_a, course_b]); } } if (conflicts.length == 0) { @@ -177,7 +177,6 @@ function checkConflicts(sendResponse) { isConflict: false }); } else { - console.log(conflicts); sendResponse({ isConflict: true, between: conflicts @@ -191,19 +190,15 @@ function isSingleConflict(currdatearr, unique, sendResponse) { chrome.storage.sync.get('savedCourses', function (data) { var courses = data.savedCourses; var conflict = false; - for (var i = 0; i < courses.length; i++) { - if (isConflict(currdatearr, courses[i].datetimearr)) { - conflict = true; - break; - } - } var contains = false; - var i = 0; - while (i < courses.length && !contains) { - if (courses[i].unique == unique) { + for (let i = 0; i < courses.length; i++) { + let course = courses[i]; + if (!conflict && isConflict(currdatearr, course.datetimearr)) { + conflict = true; + } + if (!contains && isSameCourse(course, unique)) { contains = true; } - i++; } sendResponse({ isConflict: conflict, @@ -212,16 +207,19 @@ function isSingleConflict(currdatearr, unique, sendResponse) { }); } + + + /* Check if conflict between two date-time-arrs*/ function isConflict(adtarr, bdtarr) { for (var i = 0; i < adtarr.length; i++) { - var currday = adtarr[i][0]; - var currtimes = adtarr[i][1]; + var current_day = adtarr[i][0]; + var current_times = adtarr[i][1]; for (var j = 0; j < bdtarr.length; j++) { - var nextday = bdtarr[j][0]; - var nextimes = bdtarr[j][1]; - if (nextday == currday) { - if (currtimes[0] < nextimes[1] && currtimes[1] > nextimes[0]) { + var next_day = bdtarr[j][0]; + var next_times = bdtarr[j][1]; + if (next_day == current_day) { + if (current_times[0] < next_times[1] && current_times[1] > next_times[0]) { return true; } } @@ -280,7 +278,7 @@ function alreadyContains(unique, sendResponse) { function contains(courses, unique) { var i = 0; while (i < courses.length) { - if (courses[i].unique == unique) { + if (isSameCourse(courses[i], unique)) { return true; } i++; @@ -288,6 +286,10 @@ function contains(courses, unique) { return false; } +function isSameCourse(course, unique) { + return course.unique == unique +} + function updateTabs() { chrome.tabs.query({}, function (tabs) { for (var i = 0; i < tabs.length; i++) { @@ -306,28 +308,28 @@ setInterval(updateStatus, UPDATE_INTERVAL); function updateStatus(sendResponse) { chrome.storage.sync.get('savedCourses', function (data) { var courses = data.savedCourses; - var nochange = true; + var no_change = true; for (let i = 0; i < courses.length; i++) { try { let c = courses[i]; - let oldstatus = c.status; - let oldlink = c.link; + let old_status = c.status; + let old_link = c.link; $.ajax({ - url: oldlink, + url: old_link, success: function (result) { if (result) { console.log(result); var object = $('
').html(result).contents(); - let newstatus = object.find('[data-th="Status"]').text(); - let registerlink = object.find('td[data-th="Add"] a'); - if (registerlink) - registerlink = registerlink.attr('href'); - var haschanged = (newstatus == oldstatus && registerlink == oldlink); + let new_status = object.find('[data-th="Status"]').text(); + let register_link = object.find('td[data-th="Add"] a'); + if (register_link) + register_link = register_link.attr('href'); + var haschanged = (new_status == old_status && register_link == old_link); if (!haschanged) - console.log(c.unique + ' updated from ' + oldstatus + " to " + newstatus + " and " + oldlink + " to " + registerlink); - nochange &= haschanged; - c.registerlink = registerlink; - c.status = newstatus; + console.log(c.unique + ' updated from ' + old_status + " to " + new_status + " and " + old_link + " to " + register_link); + no_change &= haschanged; + c.registerlink = register_link; + c.status = new_status; } } }); @@ -336,7 +338,7 @@ function updateStatus(sendResponse) { console.log('Not logged into UT Coursebook. Could not update class statuses.'); } } - if (!nochange) { + if (!no_change) { chrome.storage.sync.set({ savedCourses: courses });