Skip to content

Instantly share code, notes, and snippets.

@kirbysayshi
Forked from itod/fluid_gmail.js
Created April 10, 2013 17:19
  • Star 9 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save kirbysayshi/5356592 to your computer and use it in GitHub Desktop.
window.fluid.dockBadge = '';
setTimeout(updateDockBadge, 1000);
setTimeout(updateDockBadge, 3000);
setInterval(updateDockBadge, 5000);
function updateDockBadge() {
var navigation = document.querySelector('[role=navigation]')
var doc = navigation.contentDocument || navigation.ownerDocument;
if (!doc) { return; }
var anchors = [].slice.call(doc.querySelectorAll('a'))
var result = anchors.reduce(function(prev, curr, i) {
var match = curr.innerText.match(/\s*Inbox\s*\((\d+)\)[^\d]*/)
if (match) return match;
else return prev;
}, null);
if (result && result[1]) {
window.fluid.dockBadge = result[1];
}
}
@dserodio
Copy link

Does this still work? I'll buy Fluid App if it does, but wanted to check first. Thanks.

@dserodio
Copy link

I bought Fluid App and verified it still works. Thanks a lot.

@jguernon
Copy link

Be aware that if you are not in english you have to change line 16
ex.: in french it will be ->
16. var match = curr.innerText.match(/\s_Boîte de réception\s_((\d+))[^\d]*/)

@rcourtna
Copy link

If you are using Priority Inbox, which reports in the format ($countPriorityUnread : $countOtherUnread), you want the badge to only report the unread priority emails, and you also don't want the badge to report "0", then change line 16:

var match = curr.innerText.match(/\s*Inbox\s*\(([1-9][0-9]*) : \d+\)*/)

@piranha
Copy link

piranha commented Jan 2, 2016

Just in case anybody looks at this: loop at line 15 is really inefficient and something like this will eat much less CPU.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment