From d4691ce8c3a35b5c2d20a3c109b7239318a4a18f Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Tue, 8 Feb 2011 10:43:22 +0100 Subject: [PATCH] Some Google Buzz support --- social_wok.user.js | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/social_wok.user.js b/social_wok.user.js index 03a499b..8625642 100644 --- a/social_wok.user.js +++ b/social_wok.user.js @@ -85,6 +85,7 @@ var social = function() { var cssrules = '.social '; cssrules += '{display:block;border:2px inset black;height:auto;padding:0;font-size:90%;line-height:1;margin:0}'; cssrules += '.invisible {display:none}'; + cssrules += '.social.logo {vertical-align:top}'; cssrules += '.social.logo {padding:0;margin:0 auto;display:inline-block;border:2px lightblue}'; cssrules += '.social.logo.inactive {border-style:outset}'; cssrules += '.social.logo.active {border-style:inset}'; @@ -365,9 +366,60 @@ var social = function() { } }; + this.buzz = new function() { + + this.gen_style = function() { + var cssrules = '.social.logo.buzz {border:2px solid transparent;display:inline-block}'; + cssrules += '.buzz .counter {background-image: url("http://www.gstatic.com/buzz/api/images/buzz-counter-long.png")}'; + cssrules += '.buzz .counter {background-origin: padding-box;background-position:0 0;background-size: auto}'; + cssrules += '.buzz .counter {background-clip: border-box;background-attachment:scroll}'; + cssrules += '.buzz .counter {color:black;font-family:sans-serif;font-weight:700;font-size:11px}'; + cssrules += '.buzz .counter {display:inline-block;margin:0;padding:0;text-align:center;text-decoration:none}'; + cssrules += '.buzz .counter {padding-left:58px;width:94px;height:18px;line-height:18px}'; + cssrules += '.buzz .counter .value {width:32px;text-align:center;line-height:18px}'; + create_style(cssrules); + }; + + this.process = function(linkidx, data) { + var url = unsafeWindow.social.permalink[linkidx]; + var count = 0; + for (var link in data) { + if (opera && opera.postError) { + opera.postError("link: " + link + ", datum: " + data[link]); + } + count += data[link]; + } + if (count == 0) + return; + + var buzz = doc.createElement('a'); + buzz.setAttribute('class', 'social logo buzz'); + buzz.setAttribute('title', 'Buzz on '+url); + buzz.setAttribute('href', 'http://www.google.com/buzz/post?url=' + encodeURIComponent(url.replace(/localhost\/~oblomov\/wok/g,'wok.oblomov.eu'))); + + unsafeWindow.social.permalink_parent[linkidx].appendChild(buzz); + buzz.innerHTML = '' + count + ''; + } + + this.load = function(linkidx) { + var url = unsafeWindow.social.permalink[linkidx]; + unsafeWindow.social.buzz['process_' + linkidx] = function(data) { + unsafeWindow.social.buzz.process(linkidx, data); + } + var wokloc = url.replace(/localhost\/~oblomov\/wok/g,'wok.oblomov.eu'); + var callback = 'window.social.buzz.process_' + linkidx; + var cb_enc = escape(callback); + + var burl = 'http://www.google.com/buzz/api/buzzThis/buzzCounter?url='+ + encodeURI(wokloc) + '&callback=' + cb_enc + '&cache=' + Math.floor(Math.random()*1024*1024); + load_script(burl); + } + } + this.gen_style(); this.friendfeed.gen_style(); this.twitter.gen_style(); + this.buzz.gen_style(); this.collect = function() { /* we don't need stuff like //div[contains(concat(' ',normalize-space(@class),' '),' foo ')] @@ -395,6 +447,7 @@ var social = function() { for (var i=0; i < this.permalink.length; ++i) { unsafeWindow.social.friendfeed.load(i); unsafeWindow.social.twitter.load(i); + unsafeWindow.social.buzz.load(i); } } }; -- 2.32.0.93.g670b81a890