summaryrefslogtreecommitdiff
path: root/themes/blowfish/assets/js/process.js
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2024-04-28 17:33:09 +0200
committerChristoph Cullmann <cullmann@kde.org>2024-04-28 17:33:09 +0200
commite77051ccc4b47951bfa4fde2be436b1bb2fb113b (patch)
treef0b75ee3521da9c8cd39dac4359212348f70e4e8 /themes/blowfish/assets/js/process.js
parent4b355837824ac2422d371acef790f0f4249255c7 (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.js71
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