50 Commits

Author SHA1 Message Date
bad697fa99 Merge branch 'main' of https://git.wbell.dev/TussockyJoker/Aula-Extension 2026-02-26 22:52:57 +00:00
b6edcdc8c0 zip created 2026-02-26 22:52:56 +00:00
1c839e6b54 Update README.md 2026-02-26 22:50:16 +00:00
843d38bccb Delete builds/aula_fixer-1.4.xpi 2026-02-26 22:41:04 +00:00
21b1ee40e6 Update README.md 2026-02-26 22:40:56 +00:00
46f81a1e81 updated build scripts, built 1.4.1 xpi 2026-02-26 22:31:46 +00:00
105ff6e0cd Updated xpi for ff, updated manifests, updated build script 2026-02-26 22:07:40 +00:00
fd1452d0ce Merge pull request 'add .env support' (#2) from Ugric/Aula-Fixer:main into main
Reviewed-on: #2
2026-02-26 21:22:24 +00:00
Ugric
28d5fb6f83 re add .env to .gitignore and make example 2026-02-26 21:20:01 +00:00
Ugric
b5984fba76 re add .env to .gitignore and make example 2026-02-26 21:19:52 +00:00
Ugric
ad17674577 add .env support 2026-02-26 21:18:39 +00:00
Ugric
5fe2d981e8 add .env support 2026-02-26 21:18:32 +00:00
6f15bf70c6 Added build scripts for ff 2026-02-26 20:59:38 +00:00
3c703d7425 Merge branch 'main' of https://git.wbell.dev/TussockyJoker/Aula-Extension 2026-02-26 20:52:49 +00:00
91b692593f Added separate manifests for chrome and ff 2026-02-26 20:52:18 +00:00
c7b4955291 Update keywords.txt 2026-02-26 17:51:18 +00:00
2706812496 Update keywords.txt 2026-02-26 17:45:12 +00:00
a6bd5a5d5c Update keywords.txt 2026-02-26 17:43:57 +00:00
bc0f77bfd4 Update keywords.txt 2026-02-26 11:54:20 +00:00
c48c5c45ba Updated .xpi for Firefox 2026-02-25 15:56:09 +00:00
b4a86d0e2d Merge branch 'main' of https://git.wbell.dev/TussockyJoker/Aula-Fixer 2026-02-25 15:25:29 +00:00
5578b22148 Updated .crx for chrome 2026-02-25 15:25:25 +00:00
12ceca7bea Delete Aula-Extension.crx 2026-02-25 15:24:41 +00:00
2c2c5dc3d4 Update README.md 2026-02-25 15:22:45 +00:00
498999d12a Update README.md 2026-02-25 15:22:25 +00:00
c0d206a957 Update README.md 2026-02-25 15:22:07 +00:00
36c004b802 Now gets keywords.txt from repo on git.wbell.dev 2026-02-25 15:13:52 +00:00
8390c0a43e Update README.md 2026-02-25 14:19:43 +00:00
293f5142e6 Update manifest.json 2026-02-25 14:14:06 +00:00
11830f9e20 Update manifest.json 2026-02-25 14:04:16 +00:00
8bacbb301e Update manifest.json 2026-02-25 14:02:54 +00:00
0e71f8ba63 Update manifest.json 2026-02-25 14:01:40 +00:00
0b10f5f993 Update content.js 2026-02-25 09:13:06 +00:00
366117a93c Update README.md 2026-02-25 09:12:29 +00:00
10fc5f88bc added crx for chrome 2026-02-24 20:33:17 +00:00
e1bd9ad31e Merge branch 'main' of https://git.wbell.dev/TussockyJoker/Aula-Extension 2026-02-24 20:29:32 +00:00
f76a8db079 updated keywords.txt 2026-02-24 20:28:36 +00:00
aaeae49517 Update keywords.txt 2026-02-24 14:21:27 +00:00
100bcb4c2c Update README.md 2026-02-23 22:41:02 +00:00
5900482d93 Update Aula-Fixer.xpi 2026-02-23 20:14:37 +00:00
a9c257dc99 Update README.md 2026-02-23 19:58:49 +00:00
6f2198a268 Delete 6fd68f08d4504eb297b6-1.1.xpi 2026-02-23 19:55:20 +00:00
f9103ba332 Changed to Aula Fixer 2026-02-23 19:54:46 +00:00
39581b5404 Update README.md 2026-02-22 00:32:27 +00:00
8e63c4e09c Added xpi for firefox, updated manifest.json, updated readme, updated .gitignore 2026-02-22 00:30:34 +00:00
0b1d4d49e6 Delete .DS_Store 2026-02-21 20:19:02 +00:00
c09d713887 updated .gitignore 2026-02-21 20:18:14 +00:00
4c4c518460 Update README.md 2026-02-21 20:17:51 +00:00
62e0305d43 Merge branch 'main' of https://git.wbell.dev/TussockyJoker/Aula-Extension 2026-02-21 20:14:34 +00:00
39d1386977 updated keyphrases 2026-02-21 20:14:16 +00:00
18 changed files with 300 additions and 85 deletions

BIN
.DS_Store vendored

Binary file not shown.

2
.env_example Normal file
View File

@@ -0,0 +1,2 @@
API_KEY="YOUR_API_KEY"
API_SECRET="YOUR_API_SECRET"

10
.gitignore vendored Normal file
View File

@@ -0,0 +1,10 @@
.DS_Store
Archive.zip
.amo-upload-uuid
dev-resources
content copy.js
aula-fixer_v1-2.zip
.env
web-ext-artifacts
src.pem

View File

@@ -1,7 +1,22 @@
# Aula-Extension # Aula-Fixer
Browser extension that removes all the notifications about rooms for rent and shit This is a browser extension that removes all the notifications about rooms for rent and tenancy takeovers etc. from Aula and changes the styling of the pages to stop wasting so much space.
Will remove any notifications containing the any of the ~keywords~ keyphrases in keywords.txt so you can make it hide other stuff too if you wanted. Will remove any notifications containing the any of the ~keywords~ keyphrases in the keywords.txt file stored in this repo, it can also fall back on a local keywords.txt if the server cannot be reached.
I've only tested with chrome, atm the easiest way to install this is to turn on dev mode in chrome://extensions/, click on 'Load unpacked' and select the Aula-Extension folder. I've only tested with Chrome, Brave and Firefox. The easiest way to install this on chromium or similar is to download the .zip file, extract it somewhere, turn on dev mode in chrome://extensions (or equivalent), clicking on 'Load unpacked' and select the extracted folder. Alternatively clone this repo and select the src folder. I did pack a .crx for this purpose but Chrome has removed the ability to load .crx files 😐
For Firefox, I've made a signed .xpi which can be found in builds. To install from here, just open a new firefox tab and drag it into the window.
The Firefox version will often be slightly more up-to-date compared to the chrome version as building for chrome cannot be done from the CLI (afaik).
I'm working on getting the extension published on both the Chrome and Firefox stores.
https://addons.mozilla.org/en-GB/firefox/addon/aula-ad-filter/
https://chromewebstore.google.com/detail/aula-ad-filter/ooghijbicaoiccbkjplnellggncbcgbl?authuser=0&hl=en-GB
If you just want the 'ad-blocker' function, I've kept a separate branch in this repo.
If you have customised keywords.txt, you will have to break the url in 'background.js' so that it falls back on the local keywords.txt file. This only works if you are NOT using the prepackaged extensions or extensions from the chrome/firefox stores, these will only pull from the file in this repo or fall back on the included version if the server cannot be reached. If you think a word or phrase should be added to keywords.txt, either submit a pull request or raise an issue.
If you would like to build the extension for yourself run /build_scripts/build.sh, which will give you a .zip compatible with most browsers, if you wish to build a Firefox .xpi you will need to get a developer api key and change the id in the manifest.

3
build_scripts/build.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
web-ext build --source-dir=./src --artifacts-dir=./builds

View File

@@ -0,0 +1,11 @@
!/usr/bin/env bash
source .env
echo "Building/signing listed firefox extension"
mv src/manifest.json src/manifest_temp.json
mv src/manifest_ff.json src/manifest.json
echo "manifest_ff > manifest"
web-ext sign --channel=unlisted --api-key=user:$API_KEY --api-secret=$API_SECRET --source-dir=./src --artifacts-dir=./builds
mv src/manifest.json src/manifest_ff.json
mv src/manifest_temp.json src/manifest.json

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
source .env
echo "Building/signing UNlisted firefox extension"
mv src/manifest.json src/manifest_temp.json
mv src/manifest_ff.json src/manifest.json
web-ext sign --channel=unlisted --api-key=user:$API_KEY --api-secret=$API_SECRET --source-dir=./src --artifacts-dir=./builds
mv src/manifest.json src/manifest_ff.json
mv src/manifest_temp.json src/manifest.json

BIN
builds/aula_fixer-1.4.1.xpi Normal file

Binary file not shown.

BIN
builds/aula_fixer-1.4.zip Normal file

Binary file not shown.

View File

@@ -1,51 +0,0 @@
let keywords = [];
async function loadKeywords() {
try {
const response = await fetch(chrome.runtime.getURL("keywords.txt"));
const text = await response.text();
keywords = text
.split("\n")
.map(k => k.trim().toLowerCase())
.filter(Boolean);
console.log("Loaded keywords:", keywords);
startFiltering();
} catch (error) {
console.error("Failed to load keywords.txt:", error);
}
}
function filterNotifications() {
const notifications = document.querySelectorAll('div[role="button"]');
notifications.forEach(notification => {
const text = notification.innerText.toLowerCase();
const containsKeyword = keywords.some(keyword =>
text.includes(keyword)
);
if (containsKeyword) {
notification.remove();
}
});
}
function startFiltering() {
filterNotifications();
const observer = new MutationObserver(() => {
filterNotifications();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
loadKeywords();

View File

@@ -1,10 +0,0 @@
tenancy
bedroom available
bedroom is available
spacious room
i'm looking for a place to rent
short-term let available
i am looking for accomodation
i'm looking for accomodation
fully furnished house
ensuite room available

View File

@@ -1,20 +0,0 @@
{
"manifest_version": 3,
"name": "Aula Ad Filter",
"version": "1.1",
"description": "Removes all the notifications about rooms for rent on Aula",
"content_scripts": [
{
"matches": ["https://coventry.aula.education/*"],
"js": ["content.js"]
}
],
"web_accessible_resources": [
{
"resources": ["keywords.txt"],
"matches": ["https://coventry.aula.education/*"]
}
]
}

34
src/background.js Normal file
View File

@@ -0,0 +1,34 @@
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.type === "GET_KEYWORDS") {
const remoteUrl = "https://git.wbell.dev/TussockyJoker/Aula-Fixer/raw/branch/main/src/keywords.txt";
const localUrl = chrome.runtime.getURL("keywords.txt");
// remote
fetch(remoteUrl)
.then(response => {
if (!response.ok) throw new Error("Remote fetch failed");
return response.text();
})
.then(text => {
console.log("Loaded remote keywords");
sendResponse({ success: true, data: text });
})
.catch(() => {
console.warn("Remote failed, loading local fallback");
// local
fetch(localUrl)
.then(response => response.text())
.then(text => {
console.log("Loaded local fallback keywords");
sendResponse({ success: true, data: text });
})
.catch(error => {
sendResponse({ success: false, error: error.toString() });
});
});
return true;
}
});

89
src/content.js Normal file
View File

@@ -0,0 +1,89 @@
let keywords = [];
function loadKeywords() {
chrome.runtime.sendMessage({ type: "GET_KEYWORDS" }, (response) => {
if (!response || !response.success) {
console.error("Failed to load remote keywords:", response?.error);
return;
}
keywords = response.data
.split("\n")
.map(k => k.trim().toLowerCase())
.filter(Boolean);
console.log("Loaded keywords:", keywords);
injectStyles();
startFiltering();
});
}
function filterNotifications() {
const notifications = document.querySelectorAll('div[role="button"]');
notifications.forEach(notification => {
const text = notification.innerText?.toLowerCase() || "";
const containsKeyword = keywords.some(keyword =>
text.includes(keyword)
);
if (containsKeyword) {
notification.remove();
}
});
}
function injectStyles() {
// Prevent duplicate injection
if (document.getElementById("aula-fixer-styles")) return;
const style = document.createElement("style");
style.id = "aula-fixer-styles";
style.textContent = `
.css-qbgecn {
max-height: 99% !important;
padding: 0 !important;
}
.css-15ampbt {
overflow: hidden !important;
}
.css-1iji2l6 {
margin: 1px !important;
}
#main-content > div > div > div.css-qbgecn.e1f8gytw1 {
overflow-y: hidden !important;
}
.css-1vz9kb2 {
flex-basis: 85% !important;
padding: 0px 0px 0px 1% !important;
}
.css-nivjaw {
padding: 12px 12px 12px 12px !important;
}
`;
document.head.appendChild(style);
}
function startFiltering() {
filterNotifications();
const observer = new MutationObserver(() => {
filterNotifications();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
}
loadKeywords();

19
src/keywords.txt Normal file
View File

@@ -0,0 +1,19 @@
tenancy
bedroom available
bedroom is available
spacious room
i'm looking for a place to rent
short-term let available
i am looking for accomodation
i'm looking for accomodation
fully furnished house
ensuite room available
room available cv13gx queens park house unite student
en-suite room available
double studio room is available
need a space for 1 person (girl) to stay
hey everyone looking space for one
room available for girl (shared accommodation)
takeover an en-suite room
i'm currently seeking for someone who can take over an en-suite room
accomodation alert

35
src/manifest.json Normal file
View File

@@ -0,0 +1,35 @@
{
"manifest_version": 3,
"name": "Aula Fixer",
"version": "1.4",
"description": "Removes all notifications about rooms for rent etc. on Aula and changes styling so that less screen space is wasted.",
"background": {
"service_worker": "background.js",
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["https://coventry.aula.education/*"],
"js": ["content.js"]
}
],
"host_permissions": [
"https://git.wbell.dev/*"
],
"web_accessible_resources": [
{
"resources": ["keywords.txt"],
"matches": ["https://coventry.aula.education/*"]
}
],
"browser_specific_settings": {
"gecko": {
"id": "aula-fixer@tussockyjoker.com"
}
}
}

34
src/manifest_chrome.json Normal file
View File

@@ -0,0 +1,34 @@
{
"manifest_version": 3,
"name": "Aula Fixer",
"version": "1.4",
"description": "Removes all notifications about rooms for rent etc. on Aula and changes styling so that less screen space is wasted.",
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["https://coventry.aula.education/*"],
"js": ["content.js"]
}
],
"host_permissions": [
"https://git.wbell.dev/*"
],
"web_accessible_resources": [
{
"resources": ["keywords.txt"],
"matches": ["https://coventry.aula.education/*"]
}
],
"browser_specific_settings": {
"gecko": {
"id": "aula-fixer@tussockyjoker.com"
}
}
}

34
src/manifest_ff.json Normal file
View File

@@ -0,0 +1,34 @@
{
"manifest_version": 3,
"name": "Aula Fixer",
"version": "1.4.1",
"description": "Removes all notifications about rooms for rent etc. on Aula and changes styling so that less screen space is wasted.",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["https://coventry.aula.education/*"],
"js": ["content.js"]
}
],
"host_permissions": [
"https://git.wbell.dev/*"
],
"web_accessible_resources": [
{
"resources": ["keywords.txt"],
"matches": ["https://coventry.aula.education/*"]
}
],
"browser_specific_settings": {
"gecko": {
"id": "aula-fixer@tussockyjoker.com"
}
}
}