Guest User

Untitled

a guest
Jan 13th, 2019
370
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.12 KB | None | 0 0
  1. // ==UserScript==
  2. // @name New Userscript
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description try to take over the world!
  6. // @author You
  7. // @match https://store.steampowered.com/search/
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. console.log(GameHover.toString());
  13.  
  14. GameHover = function( elem, event, divHover, rgHoverData )
  15. {
  16. if (!event) var event = window.event;
  17. var $Elem = $JFromIDOrElement(elem);
  18. var $Hover = $JFromIDOrElement(divHover);
  19. var bNewHoverSpeed = typeof ( g_bNewHoverSpeed) != 'undefined' && g_bNewHoverSpeed;
  20.  
  21. var oElemState = GetHoverState( $Elem );
  22.  
  23. if ( !$Hover.length )
  24. {
  25. $Hover = $J("\t\t<div class=\"hover game_hover\" id=\"global_hover\" style=\"display: none; left: 0; top: 0;\">\r\n\t\t\t<div class=\"game_hover_box hover_box\">\r\n\t\t\t\t<div class=\"content\" id=\"global_hover_content\">\r\n\t\t\t\t<\/div>\r\n\t\t\t<\/div>\r\n\t\t\t<div class=\"hover_arrow_left\"><\/div>\r\n\t\t\t<div class=\"hover_arrow_right\"><\/div>\r\n\t\t<\/div>");
  26. $J(document.body).append( $Hover );
  27. }
  28.  
  29. if ( g_HoverState.hiding && $Hover.is(':visible') && g_HoverState.target == $Elem[0] )
  30. {
  31. ShowWithFade( $Hover );
  32. }
  33. else if ( ( !$Hover.is(':visible') || g_HoverState.target != $Elem[0] ) && !oElemState.timer )
  34. {
  35. oElemState.bWantsHover = true;
  36. var accountId = ( typeof g_AccountID !== 'undefined' ) && !rgHoverData['public'] ? g_AccountID : 0;
  37. var bPublic = rgHoverData['public'] || accountId == 0;
  38. var strTargetPrefix = '';
  39. var strUrlTarget = '';
  40. if ( rgHoverData['type'] == 'app' )
  41. {
  42. strTargetPrefix = 'hover_app_';
  43. strUrlTarget = 'apphover' + ( bPublic ? 'public' : '' ) + '/' + rgHoverData['id'];
  44. }
  45. else if ( rgHoverData['type'] == 'sub' )
  46. {
  47. strTargetPrefix = 'hover_sub_';
  48. strUrlTarget = 'subhover' + ( bPublic ? 'public' : '' ) + '/' + rgHoverData['id'];
  49. }
  50. else if ( rgHoverData['type'] == 'bundle' )
  51. {
  52. strTargetPrefix = 'hover_bundle_';
  53. strUrlTarget = 'bundle/' + rgHoverData['id'] + '/hover' + ( bPublic ? '_public' : '' ) + '/';
  54. }
  55. else
  56. {
  57. return;
  58. }
  59.  
  60. var targetId = strTargetPrefix + rgHoverData['id'];
  61. var $HoverData = $JFromIDOrElement( targetId );
  62. var params = rgHoverData['params'] || {};
  63. var nStartHoverTime = new Date().getTime();
  64. var fnComputeHoverDelay = bNewHoverSpeed ?
  65. function() { return Math.max( 100 - ( new Date().getTime() - nStartHoverTime ), 100 );} :
  66. function() { return 20; };
  67.  
  68. if ( !$HoverData.length && !oElemState.bAjaxRequestMade )
  69. {
  70. var rgAjaxParams = { u: accountId };
  71. if ( bPublic )
  72. {
  73. // is cc needed?
  74. rgAjaxParams = { /*cc: rgHoverData['cc'],*/ l: 'english' };
  75. }
  76. if ( rgHoverData['v6'] )
  77. {
  78. rgAjaxParams['pagev6'] = true;
  79. }
  80.  
  81. window.setTimeout( function() {
  82. if ( oElemState.bWantsHover && !oElemState.bAjaxRequestMade ) {
  83. oElemState.bAjaxRequestMade = true;
  84. $J.get( 'https://store.steampowered.com/' + strUrlTarget, rgAjaxParams ).done( function( html )
  85. {
  86. var $Content = $J(html);
  87. $Content.hide();
  88. $Hover.find( '.content' ).append( $Content );
  89. ShowGameHover( $Elem, $Hover, targetId, params, fnComputeHoverDelay() );
  90. } );
  91. }
  92. }, bNewHoverSpeed ? 5 : 75 );
  93. }
  94. if ( !oElemState.timer )
  95. {
  96. oElemState.timer = window.setTimeout(function () {
  97. oElemState.timer = false;
  98. oElemState.bReadyForHover = true;
  99. ShowGameHover( $Elem, $Hover, targetId, params, fnComputeHoverDelay() );
  100. }, bNewHoverSpeed ? 10 : 150 );
  101. }
  102. }
  103.  
  104. }
  105.  
  106. ShowGameHover = function( elem, divHover, targetContent, params, speed )
  107. {
  108. console.log(speed);
  109. var $Elem = $JFromIDOrElement( elem );
  110. var $Hover = $JFromIDOrElement( divHover );
  111. var $Target = $JFromIDOrElement( targetContent );
  112.  
  113. var oElemState = GetHoverState( $Elem );
  114.  
  115. if ( !$Target.length || !oElemState.bWantsHover || !oElemState.bReadyForHover || !$J.contains( document, $Elem[0] ) )
  116. return;
  117.  
  118. $Target.siblings().hide();
  119. $Target.show();
  120.  
  121. g_HoverState.target = $Elem[0];
  122.  
  123. var $Toparea = $Target.find( '.hover_top_area' );
  124. if ( params && params.top_area_content )
  125. {
  126. $Toparea.html( params.top_area_content );
  127. $Toparea.show();
  128. }
  129. else if ( $Toparea.length )
  130. {
  131. $Toparea.hide();
  132. }
  133.  
  134. // "show" the hover, but not "visible", letting us do some positioning
  135. $Hover.css( 'visibility', 'hidden' ).show();
  136.  
  137. var $HoverBox = $Hover.find( '.hover_box' );
  138. var $HoverArrowLeft = $Hover.find( '.hover_arrow_left' );
  139. var $HoverArrowRight = $Hover.find( '.hover_arrow_right' );
  140.  
  141. var offset = $Elem.offset();
  142. var nWindowScrollTop = $J(window).scrollTop();
  143. var nWindowScrollLeft = $J(window).scrollLeft();
  144. var nViewportWidth = $J(window).width();
  145. var nViewportHeight = $J(window).height();
  146.  
  147. var nHoverPositionLeft, nHoverPositionTop;
  148.  
  149. var $HoverArrow = $HoverArrowLeft;
  150. var boxRightViewport = ( offset.left - nWindowScrollLeft ) + $Elem.outerWidth() + $HoverBox.width() + 14;
  151. var nSpaceRight = nViewportWidth - boxRightViewport;
  152. var nSpaceLeft = offset.left - $Hover.width();
  153. if( nSpaceLeft < -10 && nSpaceRight < -10 )
  154. {
  155. //no room at all
  156. $Hover.hide().css('visibility','');
  157. return; //skip showing the hover
  158. }
  159. else if ( nSpaceRight < 14 && nSpaceLeft > nSpaceRight )
  160. {
  161. nHoverPositionLeft = offset.left - $Hover.outerWidth() + 8;
  162. $HoverArrow = $HoverArrowRight;
  163. $HoverArrowLeft.hide();
  164. $HoverArrowRight.show();
  165. }
  166. else
  167. {
  168. nHoverPositionLeft = offset.left + $Elem.outerWidth() - 8;
  169. $HoverArrowLeft.show();
  170. $HoverArrowRight.hide();
  171. }
  172.  
  173. var nTopAdjustment = -13;
  174. if ( $Elem.height() < 63 )
  175. nTopAdjustment = Math.floor( $Elem.height() ) / 2 - 56;
  176. nHoverPositionTop = offset.top + nTopAdjustment;
  177. $Hover.offset( {top: nHoverPositionTop, left: nHoverPositionLeft} );
  178.  
  179. var nTargetTopViewport = ( offset.top - nWindowScrollTop ) + nTopAdjustment;
  180. if ( nTargetTopViewport + $HoverBox.height() + 8 > nViewportHeight )
  181. {
  182. var nViewportAdjustment = ( $HoverBox.height() + 8 ) - ( nViewportHeight - nTargetTopViewport );
  183.  
  184. nViewportAdjustment = Math.min( $HoverBox.height() - 74, nViewportAdjustment );
  185. var nViewportAdjustedHoverTop = offset.top - nViewportAdjustment;
  186. $Hover.css( 'top', nViewportAdjustedHoverTop + 'px' );
  187.  
  188. $HoverArrow.css( 'top', ( 48 + nHoverPositionTop - nViewportAdjustedHoverTop ) + 'px' );
  189. }
  190. else
  191. {
  192. $HoverArrow.css( 'top', '' );
  193. }
  194.  
  195. $Hover.hide();
  196. $Hover.css( 'visibility', '' );
  197.  
  198. ShowWithFade( $Hover, 10 );
  199.  
  200. }
  201. HideGameHover = function( elem, event, divHover )
  202. {
  203.  
  204. var $Elem = $JFromIDOrElement( elem );
  205. var $Hover = $JFromIDOrElement( divHover );
  206.  
  207. var oElemState = GetHoverState( $Elem );
  208.  
  209. if ( !$Hover.length )
  210. return;
  211.  
  212. if (!event) var event = window.event;
  213. var reltarget = $J( (event.relatedTarget) ? event.relatedTarget : event.toElement );
  214. if ( reltarget.length && $J.contains( $Elem[0], reltarget[0] ) )
  215. return;
  216.  
  217. if ( oElemState.timer )
  218. {
  219. window.clearTimeout( oElemState.timer );
  220. oElemState.timer = false;
  221. }
  222. oElemState.bWantsHover = false;
  223. oElemState.bReadyForHover = false;
  224.  
  225. HideWithFade( divHover, 20 );
  226.  
  227. }
  228. })();
Advertisement
Add Comment
Please, Sign In to add comment