lichess-org / lila

♞ lichess.org: the forever free, adless and open source chess server ♞
https://lichess.org
GNU Affero General Public License v3.0
15.62k stars 2.28k forks source link

Missing : search page for tournaments #6214

Open galuel opened 4 years ago

galuel commented 4 years ago

The Lichess way to find a tournament today is unique and does not show all tournaments : https://lichess.org/tournament

For instance if I only want to play tournaments with 3'+2" where can I find them ? It's impossible actually.

So I suggest to be able to find a list of tournaments of any type in a given time limit (possibly reject requests with too many answers). Examples of request :

Type : Classical Time control : 3'+2" from now to 26 march 2020 Private tournament : no Team tournament : no

And so anyone can try to find the type of tournament he is looking for and just can be able to join it !

tage64 commented 4 years ago

I agree, this would be more than useful.

serbathome commented 4 years ago

Something like that: https://serbathome.github.io/lila_tournament_filter/ Or more complicated?

tage64 commented 4 years ago

Something like that: https://serbathome.github.io/lila_tournament_filter/

That seems good, with a few modifications.

Otherwise, exactly what I was looking for!

serbathome commented 4 years ago

okey, will update it tonight

serbathome commented 4 years ago

Done, pls check.

galuel commented 4 years ago

Yes it's very good ! In my opinion it misses some fields to be complete :

in the search bar :

And in the results fields :

serbathome commented 4 years ago

Looking at the results of API call, it appears that all created tournaments are within 24 hours. It is not too complicated to add time range, but it would be anyway within a day. Probably this is API limitation, because you can create tournaments with delayed start. On the ordering do you mean the order of options in the select box? On the results - adding the owner is simple, however team management and reserved flags appear not to be exposed through external API, so some backend involvement seems to be needed. I will update what I can access through API tonight.

tage64 commented 4 years ago

Looking at the results of API call, it appears that all created tournaments are within 24 hours. Is it that one cannot create tournaments with more than 24 hours in advance or is the API call limited to 24 hours? It would anyway be nice to know about tournaments which is more further in time. For instance weakly and monthly tournaments.

galuel commented 4 years ago

Looking at the results of API call, it appears that all created tournaments are within 24 hours. It is not too complicated to add time range, but it would be anyway within a day. Probably this is API limitation, because you can create tournaments with delayed start.

Yes it is API limitation so, because lots of tournaments are created by advance with much more than 24h00. So I suppose it will be necessary to update Lichess core API for that.

On the ordering do you mean the order of options in the select box ?

Yes that's it :)

On the results - adding the owner is simple, however team management and reserved flags appear not to be exposed through external API, so some backend involvement seems to be needed.

Yes same than dates...

I will update what I can access through API tonight.

serbathome commented 4 years ago

Ok, here is the list of changes, that are possible through public API:

https://serbathome.github.io/lila_tournament_filter/

galuel commented 4 years ago

This looks yet great thanks @serbathome ! If this could be integrated in Lichess for now, it will be a great improvement, and I suppose further development will add features.

Jeffforever commented 4 years ago

