refactor background scripts
This commit is contained in:
@@ -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
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user