This user script adds a third way to display games in the store view at https://gog.com/games. It works by downloading the entire catalogue data from gog and putting it in a generic angular.js grid control. This way, all the sorting and filtering can be done at client side, which greatly improves performance for the end user (although maybe not so for gog servers :)). The download size of the whole data is ~3MB.
- Displays all games in a single grid (no more pages!)
- Sorting and filtering by (in any combination):
- Bestselling rank
- Title
- Sub-genres
- Tags
- Developer/publisher
- Release year
- Operating system(s)
- User rating
- Discount
- Current price
- Option to filter out DLCs
- Option to filter out owned games
- Integration with wishlist/cart from the store, with a separate tab added for viewing (and sorting) your wishlist
- A blacklist of games that will be excluded from all searches
- Grid state (column widths, visibility, filters and blacklist) are saved in browser local storage between sessions
- Option to save and load the grid configuration (including blacklist) either to transfer your blacklist between browsers/devices, or to save your favorite filter setups
- Option to view the grid in full screen width
- The game rank comes from 'all-time bestselling' list
- Genre filters support both limiting the search to certain sub-genres, or excluding them from the results. In both cases, multiple genres can be selected in either OR (default) or AND mode.
- Numeric filters (rank, year, rating, discount, price) support the following values:
- a single specific number, eg. year "1995"
- a range of numbers (including both ends), eg. years "1990-2000"
- operator-value pairs, eg. discount ">=75", price "<10"
- combinations of the above for combining filters (joined with OR), eg. rating "0 >=4" that includes games both unrated and rated 4 stars or more
- For the price filter, the 0.01 rounding is taken into account when filtering, eg. both "10" and ">=10" filters will include 9.99 priced games.
- TBA games have their price internally set to -1 for purposes of sorting and filtering. Use "0.1-10" range filter instead of "<10" operator filter if you want to exclude free/TBA games from your searches (doesn't affect 'On Sale' tab, as free/TBA games are never discounted).
- Similarly, unrated games have their rating internally set to 0.
- Thumbnail images can be turned on from 'Title' column's menu
- Blacklist is stored in local browser cache; to use the same list in another browser and/or device, use the save and load buttons below the grid.
- Blacklist is mutually exclusive with wishlist and cart. Blacklisting a game removes it from wishlist and cart, and vice-versa: adding a game to wishlist or cart removes it from blacklist.
Promo IDs: With their switch to a new catalog page and API (and inclusion of tags), GOG removed promo ID codes from API results. With the script now using the new API, promo ID links on discounted games are not available by default. However, as the old API is still active, it is possible to download the old data containing promo IDs manually. A button for that is available in the 'Discount' column menu. After pressing it, all discount values in the grid should change into active links to the games' respective promo pages.
It is possible for the catalogue data download to cause the infamous 'wrong gog_lc cookie' (aka. 'Why my gog page is now in different language/currency?!?') bug. If that happens, add something to cart, go to checkout and back to fix. Or, if you are savvy with your browser's developer tools, manually edit gog_lc cookie to a correct value.
The script requires either GreaseMonkey or TamperMonkey plugin in your browser. Once it's installed, navigate to the goggamesdatagridview.user.js file and click the 'Raw' button to add the script, or use this direct link.