Now that you mention it, yeah, there is a more direct way. And now I feel stupid for not knowing you can execute js in console directly. I was fixated on the game cell because that is what you need to hide for filtering. I did not understand the method with the game grid. The links are under title game_link ready for grabbing.
For doing it manually, that would already work. Grab the collections, merge the files, format them together in a css and import the css in something like Stylus.
But there is bad news as well. It will not work like this, if you have dynamic loading on (infinity scroll). The css will be ignored for the dynamically loaded content of second page. {display:none !important} or {opacity:0.07 !important} deals with infity scroll.
@-moz-document url-prefix("https://itch.io/games") { div.game_cell:has(a[href="grabbed link"]) { display: none !important}
var uniqueHrefContents = new Set(); var games = document.getElementsByClassName("title game_link"); for (var i=0;i<games.length;i+=1) { if (!uniqueHrefContents.has(games[i].href)) { uniqueHrefContents.add('div.game_cell:has(a[href="'+games[i].href+'"]) { display: none !important}'); } } var combinedHrefContents = Array.from(uniqueHrefContents).join('\n'); var blob = new Blob([combinedHrefContents], { type: 'text/plain' }); var a = document.createElement('a'); a.href = window.URL.createObjectURL(blob); a.download = 'unique_href_contents.txt'; a.click();
This does the stringing for the css already, but obviously saved data for appending new items should not include those.
And maybe the "data-game_id" could be used, instead of the link to the game. That looks like it is a counter that is a lower number for old games. But I guess you can not retrieve games by it, only recognise them again for filtering. And that number is way shorter than a link, so css filtering might be slightly faster. For human inspection, the game title or complete link should still be saved though.