meooow25 / carrot

A browser extension for Codeforces rating prediction
MIT License
114 stars 4 forks source link

Consider using user.info to get ratings #46

Open meooow25 opened 1 year ago

meooow25 commented 1 year ago

Codeforces has added an includeRetired param to user.ratedList (quite some time ago) with an undocumented default of true. This means that any user who hasn't been online in the last month but participates in a contest after Carrot has cached ratings (which within 1hr of a contest start by default) will appear to Carrot as a new user.

It's understandable that they might want to add a filter since the number of users on CF has grown rapidly and every request would a huge amount of data if all users were returned. I wish they wouldn't change things silently without any announcement or changelog, but that's a different matter.

I do not want to set includeRetired to true in Carrot because, as mentioned, it would be a huge amount of data. But keeping it false means worse predictions (perfect prediction is impossible due to fake ratings anyway).

An endpoint that can used instead of user.ratedList is user.info. It can be argued to be more suitable for this use case than user.ratedList. When this extension was written, however, it was unusable. But CF has added support for POST requests so it is usable now. This would mean more number of requests as opposed to one large request upfront. But it would only be the user info of the participants, so amount of data should be smaller.

CroMarmot commented 1 year ago

Same

image