Advertisement
_dk

steamsearchunfuck.user.js

_dk
Jan 13th, 2019
777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         steam search unfuck
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  try to take over the world!
  6. // @author       javascript olofmeister
  7. // @match        *://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
Advertisement