Skip to content

Commit

Permalink
feat(manifest-v3): Ported the codebase to use manifest v3 (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
proffapt authored Nov 14, 2023
2 parents 0eb289a + a21f21a commit ac3482a
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 62 deletions.
87 changes: 44 additions & 43 deletions extension-src/chrome/js/feedback.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,56 +7,55 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
}

const fill_form = () => {
textBox = document.getElementById('myframe').contentDocument.querySelectorAll('textarea');
radioButton = document.getElementById('myframe').contentDocument.querySelectorAll('input[type="radio"]');
prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]');

if (textBox.length == 5) {
switch (request.preference) {
case "positive":
positive_theory_feedback();
break;
case "neutral":
neutral_theory_feedback();
break;
case "negative":
negative_theory_feedback();
break;
}
}
else {
switch (request.preference) {
case "positive":
positive_lab_feedback();
break;
case "neutral":
neutral_lab_feedback();
break;
case "negative":
negative_lab_feedback();
break;
textBox = document.getElementById('myframe').contentDocument.querySelectorAll('textarea');
radioButton = document.getElementById('myframe').contentDocument.querySelectorAll('input[type="radio"]');
prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]');

if (textBox.length == 5) {
switch (request.preference) {
case "positive":
positive_theory_feedback();
break;
case "neutral":
neutral_theory_feedback();
break;
case "negative":
negative_theory_feedback();
break;
}
} else {
switch (request.preference) {
case "positive":
positive_lab_feedback();
break;
case "neutral":
neutral_lab_feedback();
break;
case "negative":
negative_lab_feedback();
break;
}
}
}
};

const handleProf = () => {
prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]');
prof = document.querySelector('#myframe').contentDocument.querySelectorAll('input[name="check"]');
prof[profCounter].click(); profCounter++;

submitButton = document.getElementById('myframe').contentDocument.getElementById('sub');
if (submitButton != null){
submitButton = document.querySelector('#myframe').contentDocument.getElementById('sub');
if (submitButton != null) {
fill_form();

submitButton.setAttribute("onclick", "document.form1.method = 'POST'; document.form1.action = 'rev_feed_submit.jsp'; document.form1.submit();")
submitButton.setAttribute("onclick", "document.form1.method = 'POST'; document.form1.action = 'rev_feed_submit.jsp'; document.form1.submit();");
submitButton.addEventListener("click", async () => {
await sleep(3000);
processSubmission();
});

captchaText = document.getElementById('myframe').contentDocument.getElementById('passline');
captchaText = document.querySelector('#myframe').contentDocument.getElementById('passline');
captchaText.addEventListener("keydown", async (event) => {
if (event.key === "Enter") {
await sleep(3000);
await sleep(3000);
processSubmission();
}
});
Expand All @@ -67,30 +66,32 @@ chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
};

const processSubmission = () => {
submitButton = document.getElementById('myframe').contentDocument.getElementById('sub');
submitButton = document.querySelector('#myframe').contentDocument.getElementById('sub');
if (submitButton != null) {
profCounter--;
handleProf();
} else {
prof = document.getElementById('myframe').contentDocument.querySelectorAll('input[name="check"]');
prof = document.querySelector('#myframe').contentDocument.querySelectorAll('input[name="check"]');
if (profCounter < prof.length) handleProf();
else handleCourse();
}
};

const handleCourse = () => {
course = document.getElementById('myframe').contentDocument.querySelectorAll('a[href="javascript:void(0)"]');
course = document.querySelector('#myframe').contentDocument.querySelectorAll('a[href="javascript:void(0)"]');
if (courseCounter == course.length) return;
console.log(courseCounter)
course[courseCounter].click(); courseCounter++;

profCounter = 0; handleProf();
};

try {
if (!request.all)
if (!request.all) {
fill_form();
else
if (courseCounter == 0) handleCourse();
} else if (courseCounter === 0) {
handleCourse();
}
} catch (err) {
console.error(err);
}
Expand Down
6 changes: 3 additions & 3 deletions extension-src/chrome/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,22 +16,22 @@ positiveFeedbackButton.addEventListener("click", () => {
feedback = "positive";
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked});
chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, files: ['/js/feedback.js'] });
});
chrome.tabs.executeScript({ file: "/js/feedback.js" })
});

neutralFeedbackButton.addEventListener("click", () => {
feedback = "neutral";
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked});
chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, files: ['/js/feedback.js'] });
});
chrome.tabs.executeScript({ file: "/js/feedback.js" })
});

negativeFeedbackButton.addEventListener("click", () => {
feedback = "negative";
chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {action: "getStatusOfAll&FeedbackType", preference: feedback, all: isChecked});
chrome.scripting.executeScript({ target: {tabId: tabs[0].id}, files: ['/js/feedback.js'] });
});
chrome.tabs.executeScript({ file: "/js/feedback.js" })
});
38 changes: 22 additions & 16 deletions extension-src/chrome/manifest.json
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
{
"manifest_version": 2,
"manifest_version": 3,
"name": "fERP",
"description": "Automates the process of filling up feedback form in ERP for IIT KGP students",
"homepage_url": "https://github.com/proffapt/fERP",
"version": "1.3",

"version": "1.4",

"permissions": [
"activeTab",
"*://erp.iitkgp.ac.in/IIT_ERP*/*"
],
"scripting",
"activeTab"
],

"browser_action": {
"default_title": "fERP",
"default_popup": "main.html"
},
"content_scripts": [
{
"matches": ["*://erp.iitkgp.ac.in/IIT_ERP*/*"],
"js": ["js/feedback.js"]
}
],

"action": {
"default_popup": "main.html",
"default_title": "fERP"
},

"icons": {
"16": "images/fERP16.png",
"32": "images/fERP32.png",
"64": "images/fERP64.png",
"128": "images/fERP128.png"
}
"16": "images/fERP16.png",
"32": "images/fERP32.png",
"64": "images/fERP64.png",
"128": "images/fERP128.png"
}
}

0 comments on commit ac3482a

Please sign in to comment.