From 77e2100b07cdba443e2c25c71f96154c590ccead Mon Sep 17 00:00:00 2001 From: Burak Ozdemir Date: Fri, 13 Oct 2017 01:00:53 +0300 Subject: [PATCH] Always add trailing slash to Pinterest URL. --- dist/jquery.floating-social-share.min.js | 2 +- package.json | 2 +- src/jquery.floating-social-share.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/jquery.floating-social-share.min.js b/dist/jquery.floating-social-share.min.js index a410579..6d01489 100644 --- a/dist/jquery.floating-social-share.min.js +++ b/dist/jquery.floating-social-share.min.js @@ -1 +1 @@ -!function($,window,document,undefined){"use strict";function Plugin(element,options){this.element=element,this.settings=$.extend({},defaults,options),this._defaults=defaults,this._name=pluginName,this.init()}function openPopUp(url,title,width,height){var w=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,h=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,left=w/2-width/2+10,top=h/2-height/2+50;window.open(url,title,"scrollbars=yes, width="+width+", height="+height+", top="+top+", left="+left).focus()}function title_case(str){return str.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()})}function shorten(num){return num>=1e9?(num/1e9).toFixed(1).replace(/\.0$/,"")+"G":num>=1e6?(num/1e6).toFixed(1).replace(/\.0$/,"")+"M":num>=1e3?(num/1e3).toFixed(1).replace(/\.0$/,"")+"K":num}function setMobileCss(objects){$.each(objects,function(){isMobile?($(this).css("width",100/objects.length+"%"),$(this).removeClass("with-counter-desktop")):($(this).removeAttr("style"),$(this).find("span.shareCount").length>0&&$(this).addClass("with-counter-desktop"))})}function checkPlacePosition($child,position,element,extraOffset){if(isMobile===!1&&$.inArray(position,["content-right","content-left"])!=-1){var initialOffset="content-right"===position?element.offsetWidth:-75;$child.css("margin-left",initialOffset+extraOffset)}else $child.css("margin-left",0)}function getWidth(){return window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width}function updateIsMobile(){var mobile=getWidth()<961;return"undefined"!=typeof isMobile&&(isMobile=mobile),mobile}function appendButtons(count,$component){count&&count>0&&($component.append($("",{class:"shareCount"}).append(shorten(count))).removeClass("without-counter"),isMobile===!1&&$component.addClass("with-counter-desktop"))}function issetOrZero(fn){var value;try{value=fn()}catch(e){value=0}return value}function setShareCount(network,url,$component,twitter_counter){switch(network){case"facebook":$.getJSON("https://graph.facebook.com/?id="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.share.share_count}),$component)});break;case"linkedin":$.getJSON("https://www.linkedin.com/countserv/count/share?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"odnoklassniki":$.getJSON("https://connect.ok.ru/dk?st.cmd=extLike&ref="+url+"&callback=?",function(){}),window.ODKL=window.ODKL||{},window.ODKL.updateCount=function(index,count){appendButtons(count,$component)};break;case"pinterest":$.getJSON("https://api.pinterest.com/v1/urls/count.json?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"reddit":$.getJSON("https://www.reddit.com/api/info.json?url="+url+"&jsonp=?",function(response){appendButtons(issetOrZero(function(){return response.data.children[0].data.score}),$component)});break;case"tumblr":$.getJSON("https://api.tumblr.com/v2/share/stats?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.response.note_count}),$component)});break;case"twitter":1==twitter_counter&&$.getJSON("https://opensharecount.com/count.json?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"vk":$.getJSON("https://vk.com/share.php?act=count&index=1&url="+url+"&callback=?",function(){}),window.VK=window.VK||{},window.VK.Share=window.VK.Share||{},window.VK.Share.count=function(index,count){appendButtons(count,$component)};break;default:return-1}}var pluginName="floatingSocialShare",defaults={place:"top-left",counter:!0,twitter_counter:!1,buttons:["facebook","twitter","google-plus"],title:document.title,url:window.location.href,description:$('meta[name="description"]').attr("content")||"",media:$('meta[property="og:image"]').attr("content")||"",text:{default:"share with:"},text_title_case:!1,popup:!0,popup_width:400,popup_height:300,extra_offset:15},isMobile=updateIsMobile();$.extend(Plugin.prototype,{init:function(){$.inArray(this.settings.place,places)==-1&&(this.settings.place=this._defaults.place);var base=this,$template=$("
",{id:"floatingSocialShare"}),$child=$("
",{class:this.settings.place}).appendTo($template),_text_default=base.settings.text.default||base.settings.text;$.each(this.settings.buttons,function(index,value){var v=networks[value],$icon=$(v.icon),_href=v.url.replace("{url}",encodeURIComponent(base.settings.url)).replace("{title}",encodeURIComponent(base.settings.title)).replace("{description}",encodeURIComponent(base.settings.description)).replace("{media}",encodeURIComponent(base.settings.media)),_text_value=base.settings.text[value]||_text_default+value,_text_output=base.settings.text_title_case?title_case(_text_value):_text_value,$component=$("",{title:base.settings.title,class:value+" pop-upper"}).attr("href",_href).attr("title",_text_output).attr("target","_blank").append($icon).addClass("without-counter");base.settings.counter===!0&&setShareCount(value,encodeURI(base.settings.url),$component,base.settings.twitter_counter),$child.append($component)}),$template.appendTo(this.element);var links=$(this.element).find(".pop-upper");this.settings.popup===!0&&links.on("click",function(event){event.preventDefault(),openPopUp($(this).attr("href"),$(this).attr("title"),base.settings.popup_width,base.settings.popup_height)}),setMobileCss(links),checkPlacePosition($child,base.settings.place,base.element,base.settings.extra_offset),$(window).resize(function(){setMobileCss(links),checkPlacePosition($child,base.settings.place,base.element,base.settings.extra_offset),updateIsMobile()})}});var places=["content-left","content-right","top-left","top-right"],networks={mail:{icon:"",url:"mailto:?subject={url}"},facebook:{icon:"",url:"https://www.facebook.com/sharer/sharer.php?u={url}&t={title}"},"google-plus":{icon:"",url:"https://plus.google.com/share?url={url}"},linkedin:{icon:"",url:"https://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}&summary={description}&source="},odnoklassniki:{icon:"",url:"https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl={url}"},pinterest:{icon:"",url:"https://pinterest.com/pin/create%2Fbutton/?url={url}&description={description}&media={media}"},reddit:{icon:"",url:"https://www.reddit.com/submit?url={url}&title={title}"},stumbleupon:{icon:"",url:"https://www.stumbleupon.com/submit?url={url}&title={title}"},telegram:{icon:"",url:"https://telegram.me/share/url?text={title}&url={url}"},tumblr:{icon:"",url:"https://www.tumblr.com/share/link?url={url}&name={title}&description={description}"},twitter:{icon:"",url:"https://twitter.com/home?status={title}%20{url}"},vk:{icon:"",url:"https://vk.com/share.php?url={url}&title={title}&description={description}"},whatsapp:{icon:"",url:"whatsapp://send?text={title}%20{url}"}};$.fn[pluginName]=function(options){return this.each(function(){$.data(this,"plugin_"+pluginName)||$.data(this,"plugin_"+pluginName,new Plugin(this,options))})}}(jQuery,window,document); \ No newline at end of file +!function($,window,document,undefined){"use strict";function Plugin(element,options){this.element=element,this.settings=$.extend({},defaults,options),this._defaults=defaults,this._name=pluginName,this.init()}function openPopUp(url,title,width,height){var w=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width,h=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height,left=w/2-width/2+10,top=h/2-height/2+50;window.open(url,title,"scrollbars=yes, width="+width+", height="+height+", top="+top+", left="+left).focus()}function title_case(str){return str.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()})}function shorten(num){return num>=1e9?(num/1e9).toFixed(1).replace(/\.0$/,"")+"G":num>=1e6?(num/1e6).toFixed(1).replace(/\.0$/,"")+"M":num>=1e3?(num/1e3).toFixed(1).replace(/\.0$/,"")+"K":num}function setMobileCss(objects){$.each(objects,function(){isMobile?($(this).css("width",100/objects.length+"%"),$(this).removeClass("with-counter-desktop")):($(this).removeAttr("style"),$(this).find("span.shareCount").length>0&&$(this).addClass("with-counter-desktop"))})}function checkPlacePosition($child,position,element,extraOffset){if(isMobile===!1&&$.inArray(position,["content-right","content-left"])!=-1){var initialOffset="content-right"===position?element.offsetWidth:-75;$child.css("margin-left",initialOffset+extraOffset)}else $child.css("margin-left",0)}function getWidth(){return window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width}function updateIsMobile(){var mobile=getWidth()<961;return"undefined"!=typeof isMobile&&(isMobile=mobile),mobile}function appendButtons(count,$component){count&&count>0&&($component.append($("",{class:"shareCount"}).append(shorten(count))).removeClass("without-counter"),isMobile===!1&&$component.addClass("with-counter-desktop"))}function issetOrZero(fn){var value;try{value=fn()}catch(e){value=0}return value}function setShareCount(network,url,$component,twitter_counter){switch(network){case"facebook":$.getJSON("https://graph.facebook.com/?id="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.share.share_count}),$component)});break;case"linkedin":$.getJSON("https://www.linkedin.com/countserv/count/share?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"odnoklassniki":$.getJSON("https://connect.ok.ru/dk?st.cmd=extLike&ref="+url+"&callback=?",function(){}),window.ODKL=window.ODKL||{},window.ODKL.updateCount=function(index,count){appendButtons(count,$component)};break;case"pinterest":$.getJSON("https://api.pinterest.com/v1/urls/count.json?url="+url.replace(/\/+$/,"/")+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"reddit":$.getJSON("https://www.reddit.com/api/info.json?url="+url+"&jsonp=?",function(response){appendButtons(issetOrZero(function(){return response.data.children[0].data.score}),$component)});break;case"tumblr":$.getJSON("https://api.tumblr.com/v2/share/stats?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.response.note_count}),$component)});break;case"twitter":1==twitter_counter&&$.getJSON("https://opensharecount.com/count.json?url="+url+"&callback=?",function(data){appendButtons(issetOrZero(function(){return data.count}),$component)});break;case"vk":$.getJSON("https://vk.com/share.php?act=count&index=1&url="+url+"&callback=?",function(){}),window.VK=window.VK||{},window.VK.Share=window.VK.Share||{},window.VK.Share.count=function(index,count){appendButtons(count,$component)};break;default:return-1}}var pluginName="floatingSocialShare",defaults={place:"top-left",counter:!0,twitter_counter:!1,buttons:["facebook","twitter","google-plus"],title:document.title,url:window.location.href,description:$('meta[name="description"]').attr("content")||"",media:$('meta[property="og:image"]').attr("content")||"",text:{default:"share with:"},text_title_case:!1,popup:!0,popup_width:400,popup_height:300,extra_offset:15},isMobile=updateIsMobile();$.extend(Plugin.prototype,{init:function(){$.inArray(this.settings.place,places)==-1&&(this.settings.place=this._defaults.place);var base=this,$template=$("
",{id:"floatingSocialShare"}),$child=$("
",{class:this.settings.place}).appendTo($template),_text_default=base.settings.text.default||base.settings.text;$.each(this.settings.buttons,function(index,value){var v=networks[value],$icon=$(v.icon),_href=v.url.replace("{url}",encodeURIComponent(base.settings.url)).replace("{title}",encodeURIComponent(base.settings.title)).replace("{description}",encodeURIComponent(base.settings.description)).replace("{media}",encodeURIComponent(base.settings.media)),_text_value=base.settings.text[value]||_text_default+value,_text_output=base.settings.text_title_case?title_case(_text_value):_text_value,$component=$("",{title:base.settings.title,class:value+" pop-upper"}).attr("href",_href).attr("title",_text_output).attr("target","_blank").append($icon).addClass("without-counter");base.settings.counter===!0&&setShareCount(value,encodeURI(base.settings.url),$component,base.settings.twitter_counter),$child.append($component)}),$template.appendTo(this.element);var links=$(this.element).find(".pop-upper");this.settings.popup===!0&&links.on("click",function(event){event.preventDefault(),openPopUp($(this).attr("href"),$(this).attr("title"),base.settings.popup_width,base.settings.popup_height)}),setMobileCss(links),checkPlacePosition($child,base.settings.place,base.element,base.settings.extra_offset),$(window).resize(function(){setMobileCss(links),checkPlacePosition($child,base.settings.place,base.element,base.settings.extra_offset),updateIsMobile()})}});var places=["content-left","content-right","top-left","top-right"],networks={mail:{icon:"",url:"mailto:?subject={url}"},facebook:{icon:"",url:"https://www.facebook.com/sharer/sharer.php?u={url}&t={title}"},"google-plus":{icon:"",url:"https://plus.google.com/share?url={url}"},linkedin:{icon:"",url:"https://www.linkedin.com/shareArticle?mini=true&url={url}&title={title}&summary={description}&source="},odnoklassniki:{icon:"",url:"https://connect.ok.ru/dk?st.cmd=WidgetSharePreview&st.shareUrl={url}"},pinterest:{icon:"",url:"https://pinterest.com/pin/create%2Fbutton/?url={url}&description={description}&media={media}"},reddit:{icon:"",url:"https://www.reddit.com/submit?url={url}&title={title}"},stumbleupon:{icon:"",url:"https://www.stumbleupon.com/submit?url={url}&title={title}"},telegram:{icon:"",url:"https://telegram.me/share/url?text={title}&url={url}"},tumblr:{icon:"",url:"https://www.tumblr.com/share/link?url={url}&name={title}&description={description}"},twitter:{icon:"",url:"https://twitter.com/home?status={title}%20{url}"},vk:{icon:"",url:"https://vk.com/share.php?url={url}&title={title}&description={description}"},whatsapp:{icon:"",url:"whatsapp://send?text={title}%20{url}"}};$.fn[pluginName]=function(options){return this.each(function(){$.data(this,"plugin_"+pluginName)||$.data(this,"plugin_"+pluginName,new Plugin(this,options))})}}(jQuery,window,document); \ No newline at end of file diff --git a/package.json b/package.json index 284e54c..a6324d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "jquery-floating-social-share", - "version": "2.1.0", + "version": "2.1.1", "description": "Social media share buttons with counters.", "main": "dist/jquery-floating-social-share.min.js", "repository": { diff --git a/src/jquery.floating-social-share.js b/src/jquery.floating-social-share.js index 724ab10..e968138 100644 --- a/src/jquery.floating-social-share.js +++ b/src/jquery.floating-social-share.js @@ -236,7 +236,7 @@ } break; case "pinterest": - $.getJSON("https://api.pinterest.com/v1/urls/count.json?url=" + url + "&callback=?", function(data) { + $.getJSON("https://api.pinterest.com/v1/urls/count.json?url=" + url.replace(/\/+$/, '/') + "&callback=?", function(data) { appendButtons(issetOrZero(function () { return data.count; }), $component); }); break;