{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":800960139,"defaultBranch":"main","name":"srcomdumpy","ownerLogin":"CounterPillow","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-05-15T10:28:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/308818?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1715768963.0","currentOid":""},"activityList":{"items":[{"before":"c83b115dc8fc2bc135283653cb2c292254b83657","after":"4fc82a06bcd2d198bbb2ae18c656bf47bb295df4","ref":"refs/heads/main","pushedAt":"2024-05-16T14:18:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"README: clarify dependency versions\n\nSince I have now tested with the oldest LTS Ubuntu release that I'm\nstill able to build as a container, which is 18.04, I may as well\nmention that it works there.","shortMessageHtmlLink":"README: clarify dependency versions"}},{"before":"436459d7d8b4d6a99ad5f5e34880d7f039277d72","after":"c83b115dc8fc2bc135283653cb2c292254b83657","ref":"refs/heads/main","pushedAt":"2024-05-16T14:02:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Replace Leaderboard class with a namedtuple\n\nAs per AMM's pleas, get rid of this class entirely. I think I had\ngrander ambitions when I wrote the first line of the class\ndefinition, which then never materialised.\n\nA namedtuple serves just fine here.","shortMessageHtmlLink":"Replace Leaderboard class with a namedtuple"}},{"before":"0ec1873b9ad445be555cf9a903b90fbde5c868f9","after":"436459d7d8b4d6a99ad5f5e34880d7f039277d72","ref":"refs/heads/main","pushedAt":"2024-05-16T13:54:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Replace time.monotonic_ns with time.monotonic\n\nThis gets rid of the s_to_ns utility function, and more importantly,\nallows the script to run on Python versions as old as 3.6.x (tested\nwith an Ubuntu Bionic container, 2018 vintage).\n\nI originally used monotonic_ns as I wanted to avoid any precision\nshenanigans when the numbers got very large, which is where floats\nbreak down. Python integer numbers are represented as a type that\nswitches between a 64-bit long and a \"bignum\" type which can grow\nas large as it wants to be with no loss of precision.\n\nHowever, Python floating point numbers in practically all Python\nimplementations are mapped to double precision IEEE 754 double\nprecision floats, which (assuming they don't use the x86 extended\nprecision, unless the Wikipedia article implicitly assumes they\ndo) are accurate to integer precisions up to 2 to the power of 53,\nwhich in terms of the timer is about 285616414 years.\n\nThat's probably a long enough system uptime to warrant a reboot to\nreset the monotonic timer.","shortMessageHtmlLink":"Replace time.monotonic_ns with time.monotonic"}},{"before":"11f42e04d2e4ff0ab9051c96e6d7f7c58e0f15e4","after":"0ec1873b9ad445be555cf9a903b90fbde5c868f9","ref":"refs/heads/main","pushedAt":"2024-05-16T13:11:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Simplify and fix __repr__ even more\n\nnimaje pointed out I can just use !r, and AMM pointed out the square\nbrackets are redundant. Oopsie.","shortMessageHtmlLink":"Simplify and fix __repr__ even more"}},{"before":"36fa4e40fca3afa5ed118f1663337312a9e76e6e","after":"11f42e04d2e4ff0ab9051c96e6d7f7c58e0f15e4","ref":"refs/heads/main","pushedAt":"2024-05-16T12:55:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Change __repr__ to relax Python version requirement\n\nMy shenanigans with format strings in __repr__ of the Leaderboard\nclass were not just unnecessary, but also stopped this script from\nworking on still widely used Python versions such as 3.10, as\nshipped by Ubuntu.\n\nReplace it by just repring the list and putting that in the format\nstring.\n\nFixes #1.","shortMessageHtmlLink":"Change __repr__ to relax Python version requirement"}},{"before":"f34b31df71fc12f2ff64ac16ea22b9e82274abde","after":"36fa4e40fca3afa5ed118f1663337312a9e76e6e","ref":"refs/heads/main","pushedAt":"2024-05-15T15:56:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Fix typo in README\n\ngzip -> gz","shortMessageHtmlLink":"Fix typo in README"}},{"before":"a7300f2d1df905b3ba426310c68364b22bee216c","after":"f34b31df71fc12f2ff64ac16ea22b9e82274abde","ref":"refs/heads/main","pushedAt":"2024-05-15T14:41:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Elaborate more in the README\n\nGive a piping example and talk about the API limitations.","shortMessageHtmlLink":"Elaborate more in the README"}},{"before":"76b81e8be9e0ec4696ec9bcd729a3f4d0cb34a88","after":"a7300f2d1df905b3ba426310c68364b22bee216c","ref":"refs/heads/main","pushedAt":"2024-05-15T14:20:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Stop polluting stdout when writing CSV","shortMessageHtmlLink":"Stop polluting stdout when writing CSV"}},{"before":"dcfa8c0406def06beaf9deaa00ce8dfd8d7a7377","after":"76b81e8be9e0ec4696ec9bcd729a3f4d0cb34a88","ref":"refs/heads/main","pushedAt":"2024-05-15T14:15:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Add a .gitignore","shortMessageHtmlLink":"Add a .gitignore"}},{"before":"b10276435ff1b1c18ec4c0637c9713484070d310","after":"dcfa8c0406def06beaf9deaa00ce8dfd8d7a7377","ref":"refs/heads/main","pushedAt":"2024-05-15T14:01:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Work around srcom API limits\n\nspeedrun.com lets ElasticSearch limits leak into the API, limiting\nthe number of responses per query to 10000 entries. This is not\ngreat for certain popular games like Celeste, where you can easily\nproduce a query that runs into these limits.\n\nSomewhat work around this by filtering by all documented statuses\nand sorting them by submission time, then changing direction if\nwe hit 10000 results.\n\nThis is not perfect, as if a single category has more than 20k\nverified runs, we're screwed regardless. This is on ELO to fix.","shortMessageHtmlLink":"Work around srcom API limits"}},{"before":"ac480f1fb55eff3e3e93e2efdf158207b9856af3","after":"b10276435ff1b1c18ec4c0637c9713484070d310","ref":"refs/heads/main","pushedAt":"2024-05-15T12:48:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Move to urllib3 with request throttling\n\nThis rewrite ditches Python requests for urllib3, and adds a class\nfor throttling requests to a set requests-per-minute limit.","shortMessageHtmlLink":"Move to urllib3 with request throttling"}},{"before":"09d3c57566ae578fe076523d127ed319000f48a3","after":"ac480f1fb55eff3e3e93e2efdf158207b9856af3","ref":"refs/heads/main","pushedAt":"2024-05-15T10:56:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Fix category_ids empty check\n\nPython lists (unlike strings, which are also iterables) are truthy\nwhen empty. Thus, the exception is never thrown.\n\nFix this by checking for the list to be empty instead.","shortMessageHtmlLink":"Fix category_ids empty check"}},{"before":null,"after":"09d3c57566ae578fe076523d127ed319000f48a3","ref":"refs/heads/main","pushedAt":"2024-05-15T10:29:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"CounterPillow","name":"Nicolas F.","path":"/CounterPillow","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/308818?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xNlQxNDoxODowMC4wMDAwMDBazwAAAARLt382","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xNVQxMDoyOToyMy4wMDAwMDBazwAAAARKaJEW"}},"title":"Activity ยท CounterPillow/srcomdumpy"}