Page 1 of 9 123 ... LastLast
Results 1 to 20 of 170
  1. #1
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346

    SteamTray - games in a tray - from Steam etc. etc.

    Hi, I'm not Troy Mclure and yet you may remember me as the guy who keeps trying to make a Game Launcher/Manager - and mostly failing to get it to work as he wants it to!

    Well, I sort-of gave up and just carved-out the bit of it which launched my Steam Games from the System Tray and there's a (Windows only atm) Alpha version for people to try

    Moreover, I chose YOU - yes YOU who's reading this and no-one else - to try it! How lucky is that!?

    Explainationything here

    http://slides.com/trjp/what-is-steamtray/live

    Repo with an alpha release to try/source-code here

    https://github.com/shrewdlogarithm/steamtray

    Gratuitous pictures of it are in this Imgur Album

    I'm obviously soliciting a couple of things

    1 - does it even work at all (just 3 files to unzip - no need to install but it creates some folders so put it somewhere tidy!)
    2 - does it find your Steam install and profile data (your profile MUST be public for this to work)
    3 - does anyone care if it does those things - is it something you'd want to use?

    I have loads of ideas but let's start with the basics eh?
    Last edited by trjp; 04-01-2015 at 11:28 PM.

  2. #2
    Network Hub
    Join Date
    Jan 2013
    Location
    Belgium
    Posts
    467
    Quote Originally Posted by trjp View Post
    I'm obviously soliciting a couple of things

    1 - does it even work at all (just 3 files to unzip - no need to install but it creates some folders so put it somewhere tidy!)
    2 - does it find your Steam install and profile data (your profile MUST be public for this to work)
    3 - does anyone care if it does those things - is it something you'd want to use?

    I have loads of ideas but let's start with the basics eh?
    Alas:

    Code:
    Uncaught node.js Error 
    
    
    Error: ENOENT, no such file or directory 'c:\program files (x86)\steam\userdata\24239640\config\shortcuts.vdf'
        at Error (native)
        at Object.fs.openSync (fs.js:441:18)
        at Object.fs.readFileSync (fs.js:307:15)
        at file:///C:/Users/jurgen/AppData/Local/Temp/nw10652_7527/mods/steamload.js:43:34
    etc, etc

    24239640 is your Steam ID, I believe - guess it's still hardcoded in one last place :)

  3. #3
    Secondary Hivemind Nexus somini's Avatar
    Join Date
    Jun 2011
    Location
    NEuro Troika Franchulate #3
    Posts
    4,900
    Quote Originally Posted by trjp View Post
    2 - does it find your Steam install and profile data (your profile MUST be public for this to work)
    Nhee. Is that hard to get this info from the local installation?
    Steam(shots), Imgur, Flickr, Bak'laag, why do you forsake me?

  4. #4
    Network Hub
    Join Date
    Jan 2013
    Location
    Belgium
    Posts
    467
    Quote Originally Posted by somini View Post
    Nhee. Is that hard to get this info from the local installation?
    It is if you want to cover all versions and localizations of Windows :). Also, better to use the official steam API, neh?

  5. #5
    Secondary Hivemind Nexus somini's Avatar
    Join Date
    Jun 2011
    Location
    NEuro Troika Franchulate #3
    Posts
    4,900
    Quote Originally Posted by Jurple View Post
    It is if you want to cover all versions and localizations of Windows :). Also, better to use the official steam API, neh?
    Wow, steam has an API? In that case disregard my comment.
    Steam(shots), Imgur, Flickr, Bak'laag, why do you forsake me?

  6. #6
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by somini View Post
    Nhee. Is that hard to get this info from the local installation?
    Impossible - your 'playtime' is not stored on your PC anywhere I can find. The only way to get it, is from your profile.

    I could and should offer a version of the site which dispenses with 'Time Played' (last play date IS stored locally) perhaps - for people with private profiles (why do people do that?)
    Last edited by trjp; 11-12-2014 at 04:30 PM.

  7. #7
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by Jurple View Post
    It is if you want to cover all versions and localizations of Windows :). Also, better to use the official steam API, neh?
    If I used the API rather than the Community XML feed, it still couldn't see your games if your profile was private unless it was YOUR API key and not mine.

    e.g. if you're willing to sign-up (it's free) for an API key and use that, then it could download your info without making your profile public (I think - I've not tried this but that's the theory)

    Can't see everyone wanting to sign-up to the API thing just to get a list of games tho, can you?

    Updated the above to be a bit clearer
    Last edited by trjp; 12-12-2014 at 03:41 AM. Reason: Clarity

  8. #8
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by Jurple View Post
    Alas:

    Code:
    Uncaught node.js Error 
    
    
    Error: ENOENT, no such file or directory 'c:\program files (x86)\steam\userdata\24239640\config\shortcuts.vdf'
        at Error (native)
        at Object.fs.openSync (fs.js:441:18)
        at Object.fs.readFileSync (fs.js:307:15)
        at file:///C:/Users/jurgen/AppData/Local/Temp/nw10652_7527/mods/steamload.js:43:34
    etc, etc

    24239640 is your Steam ID, I believe - guess it's still hardcoded in one last place :)
    That's some development code which shouldn't stop the thing from working (it's experimental code to parse non-Steam shortcuts - the App doesn't use those YET but will soon)

    I'll breakpoint around it in the next build which will be downloadable from the same place (but with a later timestamp) SOON (Github is NOT a quick thing to upload to)

    Exactly what I needed testing tho so thanks!

    *drums fingers*

    *stops drumming them - it's uploaded AND my laptop is back so I can finally test on a clean PC!*
    Last edited by trjp; 11-12-2014 at 04:29 PM.

  9. #9
    Network Hub
    Join Date
    Jan 2013
    Location
    Belgium
    Posts
    467
    Runs cleanly now, but, er,

    2014-12-11 18_15_54-SteamTray.jpg

    (hope that's legible)

    the 'Most played' sorting seems to list your games :)

    Latest played, on the other hand, matches my memory - possibly because that uses only local data.

    And 'All Games' may contain both sets - I don't own Trainz Simulator 12, while you don't own Hexcells Infinity (I think).

  10. #10
    Secondary Hivemind Nexus sabrage's Avatar
    Join Date
    Jun 2011
    Location
    GMT-7
    Posts
    3,587
    It's funny you made this... I was just considering using my Steam tray icon to launch all my games, just using my 5 most recently played until I beat them to clear my backlog. King of Fighters would never leave it, so I'd rotate through the remaining 4.

  11. #11
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by Jurple View Post
    Runs cleanly now, but, er,

    2014-12-11 18_15_54-SteamTray.jpg

    (hope that's legible)

    the 'Most played' sorting seems to list your games :)

    Latest played, on the other hand, matches my memory - possibly because that uses only local data.

    And 'All Games' may contain both sets - I don't own Trainz Simulator 12, while you don't own Hexcells Infinity (I think).
    I do own Hexcells Infinity but it's her indoors playing and she's only just started with it so that is pretty much my 'most played' list.

    If I can't determine your Steam 'id' the code uses mine instead rather than crashing - I've tried something cleverer in the latest build which is now uploaded - should track down your iD and thus your games (if your profile is public).

    If this doesn't work I'll resort to your Steam hash/64-bit iD thing which I think I an use instead (I'm testing that on my laptop as soon as it's setup)

    Thanks again for the feedback
    Last edited by trjp; 11-12-2014 at 10:07 PM.

  12. #12
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by sabrage View Post
    It's funny you made this... I was just considering using my Steam tray icon to launch all my games, just using my 5 most recently played until I beat them to clear my backlog. King of Fighters would never leave it, so I'd rotate through the remaining 4.
    I did something like that - I want to expand on the 'Unplayed' thing with this tho, at the moment it chooses games you've no playtime/last played on 'at random' (if you change the sort to/from Unplayed - the list changes every time)

    Another issue to solve is removing 'non games' - e.g. DLCs and stuff like that. Believe it or not tho, there's no completely clear-cut way to determine that from Steam itself so I think we might have to combine a Category (e.g. "To Play") and the "Unplayed" sort thingy to get that working perhaps...

    Then I need to address 'Non-Steam' games (e.g. shortcuts) and custom game images (you can change the 'grid' image for a game within Steam itself)

  13. #13
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Just to tease some other ideas which are a bit further-off/more work etc.

    We could record playtime against 'Shortcut' (Non-Steam) games if people (even if you don't launch them from SteamTray, so long as it's running and they're not MMOs with fancy launcher thingys)

    I designed the 'Game Info' bit to be pluggable - so you could add stuff like 'Stream this' buttons or 'Tweet my progress' buttons (a game diary or running review if you like) or anything people fancied having next to their most played/currently playing games

    The whole thing is HTML/CSS/jQuery/Node.js and it's entire appearance is stylable of course - skins and modules could make it look any way you wanted it to - if only there was a decent standard for doing thus stuff, I've just "rolled my own" module system for now (yes I know about module.js but it just doesn't really work for this sort of thing) :(
    Last edited by trjp; 11-12-2014 at 10:22 PM.

  14. #14
    Secondary Hivemind Nexus sabrage's Avatar
    Join Date
    Jun 2011
    Location
    GMT-7
    Posts
    3,587
    Not working here.
    Code:
    Uncaught node.js Error
    
    Error: Invalid XML:  
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Steam Community :: undefined</title> 
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/motiva_sans.css?v=F3z3QpekjE2f" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/buttons.css?v=Xy5JRP4fHCzl" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/shared_global.css?v=g23zTtKDenXL" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/globalv2.css?v=wAsTV8BUjGW_" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/skin_1/profilev2.css?v=m3NpOeYiX8N9" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/motiva_sans.css?v=F3z3QpekjE2f" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/skin_1/header.css?v=quvm2wU5yG0p" rel="stylesheet" type="text/css" >
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/prototype-1.7.js?v=.55t44gwuwgvw"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/scriptaculous/_combined.js?v=9XVsa_Ni33oN&amp;l=english&amp;load=effects,controls,slider,dragdrop"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/global.js?v=c4Ko3rbJWBU_&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/jquery-1.11.1.min.js?v=.isFTSRckeNhC"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/shared/javascript/tooltip.js?v=.nCjeRtNcVhbG"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/shared/javascript/shared_global.js?v=KqqAj6iHAKAI&amp;l=english"></script>
    <script type="text/javascript">$J = jQuery.noConflict();
    if ( typeof JSON != 'object' || !JSON.stringify || !JSON.parse ) { document.write( "<scr" + "ipt type=\"text\/javascript\" src=\"http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/json2.js?v=pmScf4470EZP&amp;l=english\"><\/script>\n" ); };
    </script><script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/modalContent.js?v=XZKI05CNhf-y&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/modalv2.js?v=HsicoS9FYYTz&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/profile.js?v=9YFHynOvSl3z&amp;l=english"></script>
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-33779068-1']);
      _gaq.push(['_setSampleRate', '0.4']);
      _gaq.push(['_setCustomVar', 1, 'Logged In', 'false', 2]);
      _gaq.push(['_setCustomVar', 2, 'Client Type', 'External', 2]);
      _gaq.push(['_setCustomVar', 3, 'Cntrlr', 'profiles', 3]);
      _gaq.push(['_setCustomVar', 4, 'Method', "profiles\/DefaultAction", 3]);
      _gaq.push(['_trackPageview']);
      _gaq.push(['_setSessionCookieTimeout', 900000]);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
    <script type="text/javascript"> 
    g_rgProfileData = {"url":"http:\/\/steamcommunity.com\/id\/undefined\/","steamid":"76561197975903595","personaname":"undefined"}; 
    </script> 
    </head> 
    <body class="flat_page profile_page"> 
    
    <!-- header bar, contains info browsing user if logged in --> 
    
    <div id="global_header"> 
    <div class="content"> 
    
    <div class="logo"> 
    <span id="logo_holder"> 
    <a href="http://store.steampowered.com/"> 
    <img src="http://steamcommunity-a.akamaihd.net/public/images/header/globalheader_logo.png" width="176" height="44" border="0" alt="Steam Logo" /> 
    </a> 
    </span> 
    <!--[if lt IE 7]> 
    <style type="text/css"> 
    #logo_holder img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); } 
    #logo_holder { display: inline-block; width: 176px; height: 44px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://steamcommunity-a.akamaihd.net/public/images/header/globalheader_logo.png'); } 
    </style> 
    <![endif]--> 
    </div> 
    
    <div style="position: absolute; left: 200px;" id="supernav"> 
    <a class="menuitem supernav" href="http://store.steampowered.com/" data-tooltip-content=" 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/&quot;>Featured</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/explore/&quot;>Explore</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/curators/&quot;>Curators</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/my/wishlist/&quot;>Wishlist</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/news/&quot;>News</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/stats/&quot;>STATS</a> 
    "> 
    STORE	</a> 
    
    
    <a class="menuitem supernav" style="display: block" href="http://steamcommunity.com/" data-tooltip-content=" 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/&quot;>Home</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/discussions/&quot;>DISCUSSIONS</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/workshop/&quot;>Workshop</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/greenlight/&quot;>Greenlight</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/market/&quot;>Market</a> 
    "> 
    
    Community	</a> 
    
    
    
    
    <a class="menuitem" href="http://store.steampowered.com/about/"> 
    ABOUT	</a> 
    
    <a class="menuitem" href="http://support.steampowered.com/"> 
    SUPPORT	</a> 
    </div> 
    <script type="text/javascript"> 
    jQuery(document).ready(function($) {  
    $('.tooltip').v_tooltip(); 
    $('.supernav').v_tooltip({'location':'bottom', 'tooltipClass': 'supernav_content', 'offsetY':-4, 'offsetX': 1, 'horizontalSnap': 4, 'tooltipParent': '#supernav', 'correctForScreenSize': false}); 
    }); 
    </script> 
    <div id="global_actions"> 
    <div id="global_action_menu"> 
    
    <div class="header_installsteam_btn header_installsteam_btn_green"> 
    <div class="header_installsteam_btn_leftcap"></div> 
    <div class="header_installsteam_btn_rightcap"></div> 
    <a class="header_installsteam_btn_content" href="http://store.steampowered.com/about/"> 
    Install Steam	</a> 
    </div> 
    <a class="global_action_link" href="https://steamcommunity.com/login/home/?goto=id%2Fundefined">Login</a> 
    &nbsp;|&nbsp; 
    <span class="pulldown global_action_link" id="language_pulldown" onclick="ShowMenu( this, 'language_dropdown', 'right' );">Language</span> 
    <div class="popup_block" id="language_dropdown" style="display: none;"> 
    <div class="shadow_ul"></div><div class="shadow_top"></div><div class="shadow_ur"></div><div class="shadow_left"></div><div class="shadow_right"></div><div class="shadow_bl"></div><div class="shadow_bottom"></div><div class="shadow_br"></div> <div class="popup_body popup_menu shadow_content"> 
    <a class="popup_menu_item tight" href="?l=bulgarian">Български (Bulgarian)</a> 
    <a class="popup_menu_item tight" href="?l=czech">čeština (Czech)</a> 
    <a class="popup_menu_item tight" href="?l=danish">Dansk (Danish)</a> 
    <a class="popup_menu_item tight" href="?l=dutch">Nederlands (Dutch)</a> 
    <a class="popup_menu_item tight" href="?l=finnish">Suomi (Finnish)</a> 
    <a class="popup_menu_item tight" href="?l=french">Français (French)</a> 
    <a class="popup_menu_item tight" href="?l=german">Deutsch (German)</a> 
    <a class="popup_menu_item tight" href="?l=greek">Ελληνικά (Greek)</a> 
    <a class="popup_menu_item tight" href="?l=hungarian">Magyar (Hungarian)</a> 
    <a class="popup_menu_item tight" href="?l=italian">Italiano (Italian)</a> 
    <a class="popup_menu_item tight" href="?l=japanese">日本語 (Japanese)</a> 
    <a class="popup_menu_item tight" href="?l=koreana">한국어 (Korean)</a> 
    <a class="popup_menu_item tight" href="?l=norwegian">Norsk (Norwegian)</a> 
    <a class="popup_menu_item tight" href="?l=polish">Polski (Polish)</a> 
    <a class="popup_menu_item tight" href="?l=portuguese">Português (Portuguese)</a> 
    <a class="popup_menu_item tight" href="?l=brazilian">Português-Brasil (Portuguese-Brazil)</a> 
    <a class="popup_menu_item tight" href="?l=romanian">Română (Romanian)</a> 
    <a class="popup_menu_item tight" href="?l=russian">Русский (Russian)</a> 
    <a class="popup_menu_item tight" href="?l=schinese">简体中文 (Simplified Chinese)</a> 
    <a class="popup_menu_item tight" href="?l=spanish">Español (Spanish)</a> 
    <a class="popup_menu_item tight" href="?l=swedish">Svenska (Swedish)</a> 
    <a class="popup_menu_item tight" href="?l=tchinese">繁體中文 (Traditional Chinese)</a> 
    <a class="popup_menu_item tight" href="?l=thai">ไทย (Thai)</a> 
    <a class="popup_menu_item tight" href="?l=turkish">Türkçe (Turkish)</a> 
    <a class="popup_menu_item tight" href="?l=ukrainian">Українська (Ukrainian)</a> 
    <a class="popup_menu_item tight" href="http://translation.steampowered.com" target="_blank">Help us translate Steam</a> 
    </div> 
    </div> 
    </div> 
    </div> 
    
    
    
    </div> 
    
    </div> 
    
    
    <div id="modalBG" style="display: none"></div><script type="text/javascript"> 
    g_sessionID = "NjgzMDY1NzI4"; 
    g_steamID = false; 
    $J( InitMiniprofileHovers ); 
    $J( InitEmoticonHovers ); 
    
    $J( function() { 
    window.BindCommunityTooltip = function( $Selector ) { $Selector.v_tooltip( {'tooltipClass': 'community_tooltip', 'dataName': 'communityTooltip' } ); }; 
    BindCommunityTooltip( $J('[data-community-tooltip]') ); 
    }) 
    
    $J( function() { InitEconomyHovers( "http:\/\/steamcommunity-a.akamaihd.net\/public\/css\/skin_1\/economy.css?v=XcfZ5xWhVkVA", "http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/economy_common.js?v=1LohOdoSLPYI&l=english", "http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/economy.js?v=M84babicCd9c&l=english" );});</script><!-- /header bar --> 
    <div class="no_header profile_page private_profile"> 
    
    <div class="profile_header_bg"> 
    
    
    <div class="profile_header_bg_texture"> 
    
    <div class="profile_header"> 
    
    <div class="profile_header_content"> 
    
    <div class="playerAvatar profile_header_size offline"> 
    <img src="http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/fe/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg"> 
    </div> 
    <div class="profile_header_badgeinfo"> 
    <div class="profile_header_actions"> 
    </div> 
    </div> 
    
    <div class="profile_header_summary"> 
    <div class="persona_name" style="font-size: 24px;"> 
    undefined	<span class="namehistory_link" onclick="ShowAliasPopup( this );"> 
    <img id="getnamehistory_arrow" src="http://steamcommunity-a.akamaihd.net/public/images/skin_1/arrowDn9x5.gif" width="9" height="5" border="0"> 
    </span> 
    <div id="NamePopup" class="popup_block_new" style="display: none;"> 
    <div class="popup_body popup_menu"> 
    <div>This user has also played as:</div> 
    <div id="NamePopupAliases"> 
    
    </div> 
    </div> 
    </div> 
    </div> 
    <div class="profile_private_info"> 
    This profile is private.	</div> 
    </div> 
    
    </div> 
    </div> 
    </div> 
    </div> 
    <div class="profile_content"> 
    <div class="profile_content_inner"> 
    <div class="profile_leftcol"> 
    &nbsp; 
    </div> 
    <div class="profile_rightcol"> 
    </div> 
    </div> 
    </div> 
    </div> 
    
    
    <div id="footer_spacer"></div> 
    <div id="footer"> 
    <div class="footer_content"> 
    <span id="footerLogo"><img src="http://steamcommunity-a.akamaihd.net/public/images/skin_1/footerLogo_valve.png" width="96" height="26" border="0" alt="Valve Logo" /></span> 
    <span id="footerText"> 
    &copy; Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries.<br/>Some geospatial data on this website is provided by <a target="_blank" href="https://steamcommunity.com/linkfilter/?url=http://www.geonames.org">geonames.org</a>.	<br> 
    <span class="valve_links"> 
    <a href="http://store.steampowered.com/privacy_agreement/" target="_blank">Privacy Policy</a> | <a href="http://www.valvesoftware.com/legal.htm" target="_blank">Legal</a> | <a href="http://store.steampowered.com/subscriber_agreement/" target="_blank">Steam Subscriber Agreement</a>
    </span> 
    
    </span> 
    </div> 
    </div> 
    </body> 
    </html>
        at Error (native)
        at Function.x.extend.error (file:///D:/Temp/nw5580_12929/lib/jquery-2.0.2.min.js:4:3552)
        at Function.x.extend.parseXML (file:///D:/Temp/nw5580_12929/lib/jquery-2.0.2.min.js:4:4018)
        at loadgamesfromXML (file:///D:/Temp/nw5580_12929/mods/steamload.js:92:22)
        at getgamesXML (file:///D:/Temp/nw5580_12929/mods/steamload.js:88:13)
        at Object.my.loadVDFs (file:///D:/Temp/nw5580_12929/mods/steamload.js:71:9)
        at file:///D:/Temp/nw5580_12929/mods/steamload.js:46:20
        at ChildProcess.<anonymous> (D:\Temp\nw5580_12929\node_modules\winreg\lib\registry.js:374:7)
        at ChildProcess.EventEmitter.emit (events.js:107:17)
        at maybeClose (child_process.js:991:16)

  15. #15
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Quote Originally Posted by sabrage View Post
    Not working here.
    Code:
    Uncaught node.js Error
    
    
    
    Error: Invalid XML:  
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Steam Community :: undefined</title> 
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> 
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/motiva_sans.css?v=F3z3QpekjE2f" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/buttons.css?v=Xy5JRP4fHCzl" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/shared_global.css?v=g23zTtKDenXL" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/globalv2.css?v=wAsTV8BUjGW_" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/skin_1/profilev2.css?v=m3NpOeYiX8N9" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/shared/css/motiva_sans.css?v=F3z3QpekjE2f" rel="stylesheet" type="text/css" >
    <link href="http://steamcommunity-a.akamaihd.net/public/css/skin_1/header.css?v=quvm2wU5yG0p" rel="stylesheet" type="text/css" >
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/prototype-1.7.js?v=.55t44gwuwgvw"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/scriptaculous/_combined.js?v=9XVsa_Ni33oN&amp;l=english&amp;load=effects,controls,slider,dragdrop"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/global.js?v=c4Ko3rbJWBU_&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/jquery-1.11.1.min.js?v=.isFTSRckeNhC"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/shared/javascript/tooltip.js?v=.nCjeRtNcVhbG"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/shared/javascript/shared_global.js?v=KqqAj6iHAKAI&amp;l=english"></script>
    <script type="text/javascript">$J = jQuery.noConflict();
    if ( typeof JSON != 'object' || !JSON.stringify || !JSON.parse ) { document.write( "<scr" + "ipt type=\"text\/javascript\" src=\"http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/json2.js?v=pmScf4470EZP&amp;l=english\"><\/script>\n" ); };
    </script><script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/modalContent.js?v=XZKI05CNhf-y&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/modalv2.js?v=HsicoS9FYYTz&amp;l=english"></script>
    <script type="text/javascript" src="http://steamcommunity-a.akamaihd.net/public/javascript/profile.js?v=9YFHynOvSl3z&amp;l=english"></script>
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(['_setAccount', 'UA-33779068-1']);
      _gaq.push(['_setSampleRate', '0.4']);
      _gaq.push(['_setCustomVar', 1, 'Logged In', 'false', 2]);
      _gaq.push(['_setCustomVar', 2, 'Client Type', 'External', 2]);
      _gaq.push(['_setCustomVar', 3, 'Cntrlr', 'profiles', 3]);
      _gaq.push(['_setCustomVar', 4, 'Method', "profiles\/DefaultAction", 3]);
      _gaq.push(['_trackPageview']);
      _gaq.push(['_setSessionCookieTimeout', 900000]);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
    <script type="text/javascript"> 
    g_rgProfileData = {"url":"http:\/\/steamcommunity.com\/id\/undefined\/","steamid":"76561197975903595","personaname":"undefined"}; 
    </script> 
    </head> 
    <body class="flat_page profile_page"> 
    
    <!-- header bar, contains info browsing user if logged in --> 
    
    <div id="global_header"> 
    <div class="content"> 
    
    <div class="logo"> 
    <span id="logo_holder"> 
    <a href="http://store.steampowered.com/"> 
    <img src="http://steamcommunity-a.akamaihd.net/public/images/header/globalheader_logo.png" width="176" height="44" border="0" alt="Steam Logo" /> 
    </a> 
    </span> 
    <!--[if lt IE 7]> 
    <style type="text/css"> 
    #logo_holder img { filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); } 
    #logo_holder { display: inline-block; width: 176px; height: 44px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://steamcommunity-a.akamaihd.net/public/images/header/globalheader_logo.png'); } 
    </style> 
    <![endif]--> 
    </div> 
    
    <div style="position: absolute; left: 200px;" id="supernav"> 
    <a class="menuitem supernav" href="http://store.steampowered.com/" data-tooltip-content=" 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/&quot;>Featured</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/explore/&quot;>Explore</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/curators/&quot;>Curators</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/my/wishlist/&quot;>Wishlist</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/news/&quot;>News</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://store.steampowered.com/stats/&quot;>STATS</a> 
    "> 
    STORE    </a> 
    
    
    <a class="menuitem supernav" style="display: block" href="http://steamcommunity.com/" data-tooltip-content=" 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/&quot;>Home</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/discussions/&quot;>DISCUSSIONS</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/workshop/&quot;>Workshop</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/greenlight/&quot;>Greenlight</a> 
    <a class=&quot;submenuitem&quot; href=&quot;http://steamcommunity.com/market/&quot;>Market</a> 
    "> 
    
    Community    </a> 
    
    
    
    
    <a class="menuitem" href="http://store.steampowered.com/about/"> 
    ABOUT    </a> 
    
    <a class="menuitem" href="http://support.steampowered.com/"> 
    SUPPORT    </a> 
    </div> 
    <script type="text/javascript"> 
    jQuery(document).ready(function($) {  
    $('.tooltip').v_tooltip(); 
    $('.supernav').v_tooltip({'location':'bottom', 'tooltipClass': 'supernav_content', 'offsetY':-4, 'offsetX': 1, 'horizontalSnap': 4, 'tooltipParent': '#supernav', 'correctForScreenSize': false}); 
    }); 
    </script> 
    <div id="global_actions"> 
    <div id="global_action_menu"> 
    
    <div class="header_installsteam_btn header_installsteam_btn_green"> 
    <div class="header_installsteam_btn_leftcap"></div> 
    <div class="header_installsteam_btn_rightcap"></div> 
    <a class="header_installsteam_btn_content" href="http://store.steampowered.com/about/"> 
    Install Steam    </a> 
    </div> 
    <a class="global_action_link" href="https://steamcommunity.com/login/home/?goto=id%2Fundefined">Login</a> 
    &nbsp;|&nbsp; 
    <span class="pulldown global_action_link" id="language_pulldown" onclick="ShowMenu( this, 'language_dropdown', 'right' );">Language</span> 
    <div class="popup_block" id="language_dropdown" style="display: none;"> 
    <div class="shadow_ul"></div><div class="shadow_top"></div><div class="shadow_ur"></div><div class="shadow_left"></div><div class="shadow_right"></div><div class="shadow_bl"></div><div class="shadow_bottom"></div><div class="shadow_br"></div> <div class="popup_body popup_menu shadow_content"> 
    <a class="popup_menu_item tight" href="?l=bulgarian">Български (Bulgarian)</a> 
    <a class="popup_menu_item tight" href="?l=czech">čeština (Czech)</a> 
    <a class="popup_menu_item tight" href="?l=danish">Dansk (Danish)</a> 
    <a class="popup_menu_item tight" href="?l=dutch">Nederlands (Dutch)</a> 
    <a class="popup_menu_item tight" href="?l=finnish">Suomi (Finnish)</a> 
    <a class="popup_menu_item tight" href="?l=french">Français (French)</a> 
    <a class="popup_menu_item tight" href="?l=german">Deutsch (German)</a> 
    <a class="popup_menu_item tight" href="?l=greek">Ελληνικά (Greek)</a> 
    <a class="popup_menu_item tight" href="?l=hungarian">Magyar (Hungarian)</a> 
    <a class="popup_menu_item tight" href="?l=italian">Italiano (Italian)</a> 
    <a class="popup_menu_item tight" href="?l=japanese">日本語 (Japanese)</a> 
    <a class="popup_menu_item tight" href="?l=koreana">한국어 (Korean)</a> 
    <a class="popup_menu_item tight" href="?l=norwegian">Norsk (Norwegian)</a> 
    <a class="popup_menu_item tight" href="?l=polish">Polski (Polish)</a> 
    <a class="popup_menu_item tight" href="?l=portuguese">Português (Portuguese)</a> 
    <a class="popup_menu_item tight" href="?l=brazilian">Português-Brasil (Portuguese-Brazil)</a> 
    <a class="popup_menu_item tight" href="?l=romanian">Română (Romanian)</a> 
    <a class="popup_menu_item tight" href="?l=russian">Русский (Russian)</a> 
    <a class="popup_menu_item tight" href="?l=schinese">简体中文 (Simplified Chinese)</a> 
    <a class="popup_menu_item tight" href="?l=spanish">Español (Spanish)</a> 
    <a class="popup_menu_item tight" href="?l=swedish">Svenska (Swedish)</a> 
    <a class="popup_menu_item tight" href="?l=tchinese">繁體中文 (Traditional Chinese)</a> 
    <a class="popup_menu_item tight" href="?l=thai">ไทย (Thai)</a> 
    <a class="popup_menu_item tight" href="?l=turkish">Türkçe (Turkish)</a> 
    <a class="popup_menu_item tight" href="?l=ukrainian">Українська (Ukrainian)</a> 
    <a class="popup_menu_item tight" href="http://translation.steampowered.com" target="_blank">Help us translate Steam</a> 
    </div> 
    </div> 
    </div> 
    </div> 
    
    
    
    </div> 
    
    </div> 
    
    
    <div id="modalBG" style="display: none"></div><script type="text/javascript"> 
    g_sessionID = "NjgzMDY1NzI4"; 
    g_steamID = false; 
    $J( InitMiniprofileHovers ); 
    $J( InitEmoticonHovers ); 
    
    $J( function() { 
    window.BindCommunityTooltip = function( $Selector ) { $Selector.v_tooltip( {'tooltipClass': 'community_tooltip', 'dataName': 'communityTooltip' } ); }; 
    BindCommunityTooltip( $J('[data-community-tooltip]') ); 
    }) 
    
    $J( function() { InitEconomyHovers( "http:\/\/steamcommunity-a.akamaihd.net\/public\/css\/skin_1\/economy.css?v=XcfZ5xWhVkVA", "http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/economy_common.js?v=1LohOdoSLPYI&l=english", "http:\/\/steamcommunity-a.akamaihd.net\/public\/javascript\/economy.js?v=M84babicCd9c&l=english" );});</script><!-- /header bar --> 
    <div class="no_header profile_page private_profile"> 
    
    <div class="profile_header_bg"> 
    
    
    <div class="profile_header_bg_texture"> 
    
    <div class="profile_header"> 
    
    <div class="profile_header_content"> 
    
    <div class="playerAvatar profile_header_size offline"> 
    <img src="http://cdn.akamai.steamstatic.com/steamcommunity/public/images/avatars/fe/fef49e7fa7e1997310d705b2a6158ff8dc1cdfeb_full.jpg"> 
    </div> 
    <div class="profile_header_badgeinfo"> 
    <div class="profile_header_actions"> 
    </div> 
    </div> 
    
    <div class="profile_header_summary"> 
    <div class="persona_name" style="font-size: 24px;"> 
    undefined    <span class="namehistory_link" onclick="ShowAliasPopup( this );"> 
    <img id="getnamehistory_arrow" src="http://steamcommunity-a.akamaihd.net/public/images/skin_1/arrowDn9x5.gif" width="9" height="5" border="0"> 
    </span> 
    <div id="NamePopup" class="popup_block_new" style="display: none;"> 
    <div class="popup_body popup_menu"> 
    <div>This user has also played as:</div> 
    <div id="NamePopupAliases"> 
    
    </div> 
    </div> 
    </div> 
    </div> 
    <div class="profile_private_info"> 
    This profile is private.    </div> 
    </div> 
    
    </div> 
    </div> 
    </div> 
    </div> 
    <div class="profile_content"> 
    <div class="profile_content_inner"> 
    <div class="profile_leftcol"> 
    &nbsp; 
    </div> 
    <div class="profile_rightcol"> 
    </div> 
    </div> 
    </div> 
    </div> 
    
    
    <div id="footer_spacer"></div> 
    <div id="footer"> 
    <div class="footer_content"> 
    <span id="footerLogo"><img src="http://steamcommunity-a.akamaihd.net/public/images/skin_1/footerLogo_valve.png" width="96" height="26" border="0" alt="Valve Logo" /></span> 
    <span id="footerText"> 
    &copy; Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries.<br/>Some geospatial data on this website is provided by <a target="_blank" href="https://steamcommunity.com/linkfilter/?url=http://www.geonames.org">geonames.org</a>.    <br> 
    <span class="valve_links"> 
    <a href="http://store.steampowered.com/privacy_agreement/" target="_blank">Privacy Policy</a> | <a href="http://www.valvesoftware.com/legal.htm" target="_blank">Legal</a> | <a href="http://store.steampowered.com/subscriber_agreement/" target="_blank">Steam Subscriber Agreement</a>
    </span> 
    
    </span> 
    </div> 
    </div> 
    </body> 
    </html>
        at Error (native)
        at Function.x.extend.error (file:///D:/Temp/nw5580_12929/lib/jquery-2.0.2.min.js:4:3552)
        at Function.x.extend.parseXML (file:///D:/Temp/nw5580_12929/lib/jquery-2.0.2.min.js:4:4018)
        at loadgamesfromXML (file:///D:/Temp/nw5580_12929/mods/steamload.js:92:22)
        at getgamesXML (file:///D:/Temp/nw5580_12929/mods/steamload.js:88:13)
        at Object.my.loadVDFs (file:///D:/Temp/nw5580_12929/mods/steamload.js:71:9)
        at file:///D:/Temp/nw5580_12929/mods/steamload.js:46:20
        at ChildProcess.<anonymous> (D:\Temp\nw5580_12929\node_modules\winreg\lib\registry.js:374:7)
        at ChildProcess.EventEmitter.emit (events.js:107:17)
        at maybeClose (child_process.js:991:16)
    That's because Steam is broken due to this Auction fiasco thing (it's returning nonsense instead of your Profile)

  16. #16
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    I've uploaded a new build - it gives more useful error messages when it can't find/read/access/load stuff - it's more patient with Steam (Sale is COMING!) - it uses a more resilient system for finding your profile (your Steam 64bit Id rather than your community handle) and it stores data in a way that's a bit less of a performance hit when you have a LOT of games...

    https://github.com/shrewdlogarithm/S...eases/tag/0.01

    I also spent a bit longer looking into the "how much can we get from the local machine" thing and it really isn't possible to determine your "Game Collection" without resorting to the Community XML feed or the WebAPI - and if you have a private profile they will both return nothing so they are much of a muchness and - frankly - the XML is quicker and easier.

    The ONLY way to get a "game collection" for someone with a private profile is for them to setup their own WebAPI key and use that - that may be something I support one day but it's not a priority (tho getting a key is free and requires you fill-in a 1-field-form so it's hardly difficult)

    I'm close to integrating shortcuts (non-steam games) - I finally figured out the arcane system used for storing their "LastPlayed" data (it's a SHA1 hash of the full executable path - OBVIOUSLY - I had to read a Russian Steam hacking site to get that worked out!) - I just want to neaten some stuff up before I roll that one out (possibly with the source-code if anyone is interested?)

    Anyone tried this with Windows 8 yet - or anyone who's not actually got a proper Community profile (they are optional and I can work without one I think) - or anyone with a MASSIVE collection (I have over 800 games and so far, no problemo) - or anyone with something else I've not thought-of yet!? :)

    Anyone actually use Steam on Mac or Linux and know enough to want to port this over (it's not complicated - the Node stuff is 2 mins work, it's just things like "finding where Steam is installed" which is a Registry hack on Windows)

    Thx again
    Last edited by trjp; 13-12-2014 at 01:40 AM.

  17. #17
    Network Hub
    Join Date
    Jan 2013
    Location
    Belgium
    Posts
    467
    Right-o. It now works without surprises, mostly :)

    • finds my games, and does so quickly
    • uses my playtimes
    • launches games when asked


    Two issues I currently see:
    • no indication whether a game is installed or not. But 'running' a game that's not installed delegates to the steam installer, so that's good.
    • Probably related to the DLC/game distinction: Civ V is absent from my most played and recently played games. I guess because I have been playing the G&K version ...


    Re Linux - I'm a bit hesitant. My JS skills date from last century :/

  18. #18
    Secondary Hivemind Nexus
    Join Date
    Jun 2011
    Posts
    6,346
    Some games (Race07) pool playtime into a single game rather than spreading it over DLCs wheras others track individually which dilutes the overall time. Check what the Client thinks your playtime is and if it's different to what I'm showing - let me know and I'll have a deeper dig.

    Neither the Community XML/API report whether a game is installed - that information is stored in the AppCache and the format and content of that is binary, not publicly documented and changes often enough to deter me from hacking-into-it (it would be guesswork)

    As for porting - the app itself shouldn't need touching, all we have to do is swap the support files, ensure we can "find" the Steam folder (and that it's content is similar to Windows obv.) and see if it 'works' on the desktop.

    What do people run Steam on in Linux terms - I think it's only certified with a small amount of releases???

  19. #19
    Secondary Hivemind Nexus somini's Avatar
    Join Date
    Jun 2011
    Location
    NEuro Troika Franchulate #3
    Posts
    4,900
    Quote Originally Posted by trjp View Post
    As for porting - the app itself shouldn't need touching, all we have to do is swap the support files, ensure we can "find" the Steam folder (and that it's content is similar to Windows obv.) and see if it 'works' on the desktop.

    What do people run Steam on in Linux terms - I think it's only certified with a small amount of releases???
    It shouldn't matter, Steam puts itself and all the games by default in
    Code:
    ~/.local/share/Steam
    . There's also
    Code:
     ~/.steam
    , which is full of symlinks
    Code:
    $ ll .steam
    total 84K
    lrwxrwxrwx 1 somini somini   25 Dec 14 12:26 bin -> /home/somini/.steam/bin32
    lrwxrwxrwx 1 somini somini   43 Dec 14 12:26 bin32 -> /home/somini/.local/share/Steam/ubuntu12_32
    lrwxrwxrwx 1 somini somini   43 Dec 14 12:26 bin64 -> /home/somini/.local/share/Steam/ubuntu12_64
    -rw-r--r-- 1 somini somini 1,8K Dec 14 12:28 registry.vdf
    -rw-r--r-- 1 somini somini  765 Jun 13  2014 registry.vdf.bak
    lrwxrwxrwx 1 somini somini   31 Dec 14 12:26 root -> /home/somini/.local/share/Steam
    lrwxrwxrwx 1 somini somini   39 Dec 14 12:26 sdk32 -> /home/somini/.local/share/Steam/linux32
    lrwxrwxrwx 1 somini somini   39 Dec 14 12:26 sdk64 -> /home/somini/.local/share/Steam/linux64
    lrwxrwxrwx 1 somini somini   31 Dec 14 12:26 steam -> /home/somini/.local/share/Steam
    -rw------- 1 somini somini 8,7K Jun 12  2014 steam_install_agreement.txt
    -rw-r--r-- 1 somini somini    5 Dec 14 12:27 steam.pid
    prw------- 1 somini somini    0 Jun 12  2014 steam.pipe
    Of course that thing of installing games in other folders works.
    Steam(shots), Imgur, Flickr, Bak'laag, why do you forsake me?

  20. #20
    Secondary Hivemind Nexus somini's Avatar
    Join Date
    Jun 2011
    Location
    NEuro Troika Franchulate #3
    Posts
    4,900
    On
    Code:
    ~/.local/share/Steam/userdata/$STEAMID/config/localconfig.vdf
    there's this
    Code:
            "Software"
            {
                    "Valve"
                    {
                            "Steam"
                            {
                                    "apps"
                                    {
                                            "70"
                                            {
                                                    "LastPlayed"            "1381777317"
                                            }
                                            "92"
                                            {
                                                    "LastPlayed"            "86400"
                                            }
                                            "219"
                                            {
                                                    "LastPlayed"            "86400"
                                            }
                                            "220"
                                            {
                                                    "LastPlayed"            "86400"
                                            }
                                            "240"
                                            {
                                                    "LastPlayed"            "1362729600"
                                            }
    and this too
    Code:
            "depots"
            {
                    "233611"
                    {
                            "CDN"
                            {
                                    "content1.steampowered.com"
                                    {
                                            "token"         "$SECRETSTUFF"
                                            "Expires"               "1408388749"
                                    }
                                    "content2.steampowered.com"
                                    {
                                            "token"         "$SECRETSTUFF"
                                            "Expires"               "1410193403"
                                    }
                            }
                    }
                    "80313"
                    {
                            "CDN"
                            {
                                    "content2.steampowered.com"
                                    {
                                            "token"         "$SECRETSTUFF"
                                            "Expires"               "1403724864"
                                    }
                            }
                    }
    I think that's all the downloaded appids, but not the installed stuff.
    Steam(shots), Imgur, Flickr, Bak'laag, why do you forsake me?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •