{"id":16516138,"url":"https://github.com/sketchingdev/airmash-leaderboard","last_synced_at":"2026-02-03T10:01:17.752Z","repository":{"id":38765526,"uuid":"279950712","full_name":"SketchingDev/airmash-leaderboard","owner":"SketchingDev","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-24T03:31:38.000Z","size":7003,"stargazers_count":0,"open_issues_count":46,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T21:45:16.215Z","etag":null,"topics":["airmash","aws","serverless"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SketchingDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-15T18:46:53.000Z","updated_at":"2022-04-25T08:50:48.000Z","dependencies_parsed_at":"2023-02-13T15:31:02.029Z","dependency_job_id":null,"html_url":"https://github.com/SketchingDev/airmash-leaderboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SketchingDev/airmash-leaderboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SketchingDev%2Fairmash-leaderboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SketchingDev%2Fairmash-leaderboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SketchingDev%2Fairmash-leaderboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SketchingDev%2Fairmash-leaderboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SketchingDev","download_url":"https://codeload.github.com/SketchingDev/airmash-leaderboard/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SketchingDev%2Fairmash-leaderboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29040722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T09:57:37.951Z","status":"ssl_error","status_checked_at":"2026-02-03T09:55:14.920Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airmash","aws","serverless"],"created_at":"2024-10-11T16:19:40.986Z","updated_at":"2026-02-03T10:01:17.735Z","avatar_url":"https://github.com/SketchingDev.png","language":"TypeScript","readme":"# AirMash Leaderboard\n\n[![Build Status](https://img.shields.io/circleci/project/github/SketchingDev/airmash-leaderboard/master.svg)](https://circleci.com/gh/SketchingDev/airmash-leaderboard/tree/master)\n\nA leaderboard generated by a bot that periodically logs into all the available games and scrapes the details.\n\nThe problem with creating a leaderboard for AIRMASH is that there is no way to discern whether two players with the\nsame name are the same person, since the game allows you to choose any name (regardless of whether someone else might\nhave used it in the past), and the underlying ID assigned to each player isn't maintained across games.\n\n## Architecture\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/architecture.jpg\"\u003e\n\u003c/p\u003e\n\n## Manual Testing\n\nThe following guides you through setting up a copy of AirMash locally with some bots\n\n### Server\n\nRun the [ab-server locally](https://github.com/wight-airmash/ab-server#how-to-run-examples)\nby doing the following:\n\n```bash\ngit clone git@github.com:wight-airmash/ab-server.git\ncd ab-server\ndocker build -t airbattle-server .\ndocker run -p 3501:3501 -e SERVER_TYPE=FFA -e SU_PASSWORD=mypass airbattle-server\n```\n\nOnce running it can be connected to at `ws://127.0.0.1:3501/ffa`\n\n### Front-end\n\nRun the [front-end](https://github.com/airmash-refugees/airmash-frontend) locally by doing the following:\n\n1. Setup the project\n\n    ```bash\n    git clone git@github.com:airmash-refugees/airmash-frontend.git\n    cd airmash-frontend\n    ```\n\n2. Update server URL\n\n    Update `customServerUrl` in `Game.js` to the URL of the server.\n\n    If you're hosting the container above then\n    this will be `ws://127.0.0.1:3501/ffa`.\n\n3. Build and start the front-end\n\n    ```bash\n    DEBUG=1 npm run build \u0026\u0026 cd dist/ \u0026\u0026 python3 -m http.server\n    ```\n\n4. Navigate to the front-end\n\n    Navigate to `http://127.0.0.1:8000/`. Be sure to go to `127.0.0.1` since the code looks\n    for this loopback IP in the host (as opposed to 0.0.0.0) to detect whether it is in development mode\n    and thus use the `customServerUrl`.\n\n\n### Bots\n\nYou can simulate a real game by adding some [ab-bots](https://github.com/spatiebot/ab-bot).\n\n```bash\ngit clone --recurse-submodules git://github.com/spatiebot/ab-bot.git\ncd ab-bot\nnpm i\nnpx gulp\nnode dist/app.js --ws=local --num=1 --character=Aggressive --dev\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsketchingdev%2Fairmash-leaderboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsketchingdev%2Fairmash-leaderboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsketchingdev%2Fairmash-leaderboard/lists"}