JamBrain icon indicating copy to clipboard operation
JamBrain copied to clipboard

Filter games by platform

Open AndreasHae opened this issue 6 years ago • 13 comments

It would be nice to have the ability to filter games by available platforms. For example, I as a Linux user have to click through games manually to find games I can play and rate. A platform filter would simplify that process.

AndreasHae avatar Apr 25 '18 09:04 AndreasHae

It appears to be this endpoint https://api.ldjam.com/vx/node/feed/#####/smart+parent/item/game/compo+jam?limit=24 that would need to support it

Frozenfire92 avatar Apr 25 '18 22:04 Frozenfire92

Can you get me off from the email list? I don't wanna get over 30 emails in a day. There is no ang option on website.

26 Nis 2018 Per 01:14 tarihinde Joel Kuntz [email protected] şunu yazdı:

It appears to be this endpoint https://api.ldjam.com/vx/node/feed/#####/smart+parent/item/game/compo+jam?limit=24 https://api.ldjam.com/vx/node/feed/#%23%23%23%23/smart+parent/item/game/compo+jam?limit=24 that would need to support it

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ludumdare/ludumdare/issues/1638#issuecomment-384451008, or mute the thread https://github.com/notifications/unsubscribe-auth/AiEiMZtRRSZJyf-zoTw1rLMvUk2UMTyIks5tsPVRgaJpZM4TjFij .

MahtanSirfalas avatar Apr 26 '18 03:04 MahtanSirfalas

That's your GitHub settings. At the bottom of the e-mail is a mute link.

Mike Kasprzak

On 25 April 2018 at 23:11, MahtanSirfalas [email protected] wrote:

Can you get me off from the email list? I don't wanna get over 30 emails in a day. There is no ang option on website.

26 Nis 2018 Per 01:14 tarihinde Joel Kuntz [email protected] şunu yazdı:

It appears to be this endpoint https://api.ldjam.com/vx/node/feed/#####/smart+parent/item/ game/compo+jam?limit=24 https://api.ldjam.com/vx/node/feed/#%23%23%23%23/smart+parent/item/game/compo+jam?limit=24 <https://api.ldjam.com/vx/node/feed/#%23%23%23%23/smart+ parent/item/game/compo+jam?limit=24> that would need to support it

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <https://github.com/ludumdare/ludumdare/issues/1638# issuecomment-384451008>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AiEiMZtRRSZJyf- zoTw1rLMvUk2UMTyIks5tsPVRgaJpZM4TjFij>

.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ludumdare/ludumdare/issues/1638#issuecomment-384499333, or mute the thread https://github.com/notifications/unsubscribe-auth/ABf2CQV2dW1qLTYX9pC8lI5J0pqby5svks5tsTrMgaJpZM4TjFij .

mikekasprzak avatar Apr 26 '18 03:04 mikekasprzak

@Frozenfire92 take a look at https://github.com/ludumdare/ludumdare/blob/master/src/com/content-games/filter.js and how the other filters work there. Basically you would need to have the list of platforms and an All option and then build relevant filter depending on it and integrate with all existing dropdowns... I think.

local-minimum avatar Apr 26 '18 15:04 local-minimum

I found that someone create a website for this. Here is the [link]

I create a userscript to help me filter games. download [here]

The API is this one ( ##### = Game ID)

https://api.ldjam.com/vx/node/get/#####+#####+#####+#####.....

you can find platform in the response => node => meta => link-##-tag

Each time it fetches 24 games
node[0~23].meta.link-01-tag = 42332
node[0~23].meta.link-02-tag = 42336
node[0~23].meta.link-03-tag = #####
node[0~23].meta.link-04-tag = #####
(##### = Platform ID)

And here is the platform list

https://api.ldjam.com/vx/tag/get/platform

Response:

{ ...,
"tag":[{"id":42332,"slug":"source-code","name":"Source code","icon":"file-text"},
{"id":42336,"slug":"html5-web","name":"HTML5 (web)","icon":"html5"},
{"id":42337,"slug":"microsoft-windows","name":"Windows","icon":"windows"},
{"id":42339,"slug":"apple-mac","name":"macOS","icon":"apple"},
{"id":42341,"slug":"linux","name":"Linux","icon":"linux"},
...}

So I use userscript to hook the request, check each link-0x-tag, match them with platform ID, add different "class" to each blocks and filter them by platform.

crs38c28 avatar Apr 30 '18 11:04 crs38c28

True, that would work as an intermediate solution, but there should be a way to build the request so that you only get the right games from start.

local-minimum avatar May 01 '18 06:05 local-minimum

There is also this site: http://tmtg.nl/ld41/index.php

ajayyy avatar May 06 '18 15:05 ajayyy

I tried to find what this is a duplicate of without finding it.

local-minimum avatar May 01 '19 11:05 local-minimum

@crs38c28 I couldn't make your userscript work with TamperMonkey, more exactly I installed the script which showed the platform filter panel correctly, but clicking on Update did nothing, all the games still show normally. I couldn't see anything special in the debug console.

I tried with both LD41 and LD45 (after replacing "41" with "*" in the url match pattern at the top of the script).

hsandt avatar Oct 09 '19 19:10 hsandt

So looking at the code, one would need to modify public-api/nx/node.php to recognize the request parameters and then modify src/shrub/src/node/node_feed.php to make it possible to pass platform info to the nodeFeed_GetBy* functions.

I'm wondering if it wouldn't be a good idea to make some kind of NodeFeedConfig class and fill it with values, instead of having a function that takes 8 parameters. Or maybe re-write this functionality to some kind of NodeFeedFetcher class, where the calling code would set the class properties and then call ->fetch() when done.

suve avatar Oct 12 '19 11:10 suve

Is it already implemented into the actual website? Because I can't find the filter

pfoof avatar Apr 20 '20 10:04 pfoof

I made a userscript to detect HTML5 game : https://ldjam.com/events/ludum-dare/46/rescue-turtles-1/displays-border-if-game-is-html5-or-not

A-312 avatar Apr 20 '20 12:04 A-312

@pfoof It's disabled at the moment but I did managed to get the new filter code is merged in on Saturday. I need to run a script on all the data to convert the format first, then test it some more. Hopefully it's live soon, but my focus right now is trying to make sure we survive Submission Hour this evening.

mikekasprzak avatar Apr 20 '20 14:04 mikekasprzak