/j/handlerJSONFacebook.js

https://github.com/davidsonfellipe/facebook-like-check · JavaScript · 181 lines · 136 code · 45 blank · 0 comment · 9 complexity · 7ce3a773435ed8b61d6b08904ff7195e MD5 · raw file

  1. function getTableContent(response){
  2. "use strict";
  3. var html = '';
  4. $.each(response, function(index, object) {
  5. html += "<tr class='table-content'>" +
  6. "<td><a href='" + object.normalized_url + "' target='_blank'>" + object.url + "</a></td>" +
  7. "<td>" + object.like_count + "</td>" +
  8. "<td>" + object.share_count + "</td>" +
  9. "<td>" + (object.like_count + object.share_count) + "</td>" +
  10. "</tr>";
  11. });
  12. $(".table-body").append(html);
  13. }
  14. function getTableBaseOfLike(){
  15. "use strict";
  16. var html = "<table id='tablesorter' class='tablesorter'>" +
  17. " <thead>" +
  18. " <tr>" +
  19. " <th> url </th>" +
  20. " <th> likes </th>" +
  21. " <th> shares </th>" +
  22. " <th> total </th>" +
  23. " </tr>" +
  24. " </thead>" +
  25. " <tbody class='table-body'>" +
  26. " </tbody>" +
  27. "</table>";
  28. $("#result").html(html);
  29. }
  30. function clearTable(){
  31. "use strict";
  32. $("#result").html('');
  33. }
  34. function handlerJSONFacebook(response){
  35. "use strict";
  36. getTableContent(response);
  37. }
  38. function getURLFormated(urls){
  39. "use strict";
  40. urls = encodeURIComponent(urls);
  41. return "http://api.facebook.com/restserver.php?method=links.getStats&urls=%20" +
  42. urls +
  43. "&format=json&callback=handlerJSONFacebook";
  44. }
  45. function handlerXMLtoJSONSitemap(response){
  46. "use strict";
  47. var urls = "";
  48. var MAX_LINKS = 5000;
  49. var URLS_PER_REQUESTS = 100;
  50. var sequence = 0; //to control last request AJAX
  51. if(response.query.results.sitemapindex){
  52. clearTable();
  53. $("#result").html('<div class="error">sitemapindex is not supported</div>');
  54. }
  55. else if(response.query.results.urlset.url.length < MAX_LINKS){
  56. getTableBaseOfLike();
  57. var maxInterations = Math.ceil(response.query.results.urlset.url.length / URLS_PER_REQUESTS);
  58. var totalResults = response.query.results.urlset.url.length;
  59. var actualRange = 1;
  60. var url = '';
  61. if(maxInterations > 0) $(".loading").show();
  62. $.each(response.query.results.urlset.url, function(index, object) {
  63. urls += object.loc + ',';
  64. if(index === (URLS_PER_REQUESTS * actualRange - 1)){
  65. url = getURLFormated(urls);
  66. urls = '';
  67. $.ajax({
  68. url: url,
  69. dataType: "script",
  70. success: function(){
  71. sequence++;
  72. if(actualRange === sequence){
  73. $(".loading").hide();
  74. $("#tablesorter").tablesorter();
  75. }
  76. }
  77. });
  78. actualRange++;
  79. }else if(index === (totalResults - 1)){
  80. url = getURLFormated(urls);
  81. urls = '';
  82. $.ajax({
  83. url: url,
  84. dataType: "script",
  85. success: function(){
  86. sequence++;
  87. if(actualRange === sequence){
  88. $(".loading").hide();
  89. $("#tablesorter").tablesorter();
  90. }
  91. }
  92. });
  93. }
  94. });
  95. }else{
  96. clearTable();
  97. $("#result").html('<div class="error">sitemap too large or badly formatted</div>');
  98. }
  99. }
  100. $(document).ready(function(){
  101. "use strict";
  102. $('#get-info').click(function() {
  103. clearTable();
  104. var urls = encodeURIComponent($('#urls').val().replace(/(\r\n|\n|\r)/gm, ","));
  105. var amount = urls.split("%2C").length - 1;
  106. if(amount < 500){
  107. getTableBaseOfLike();
  108. var url = "http://api.facebook.com/restserver.php?method=links.getStats&urls=%20" + urls + "&format=json&callback=handlerJSONFacebook";
  109. $(".loading").show();
  110. $.ajax({
  111. url: url,
  112. dataType: "script",
  113. success: function(){
  114. $(".loading").hide();
  115. $("#tablesorter").tablesorter();
  116. }
  117. });
  118. }else{
  119. $("#result").html('<div class="error">sorry! max 500 urls</div>');
  120. }
  121. });
  122. $('.get-info-by-sitemap').click(function() {
  123. clearTable();
  124. getTableBaseOfLike();
  125. var urlSitemap = encodeURIComponent($('.sitemap-input').val());
  126. var url = 'http://query.yahooapis.com/v1/public/yql?q=select * from xml where url%3D"' + urlSitemap + '"&format=json&callback=handlerXMLtoJSONSitemap';
  127. $.getScript(url);
  128. });
  129. $('.tab', ".tabs").click(function(){
  130. $(".content",".tabs").hide()
  131. .removeClass("content-active");
  132. $($(this).attr("rel")).show()
  133. .addClass("content-active");
  134. clearTable();
  135. });
  136. });