Advertisement
omkelderman

YouTube subscriber-counter

Jun 4th, 2013
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.76 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>YouTube subscriber-counter</title>
  6. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
  7. <script type="text/javascript" charset="utf-8">
  8. String.prototype.reverse=(function(){return this.split("").reverse().join("");});
  9.  
  10. var prompt_ = (function(msg,defaultText) {
  11.     result = prompt(msg,defaultText);
  12.     if(result==null) {
  13.         result = defaultText;
  14.     }
  15.     return result;
  16. });
  17.  
  18.  
  19. var ytchannel = prompt_('YouTube-channel name:', 'CaptainSparklez');
  20. var thousands_separator = prompt_("Thousands-separator", ' ');
  21. var update_interval = prompt_('Update interval (ms)', 1000);
  22. var yt_api_url = "http://gdata.youtube.com/feeds/api/users/"+ytchannel+"?v=2&alt=json";
  23.  
  24.  
  25.  
  26. function formatNumber(num) {
  27.     return num.toString().reverse().match(/.{1,3}/g).join(thousands_separator).reverse();
  28. }
  29.  
  30.  
  31. $( document ).ready( function() {
  32.     var $body = $('body');
  33.     var $number = $('#number');
  34.     var $name = $('#name');
  35.     var interval = 0;
  36.    
  37.     $name.text(ytchannel + ":");
  38.    
  39.     var resize = function() {
  40.         var bodyWidth = $body.width();
  41.         var size = 0;
  42.         do {
  43.             size += 1;
  44.             $number.css('font-size', size + 'px');
  45.         } while($number.width() < bodyWidth-10);
  46.         $name.css('font-size', Math.round(size/7) + 'px');
  47.         $number.css('margin-left', '-' + Math.round($number.width()/2) + 'px');
  48.         $number.css('margin-top', '-' + Math.round($number.height()/2) + 'px');
  49.         $name.css('margin-top', (Math.round($number.offset().top)) + 'px');
  50.     }
  51.  
  52.     var refreshSubcount = (function() {
  53.         $.getJSON(yt_api_url, function(data) {
  54.             subcount = data.entry.yt$statistics.subscriberCount;
  55.             $number.text(formatNumber(subcount));
  56.             resize();
  57.         });
  58.     });
  59.    
  60.     function toggleInterval(e) {
  61.         event.preventDefault();
  62.         if(interval) {
  63.             $body.addClass('pause');
  64.             clearInterval(interval);
  65.             interval = 0;
  66.         } else {
  67.             $body.removeClass('pause');
  68.             refreshSubcount();
  69.             interval = setInterval(refreshSubcount, update_interval);
  70.         }
  71.         window.getSelection().removeAllRanges();
  72.     }
  73.     toggleInterval();
  74.     $(window).resize(resize);
  75.     $body.dblclick(toggleInterval);
  76. });
  77. </script>
  78. <style type="text/css">
  79. * {
  80.     margin: 0px;
  81.     padding: 0px;
  82.     font-family: Verdana, Geneva, sans-serif;
  83. }
  84.  
  85. body {
  86.     background-color: black;
  87.     color: white;
  88.     cursor: pointer;
  89. }
  90.  
  91. body.pause {
  92.     color: #222;
  93. }
  94.  
  95. #name {
  96.     text-align: center;
  97.     text-decoration: underline;
  98. }
  99.  
  100. #number {
  101.     font-weight: bold;
  102.     top: 50%;
  103.     left: 50%;
  104.     position: absolute;
  105.     margin-top: -65px;
  106.     margin-left: 0px;
  107.     white-space: nowrap;
  108. }
  109. </style>
  110. </head>
  111. <body class="pause">
  112.     <div id="name"></div>
  113.     <div id="number">Loading....</div>
  114. </body>
  115. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement