Some human players have the string “bot” in their name
No bot games are not allowed. So if you are found playing bot games then it doesn’t matter if you signed up or not, you won’t get anything.
Maybe @anoek knows a way to filter bots?
What about the way to filter bots that I proposed? Did you try that?
Edit: Maybe that won’t work.
I’m getting the call from this Player Games – Django REST framework - with my own settings
And using the count variable. I’m not going through each page. Is there a parameter I can add to the url?
How about something like:
for player_id in LIST:
for game in requests.get(API).json()["results"]:
if "bot" not in game["players"]["black"].get("ui_class", "").lower() and "bot" not in game["players"]["white"].get("ui_class", "").lower():
counts[player_id] += 1
You’ve replied to @Clossius1 3 times, did you know you could send them a personal message instead?
That’s some funny advice, kind of undermining the purpose of a forum thread ![]()
So not sure what programming language you use but assuming python3 you can copy-paste this. It should be performant enough and work out of the box:
import requests
PLAYER_LIST = ["1966942", "1174388", "625243"] # Here of course you need to use the actual list from your database
def get_player_nobot_game_count(player_results):
count = 0
for game in player_results:
if "bot" not in game["players"]["black"].get("ui_class", "").lower() and "bot" not in game["players"]["white"].get("ui_class", "").lower():
count += 1
return count
def get_player_ranked_games(player_id):
url = f"https://online-go.com/api/v1/players/{player_id}/games/?annulled=false&ranked=true&ended__gte=2026-03-01+00%3A00Z&ended__isnull=false&ordering=-ended&page_size=100"
games = []
while url:
r = requests.get(url)
r.raise_for_status()
data = r.json()
games.extend(data["results"])
url = data["next"]
return games
results = {}
for player_id in PLAYER_LIST:
games = get_player_ranked_games(player_id)
nonbot_game_count = get_player_nobot_game_count(games)
results[player_id] = nonbot_game_count
results
Reach out if you have any questions. I hope this helps ![]()
Hey @Clossius1 For players there is a tag for bots:
"is_bot": false,
Thanks, I did see that but i was hoping for an easier solution for the filtered api call which anoek very kindly provided. So now i can add it as a parameter in the get filtered games api call and just grab the count variable.
The bots are filtered out now.
One day before the end of the challenge… just realised the 100 games had to be all of the same board size
Yes, that definitely dissuaded me from “wasting” any time on 19x19 over the month. In my opinion a better rule would be to let larger boards qualify you for the smaller-board awards.
It’s not mentioned in the rules so it’s hard to notice.
I don’t agree. Moreover I think we need separate ranks in automatcher for different boards. I’m good in 9x9 but very bad in other boards.
