diff options
author | Christoph Cullmann <cullmann@kde.org> | 2024-04-28 17:33:09 +0200 |
---|---|---|
committer | Christoph Cullmann <cullmann@kde.org> | 2024-04-28 17:33:09 +0200 |
commit | e77051ccc4b47951bfa4fde2be436b1bb2fb113b (patch) | |
tree | f0b75ee3521da9c8cd39dac4359212348f70e4e8 /themes/blowfish/assets/js/process.js | |
parent | 4b355837824ac2422d371acef790f0f4249255c7 (diff) |
use https://github.com/nunocoracao/blowfish.git
Diffstat (limited to 'themes/blowfish/assets/js/process.js')
-rw-r--r-- | themes/blowfish/assets/js/process.js | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/themes/blowfish/assets/js/process.js b/themes/blowfish/assets/js/process.js new file mode 100644 index 0000000..a91afa7 --- /dev/null +++ b/themes/blowfish/assets/js/process.js @@ -0,0 +1,71 @@ +if (typeof auth !== 'undefined') { + var viewsCollection = db.collection('views'); + var likesCollection = db.collection('likes'); + + function numberWithCommas(x) { + return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + } + + function toggleLoaders(node){ + var classesString = node.className; + if(classesString == "") return + var classes = classesString.split(" "); + for(var i in classes){ + node.classList.toggle(classes[i]) + } + } + + var update_views = function (node, id) { + viewsCollection.doc(id).onSnapshot(doc => { + var data = doc.data(); + if (data) { + node.innerText = numberWithCommas(data.views) + } else { + node.innerText = 0 + } + toggleLoaders(node) + }) + } + + var update_likes = function (node, id) { + likesCollection.doc(id).onSnapshot(doc => { + var data = doc.data(); + if (data) { + node.innerText = numberWithCommas(data.likes) + } else { + node.innerText = 0 + } + toggleLoaders(node) + + }) + } + + + auth.signInAnonymously() + .then(() => { + var views_nodes = document.querySelectorAll("span[id^='views_']") + + for (var i in views_nodes) { + var node = views_nodes[i] + var id = node.id ? node.id.replaceAll("/", "-") : node.id + if (id) { + update_views(node, id) + } + } + + var likes_nodes = document.querySelectorAll("span[id^='likes_']") + + for (var i in likes_nodes) { + var node = likes_nodes[i] + var id = node.id ? node.id.replaceAll("/", "-") : node.id + if (id) { + update_likes(node, id) + } + } + }) + .catch((error) => { + var errorCode = error.code; + var errorMessage = error.message; + console.error(errorCode, errorMessage) + }); +}
\ No newline at end of file |