Skip to content

Commit 53abfa3

Browse files
authored
update v1.2.1
Correction: - Refinement of the mailCalculator function, now it appears correctly and detects empty folders. Deletion: - Remove the Microsoft 365 ad because it no longer exists. Addition: - Addition of the Russian language/locale.
1 parent 4b6d1e6 commit 53abfa3

10 files changed

+58
-45
lines changed

_locales/de/messages.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
"ads_text": {"message": "Werbung"},
66
"cfg_hide_left_rail": {"message": "Linkes Menü ausblenden"},
7-
"cfg_hide_premium_ad": {"message": "Microsoft 365 Premium-Anzeige ausblenden"},
87
"cfg_hide_firstemail_ad": {"message": "Erste E-Mail-Anzeige ausblenden"},
98
"cfg_hide_top_icons": {"message": "Symbole für Meet, Skype und OneNote ausblenden"},
109

_locales/en/messages.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
"ads_text": {"message": "Ads"},
66
"cfg_hide_left_rail": {"message": "Hide Left Rail"},
7-
"cfg_hide_premium_ad": {"message": "Hide Microsoft 365 Premium Ad"},
87
"cfg_hide_top_icons": {"message": "Hide Meet, Skype, OneNote icons"},
98
"cfg_hide_firstemail_ad": {"message": "Hide First Email Ad"},
109

_locales/es/messages.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
"ads_text": {"message": "Anuncios"},
66
"cfg_hide_left_rail": {"message": "Ocultar el riel izquierdo"},
7-
"cfg_hide_premium_ad": {"message": "Ocultar el anuncio de Microsoft 365 Premium"},
87
"cfg_hide_firstemail_ad": {"message": "Ocultar el anuncio del primer correo electrónico"},
98
"cfg_hide_top_icons": {"message": "Ocultar iconos de Meet, Skype, OneNote"},
109

_locales/fr/messages.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
"ads_text": {"message": "Publicités"},
66
"cfg_hide_left_rail": {"message": "Masquer le volet gauche"},
7-
"cfg_hide_premium_ad": {"message": "Masquer la publicité Microsoft 365 Premium"},
87
"cfg_hide_firstemail_ad": {"message": "Masquer le premier e-mail publicité"},
98
"cfg_hide_top_icons": {"message": "Masquer les icônes Meet, Skype, OneNote"},
109

_locales/ru/messages.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"extensionName": {"message": "Outlook Web Plus"},
3+
"extensionDescription": {"message": "Удаление рекламы и улучшение почтового ящика Outlook веб."},
4+
5+
"ads_text": {"message": "Реклама"},
6+
"cfg_hide_left_rail": {"message": "Скрыть левую панель"},
7+
"cfg_hide_top_icons": {"message": "Скрыть значки Meet, Skype, OneNote"},
8+
"cfg_hide_firstemail_ad": {"message": "Скрыть рекламу первого письма"},
9+
10+
"extras_text": {"message": "Дополнительно"},
11+
"cfg_outlook_logo": {"message": "Логотип Outlook+"},
12+
"cfg_email_counter": {"message": "Счетчик электронной почты"},
13+
"cfg_check_all_emails_button": {"message": "Кнопка \"Проверить все письма\""},
14+
"cfg_align_title_folder": {"message": "Выравнивание заголовка папки"},
15+
"cfg_custom_background": {"message": "URL настраиваемой темы фона"},
16+
"cfg_transparency_topbar": {"message": "Прозрачность верхней панели"},
17+
"cfg_support_rate_topbar": {"message": "Кнопка поддержки и оценки"},
18+
19+
"cfg_open_outlook": {"message": "Открыть Outlook"},
20+
"cfg_open_calendar": {"message": "Открыть календарь"},
21+
22+
"cfg_new_version": {"message": "Доступна новая версия"}
23+
}

manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 2,
33
"name": "__MSG_extensionName__",
4-
"version": "1.2.0",
4+
"version": "1.2.1",
55
"description": "__MSG_extensionDescription__",
66