Ok, here is the list of changes, that are possible through public API:

  • added tournament owner (createdBy field)
  • added a field showing if tournament has limitation for ratings (Yes, if max_limit is set, blank if no limit, the limit itself is not exposed in the API)
  • added sorting to types select (alphabetical order, cause this is dynamic list extracted from the list of available tournaments. hardcoding these names doesn't seem a good idea)
  • regular tournaments are marked by grey color in the results table Visibility into tournaments schedule is 6 hours, so adding dates in selection form doesn't make sense. For the rest, it would not work unless API is updated. It maybe makes sense to make an API to call to get full information about particular tournament and rate limit it to avoid misusage, but this is for the core team to decide.

https://serbathome.github.io/lila_tournament_filter/

This new tournament filter would be awesome to see and I think for many a lot easier to find/consider also! Great work.

tage64 commented 4 years ago

Visibility into tournaments schedule is 6 hours, so adding dates in selection form doesn't make sense. For the rest, it would not work unless API is updated. It maybe makes sense to make an API to call to get full information about particular tournament and rate limit it to avoid misusage, but this is for the core team to decide.

I agree that the API should be updated so one can get information about all tournaments many days ahead. At least I like to plan my tournaments in advance and a good schedule which shows tournaments many days ahead is required for that. Should someone maybe open a new issue to request the proposed API changes?

Apart from that, I think the tournament filter is really good and I would like to have it integrated into lichess so that every lichess user could benefit from it.

galuel commented 4 years ago

Is there a process to put that research page into Lichess now ?

serbathome commented 4 years ago

Filtering page switched to Vue.js Thanks to contribution of Joshua Kim (https://github.com/joshuak94) please see some new features on the tournaments filtering page:

serbathome.github.io/lila_tournament_filter/

Not sure how to get it integrated, this is probably for Thibault to decide.

galuel commented 4 years ago

I was unable to find my own tournament named "DiagonaleTV..." : https://lichess.org/tournament/QZtevisk

serbathome commented 4 years ago

I can't find it in the results https://lichess.org/api/tournament either, so it might be not exposed through this API.

dz1230 commented 4 years ago

That filter is very nice @serbathome, however afaik lichess doesn't use Vue so it might be hard to integrate it into lichess.

Imho it would be great to have an api endpoint similar to api/team/search, but with more filtering options than just the name. For example, having an option for a min and max start date would be a way to also expose tournaments which start more than 24 hours from now, and because requests to this endpoint would likely include more filters like time control, variant etc., the number of tournaments in the response would not be extensively high even for large time periods (until at some point, it will, so there would probably have to be a limit to how far the min and max start date can be apart).

With such an endpoint, I imagine the frontend of a search page would be pretty trivial, as you'd only need a form to enter the filters and list the response from the api, without any additional processing. This would also be a more lightweight solution as it avoids sending too much data, unlike the current solution of first getting all the tournaments the api exposes and then filtering them on the frontend.

acornellier commented 4 years ago

@galuel I was playing around with the tournament page. I only implemented filters for variants and user created, and only for the current day. This way it's quite clean and doesn't add a bunch of ugly dropdowns or inputs to the page. Would this be useful? Could have similar filters for the tournament calendar, https://lichess.org/tournament/calendar.

In the below image, I'm only showing blitz and rapid tournaments.

Screen Shot 2020-05-21 at 09 53 26

galuel commented 4 years ago

@acornellier Yes it would be usefull ! Could it be possible to fill the user name too ?

Of course it would be nice if the same could be done in the tournament calendar too.

acornellier commented 4 years ago

You mean search by user that created the tournament?

galuel commented 4 years ago

Exactly.

acornellier commented 4 years ago

@galuel check out the screenshots in the PR :)

galuel commented 4 years ago

@acornellier yes it seems ok. I have two questions :

Thanks !

acornellier commented 4 years ago

Yes, and I was planning on adding it to the calendar page afterwards. Unfortunately the boss didn't like the change, so looks like it's not happening :/

ornicar commented 4 years ago

tournaments created by a user https://lichess.org/@/thibault/tournaments/created

galuel commented 4 years ago

@ornicar ok but the need is also to find for instance : all coming Blitz Arena (or Swiss) Tournaments 3'+2", today or tomorrow, or next week (between now and a date).

For user created tournament people won't change the URL, they also need a search field and search button.

What did @acornellier was fine

What did @serbathome here https://serbathome.github.io/lila_tournament_filter/ was also fine (but cannot list user created tournaments)...

ornicar commented 4 years ago

No it was not fine, and it did not do what you think it did

6heads commented 3 years ago

Are there plans to show custom tournaments on the tournaments page? And/or plans to provide an api?