Bigger Twitch

Removes the left nav bar entirely and stretches the twitch player to use as much space as possible.

  1. // ==UserScript==
  2. // @name Bigger Twitch
  3. // @author Remos
  4. // @version 1.09
  5. // @description Removes the left nav bar entirely and stretches the twitch player to use as much space as possible.
  6. // @include http://*.twitch.tv/*
  7. // @include http://twitch.tv/*
  8. // @include http://*.twitch.tv/*/c/*
  9. // @include http://*.twitch.tv/*/b/*
  10. // @exclude http://www.twitch.tv/
  11. // @exclude http://www.twitch.tv/*/profile
  12. // @exclude http://www.twitch.tv/settings
  13. // @exclude http://www.twitch.tv/settings/*
  14. // @exclude http://www.twitch.tv/directory
  15. // @exclude http://www.twitch.tv/directory/*
  16. // @exclude http://www.twitch.tv/*/chat?popout=
  17. // @exclude http://www.twitch.tv/*/popout
  18. // @exclude http://www.twitch.tv/*/dashboard
  19. // @exclude http://www.twitch.tv/inbox*
  20. // @exclude http://www.twitch.tv/subscriptions*
  21. // @exclude http://store.twitch.tv
  22. // @exclude http://api.twitch.tv/*
  23. // @exclude https://api.twitch.tv/*
  24. // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
  25. // @grant GM_addStyle
  26. // @grant GM_getValue
  27. // @grant GM_setValue
  28. // @copyright 2014, Remos
  29. // @run-at document-end
  30. // @icon https://monkeyguts.com/icon/288.png
  31. // @namespace 41229d0298d2565bc814c34b46b9158b
  32. // ==/UserScript==
  33.  
  34. // Icons used from http://icomoon.io/
  35.  
  36. GM_addStyle("#left_col.bigttv { visibility: hidden !important; display: none; }");
  37. GM_addStyle("#main_col.bigttv { margin-left: 0px !important; }");
  38. GM_addStyle(".ember-view.ember-chat.bigttv { min-width: 0px !important; }");
  39. GM_addStyle(".player-column #player.bigttv, .archive_site_player_container.bigttv, .target-player.bigttv { position: fixed !important; top: 0px !important; left: 0px !important; z-index: 99999; }");
  40. GM_addStyle(".bigttv-button.bigttv-contract { background-image: url(data:image/png;base64,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); }");
  41. GM_addStyle(".bigttv-button { cursor: pointer; position: absolute; bottom: 0px; left: 160px; padding: 3px; width: 21px; height: 21px; background-repeat: no-repeat; background-position: 3px; background-size: 18px; background-image: url(data:image/png;base64,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); }");
  42. GM_addStyle(".archive_site_player_container .bigttv-button { left: 265px }");
  43. GM_addStyle(".js-new-channel-ad { visibility: hidden !important; display: none; }");
  44.  
  45. GM_addStyle("#bigttv-settings { position: absolute; z-index: 999999; padding: 10px; background-color: #fff; width: 150px; height: 60px; position: absolute; top: 50%; left: 50%; margin-left: -86px; margin-top: -41px; border: 1px solid #777; border-radius: 5px; }");
  46. GM_addStyle("#bigttv-settings span { font-size: 11px; color: #555; }");
  47. GM_addStyle("#bigttv-chatwidth { width: 144px; font-size: 12px; padding: 2px; border: 1px solid #ccc; margin-bottom: 5px; border-radius: 2px; }");
  48. GM_addStyle("#bigttv-label { float: left; font-size: 10px; font-weight: normal; }");
  49. GM_addStyle("#bigttv-auto { position: relative; top: 3px; margin-right: 3px; }");
  50. GM_addStyle("#bigttv-settingsbutton { float: right; padding: 1px 10px; font-size: 12px; background-color: #5cb85c; border: 1px solid #4cae4c; color: #fff; }");
  51.  
  52. GM_addStyle("#channel.bigttv { padding: 0 }");
  53.  
  54. GM_addStyle(".target-player { position: relative; }");
  55.  
  56. var chatWidth = GM_getValue('chatwidth', 340);
  57.  
  58. var biggerttvEnabled = false;
  59. var selfTriggered = false;
  60. var currentPlayer;
  61.  
  62. function updateSizes(player) {
  63. player = (typeof player === 'undefined') ? currentPlayer : player;
  64.  
  65. var columnVisible = $('#right_col').is(':visible');
  66. if(biggerttvEnabled) {
  67. var windowWidth = $(window).width();
  68. var windowHeight = $(window).height();
  69. var playerWidth = windowWidth;
  70.  
  71. if(columnVisible)
  72. playerWidth = windowWidth - chatWidth;
  73.  
  74. //$('#player, .archive_site_player_container, .target-player').attr('style', 'height: ' + windowHeight + 'px !important; width: ' + playerWidth + 'px !important;');
  75. $(player).attr('style', 'height: ' + windowHeight + 'px !important; width: ' + playerWidth + 'px !important;');
  76. $('[id$=flash-player], #archive_site_player_flash').attr('style', 'height: 100% !important; width: 100% !important; visibility: inherit !important');
  77. if(columnVisible)
  78. $('#main_col').css('margin-right', chatWidth);
  79. else
  80. $('#main_col').css('margin-right', 0);
  81. $('#main_col').width('auto');
  82.  
  83. $('#right_col').width(chatWidth);
  84. $('#right_col').width(chatWidth);
  85. $('#right_nav').parent().width(chatWidth);
  86. $('#right_nav').width(chatWidth - 19);
  87. $('#chat').width(chatWidth);
  88. $('.js-new-channel-ad').width(chatWidth);
  89.  
  90. currentPlayer = player;
  91. } else {
  92. currentPlayer = null;
  93.  
  94. $(player).attr('style', '');
  95.  
  96. var resetChatWidth = 340;
  97. if(!columnVisible && !$('#right_col').hasClass('ember-view'))
  98. resetChatWidth = 0;
  99. $('#right_col').width(resetChatWidth);
  100. $('#chat').width(340);
  101. $('#main_col').css('margin-right', '');
  102.  
  103. selfTriggered = true;
  104. window.dispatchEvent(new Event('resize'));
  105. selfTriggered = false;
  106. }
  107. }
  108.  
  109. var safetyTimer;
  110.  
  111. function toggleBigger(enable, target) {
  112. if(typeof enable != 'boolean')
  113. enable = !biggerttvEnabled;
  114. biggerttvEnabled = enable;
  115.  
  116. var player = typeof target === 'undefined' ? $('#player, .archive_site_player_container, .target-player') : $(target).parent();
  117.  
  118. if(player.length === 0)
  119. return;
  120.  
  121. if(enable)
  122. safetyTimer = setTimeout(toggleBigger, 500, enable);
  123. else
  124. clearTimeout(safetyTimer);
  125.  
  126. $('#channel').toggleClass('bigttv', enable);
  127. $('#main_col').toggleClass('bigttv', enable);
  128. $('#left_col').toggleClass('bigttv', enable);
  129. $('.ember-view.ember-chat').toggleClass('bigttv', enable);
  130.  
  131. $(player).toggleClass('bigttv', enable);
  132. //$('#player, .archive_site_player_container').toggleClass('bigttv', enable);
  133.  
  134. $('.bigttv-button').toggleClass('bigttv-contract', enable);
  135.  
  136. updateSizes(player);
  137. }
  138.  
  139.  
  140. function createSettingsWindow() {
  141. var settingswindow = $(
  142. '<div id="bigttv-settings">' +
  143. '<span>Set chat width</span>' +
  144. '<form action="#"><input id="bigttv-chatwidth" type="number" min="0" step="1" />' +
  145. '<label id="bigttv-label"><input id="bigttv-auto" type="checkbox" />Auto-activate</label>' +
  146. '<input type="submit" id="bigttv-settingsbutton" value="Save"></form>' +
  147. '</div>'
  148. );
  149. $('body').prepend(settingswindow);
  150. $('#bigttv-settings').hide();
  151.  
  152. $('#bigttv-settings form').submit(function(e) {
  153. var newWidth = $('#bigttv-chatwidth').val();
  154. if($.isNumeric(newWidth)) {
  155. chatWidth = parseInt(newWidth);
  156. GM_setValue('chatwidth', chatWidth);
  157. updateSizes();
  158. }
  159. GM_setValue('autoactivate', $('#bigttv-auto').prop('checked'));
  160.  
  161. $('#bigttv-settings').hide();
  162.  
  163. e.preventDefault();
  164. return false;
  165. });
  166. }
  167.  
  168. function showSettingsWindow() {
  169. $('#bigttv-chatwidth').val(GM_getValue('chatwidth', 340));
  170. $('#bigttv-auto').prop('checked', GM_getValue('autoactivate', false));
  171.  
  172. $('#bigttv-settings').show();
  173. }
  174.  
  175. function createButton() {
  176. var button = $('<a title="Right click to set chat width." class="bigttv-button bigttv-expand"> </a>');
  177. button.unbind().click(function(e) {
  178. if(e.which == 1) {
  179. toggleBigger(null, e.target);
  180. return false;
  181. }
  182. }).on('contextmenu', function(e) {
  183. showSettingsWindow($(e.target).parent());
  184. return false;
  185. });
  186.  
  187. return button;
  188. }
  189.  
  190. $(createSettingsWindow);
  191.  
  192. var resizeTimer;
  193. $(window).resize(function() {
  194. if(selfTriggered)
  195. return;
  196. clearTimeout(resizeTimer);
  197. resizeTimer = setTimeout(updateSizes, (typeof BTTVLOADED === 'undefined') ? 0 : 1500);
  198. });
  199.  
  200. function addButton(items) {
  201. items.each(function(index) {
  202. if($(this).has('.bigttv-button').length === 0)
  203. $(this).append(createButton());
  204. });
  205. }
  206.  
  207. var findPlayerInterval = setInterval(function() {
  208. var elems = $('#player:not(.bigttv-loaded), .archive_site_player_container:not(.bigttv-loaded), .target-player:not(.bigttv-loaded)');
  209. if(elems.length > 0) {
  210. elems.toggleClass('bigttv-loaded', true);
  211. addButton(elems);
  212. if(GM_getValue('autoactivate', false)) {
  213. $(function() { toggleBigger(true, elems); });
  214. }
  215. }
  216. }, 300);