77
"icons": {

src/outlook_web_plus.js

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ let startTimer = null;
33

44
// Ads
55
let hideLeftRail = true;
6-
let hidePremiumAd = true;
76
let hideTopIcons = true;
87
let hideFirstemailAd = true;
98

@@ -32,7 +31,6 @@ const start = async () => {
3231
updatePremiumLogo(),
3332
titleListener(),
3433
cleanFirstmailAd(),
35-
cleanPremiumAd(),
3634
cleanTopIcons(),
3735
mailCalculator(),
3836
selectAll(),
@@ -55,10 +53,6 @@ chrome.storage.onChanged.addListener(function (changes) {
5553
hideLeftRail = changes.hideLeftRail.newValue;
5654
cleanLeftRail(0);
5755
break;
58-
case "hidePremiumAd":
59-
hidePremiumAd = changes.hidePremiumAd.newValue;
60-
cleanPremiumAd(0);
61-
break;
6256
case "hideTopIcons":
6357
hideTopIcons = changes.hideTopIcons.newValue;
6458
cleanTopIcons(0);
@@ -110,7 +104,6 @@ chrome.storage.onChanged.addListener(function (changes) {
110104
const loadVariables = (value) => {
111105
hideFirstemailAd = value.hideFirstemailAd === undefined ? hideFirstemailAd : value.hideFirstemailAd;
112106
hideLeftRail = value.hideLeftRail === undefined ? hideLeftRail : value.hideLeftRail;
113-
hidePremiumAd = value.hidePremiumAd === undefined ? hidePremiumAd : value.hidePremiumAd;
114107
hideTopIcons = value.hideTopIcons === undefined ? hideTopIcons : value.hideTopIcons;
115108
premiumLogo = value.premiumLogo === undefined ? premiumLogo : value.premiumLogo;
116109
addNumberOfEmail = value.addNumberOfEmail === undefined ? addNumberOfEmail : value.addNumberOfEmail;
@@ -127,7 +120,6 @@ const loadVariables = (value) => {
127120

128121
chrome.storage.local.set({
129122
hideLeftRail,
130-
hidePremiumAd,
131123
hideFirstemailAd,
132124
hideTopIcons,
133125
premiumLogo,
@@ -204,20 +196,40 @@ const updatePremiumLogo = (ms = 100) => {
204196
}
205197

206198
const mailCalculator = (ms = 150) => {
199+
let counter = 0;
200+
207201
const findFolder = () => {
208202
const folderTitle = document.querySelector('.jXaVF');
209-
if (folderTitle) {
210-
const folderTitleText = folderTitle.innerText;
211-
const firstMail = document.querySelector('.jGG6V');
212-
const numberOfEmails = firstMail ? firstMail.getAttribute('aria-setsize') : 0;
213-
// const regex = /\s\(\d+ emails\)/; // Old Way
214-
const regex = new RegExp(`\\s\\(${numberOfEmails} ${emailsText}\\)`);
203+
const folderTitleText = folderTitle.innerText;
204+
const emailsDetector = document.querySelectorAll('.jGG6V');
205+
const emptyFolder = document.getElementById('EmptyState_MainMessage')
206+
207+
if (folderTitle && (emailsDetector.length > 1)){
208+
const firstEmail = emailsDetector[0].getAttribute('aria-posinset') == 1 ? emailsDetector[0] : emailsDetector[1];
209+
210+
if (firstEmail) {
211+
const numberOfEmails = firstEmail ? firstEmail.getAttribute('aria-setsize') : 0;
212+
// const regex = /\s\(\d+ emails\)/; // Old Way
213+
const regex = new RegExp(`\\s\\(${numberOfEmails} ${emailsText}\\)`);
214+
215+
// Prevent duplication
216+
if (regex.test(folderTitleText)) {
217+
folderTitle.innerHTML = folderTitleText.replace(regex, `<b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${numberOfEmails} ${emailsText})</b>`);
218+
} else {
219+
folderTitle.innerHTML = `${folderTitleText} <b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${numberOfEmails} ${emailsText})</b>`;
220+
}
221+
clearInterval(timer);
222+
}
223+
}
224+
225+
if (counter > 100 || emptyFolder) {
226+
const regex = new RegExp(`\\s\\(${0} ${emailsText}\\)`);
215227

216228
// Prevent duplication
217229
if (regex.test(folderTitleText)) {
218-
folderTitle.innerHTML = folderTitleText.replace(regex, `<b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${numberOfEmails} ${emailsText})</b>`);
230+
folderTitle.innerHTML = folderTitleText.replace(regex, `<b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${0} ${emailsText})</b>`);
219231
} else {
220-
folderTitle.innerHTML = `${folderTitleText} <b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${numberOfEmails} ${emailsText})</b>`;
232+
folderTitle.innerHTML = `${folderTitleText} <b class="mailColor" style="color: ${numberOfEmailColor}; display: ${addNumberOfEmail ? 'inline' : 'none'}"> (${0} ${emailsText})</b>`;
221233
}
222234
clearInterval(timer);
223235
}
@@ -230,17 +242,6 @@ const cleanLeftRail = () => {
230242
leftRail.style.display = hideLeftRail ? "none" : "block";
231243
}
232244

233-
const cleanPremiumAd = (ms = 100) => {
234-
const findPremium = () => {
235-
const premiumAd = document.querySelector(".Ogqyq");
236-
if (premiumAd) {
237-
premiumAd.style.display = hidePremiumAd ? "none" : "block";
238-
clearInterval(timer);
239-
}
240-
}
241-
const timer = setInterval(findPremium, ms);
242-
}
243-
244245
const alignFolderTitle = (ms = 100) => {
245246
const findFolderTitle = () => {
246247
const folderTitle = document.querySelector(".IG8s8");

src/outlook_web_plus_min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/popup.html

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,19 @@ <h2 class="titlePopup">Outlook Web Plus<sup>+</sup></h2>
2929
Ads
3030
</legend>
3131
<div class="labels">
32-
<label class="ad">
33-
<input type="checkbox" id="hidepremiumadInput">
34-
<span id="hide_premium_ad_text">
35-
Hide Microsoft 365 Premium Ad
36-
</span>
37-
</label>
38-
<label class="ad">
32+
<label class="ad" title="better performance with uBlock Origin">
3933
<input type="checkbox" id="hidefirstemailadInput">
4034
<span id="hide_firstemail_ad_text">
4135
Hide First Email Ad
4236
</span>
4337
</label>
44-
<label class="ad">
38+
<label class="ad" title="Hide topbar useless icons">
4539
<input type="checkbox" id="hidetopiconsInput">
4640
<span id="hide_top_icons_text">
4741
Hide Meet, Teams, OneNote icons
4842
</span>
4943
</label>
50-
<label class="ad">
44+
<label class="ad" title="Hide left rail">
5145
<input type="checkbox" id="hideleftbannerInput">
5246
<span id="hide_left_rail_text">
5347
Hide Left Rail

src/popup.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ function scrapeAddonVersion(actualVersion, translatedMessage) {
55
const addonData = data.results[0]["current_version"]
66
const newVersion = addonData["version"]
77
const newVersionUrl = addonData["file"]["url"]
8+
89
if (newVersion !== actualVersion) {
910
document.querySelector(".linkNewVersion").style.display = "flex"
1011
document.querySelector(".linkNewVersion").href = newVersionUrl
@@ -65,7 +66,6 @@ const updateInputElement = (id, storageKey) => {
6566
window.onload = function() {
6667
// Updater
6768
updateInputElement("hideleftbannerInput", "hideLeftRail");
68-
updateInputElement("hidepremiumadInput", "hidePremiumAd");
6969
updateInputElement("hidetopiconsInput", "hideTopIcons");
7070
updateInputElement("hidefirstemailadInput", "hideFirstemailAd");
7171
colorChecker();
@@ -83,7 +83,6 @@ window.onload = function() {
8383
// Locales
8484
document.getElementById("ads_title_text").textContent = chrome.i18n.getMessage("ads_text");
8585
document.getElementById("hide_left_rail_text").textContent = chrome.i18n.getMessage("cfg_hide_left_rail");
86-
document.getElementById("hide_premium_ad_text").textContent = chrome.i18n.getMessage("cfg_hide_premium_ad");
8786
document.getElementById("hide_top_icons_text").textContent = chrome.i18n.getMessage("cfg_hide_top_icons");
8887
document.getElementById("extras_title_text").textContent = chrome.i18n.getMessage("extras_text");
8988
document.getElementById("outlook_logo_text").textContent = chrome.i18n.getMessage("cfg_outlook_logo");
@@ -104,5 +103,5 @@ window.onload = function() {
104103
scrapeAddonVersion(manifestData.version, chrome.i18n.getMessage("cfg_new_version"));
105104
setInterval(() => {
106105
scrapeAddonVersion(manifestData.version, chrome.i18n.getMessage("cfg_new_version"));
107-
}, 12 * 60 * 60 * 1000); // Check every 12 hours
106+
}, 12 * 60 * 60 * 1000); // Check every 12 hours if a new version is available if browser is already open
108107
};

0 commit comments

Comments
 (0)