{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":785707682,"defaultBranch":"main","name":"lms-stats-service","ownerLogin":"LMS-Community","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-04-12T13:03:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/72216001?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714054121.0","currentOid":""},"activityList":{"items":[{"before":"21b674598dbacd7b969abc87c2718dafe5b77990","after":"ed083c53fda97fa9caf348ef327f6ebd5fb3c061","ref":"refs/heads/main","pushedAt":"2024-06-23T17:15:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Commit database IDs etc., they're not considered a secret.","shortMessageHtmlLink":"Commit database IDs etc., they're not considered a secret."}},{"before":"5a4de3d3bcd1ab60fb21ed88697070038b0a5ed8","after":"21b674598dbacd7b969abc87c2718dafe5b77990","ref":"refs/heads/main","pushedAt":"2024-06-23T17:14:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Update dependencies to fix a vulnerability.","shortMessageHtmlLink":"Update dependencies to fix a vulnerability."}},{"before":"6842012a1d4b03c3a2b6d476675267b80fab9cd5","after":"5a4de3d3bcd1ab60fb21ed88697070038b0a5ed8","ref":"refs/heads/main","pushedAt":"2024-06-19T04:35:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"More player model grouping: RHEOS","shortMessageHtmlLink":"More player model grouping: RHEOS"}},{"before":"3e2818f576e93c966245f6493e26a39f3651113e","after":"6842012a1d4b03c3a2b6d476675267b80fab9cd5","ref":"refs/heads/main","pushedAt":"2024-06-05T07:31:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Reduce cache time for plugins summary.","shortMessageHtmlLink":"Reduce cache time for plugins summary."}},{"before":"06666c196a24b2f31919ccbc1a3efecca3ee4309","after":"3e2818f576e93c966245f6493e26a39f3651113e","ref":"refs/heads/main","pushedAt":"2024-06-03T06:36:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add endpoint to get server count","shortMessageHtmlLink":"Add endpoint to get server count"}},{"before":"449a6100a08645b658c4a25020aee04a3f35722b","after":"06666c196a24b2f31919ccbc1a3efecca3ee4309","ref":"refs/heads/main","pushedAt":"2024-06-03T05:51:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add cached version of database queries. Cache results for 2h (except the super expensive plugins request).\n\nThis uses the KV store, rather than the Cache API, as we want this to be globally cached. The Cache API unfortunately (in this case) is on the edge, and not synched. But we want to avoid any database lookup if reasonably possible.","shortMessageHtmlLink":"Add cached version of database queries. Cache results for 2h (except …"}},{"before":"65872083386575f4a76ab6a2855d6d0fef204083","after":"449a6100a08645b658c4a25020aee04a3f35722b","ref":"refs/heads/main","pushedAt":"2024-06-02T13:31:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add item name and secs to the caching key","shortMessageHtmlLink":"Add item name and secs to the caching key"}},{"before":"4c422e8ed764b134c42bd1c6b940b18f580f9889","after":"65872083386575f4a76ab6a2855d6d0fef204083","ref":"refs/heads/main","pushedAt":"2024-05-31T15:49:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add the KV namespace to the wrangler configuration file.","shortMessageHtmlLink":"Add the KV namespace to the wrangler configuration file."}},{"before":"284b2e303c7268afcc99050eb6db7bc4b673247c","after":"4c422e8ed764b134c42bd1c6b940b18f580f9889","ref":"refs/heads/main","pushedAt":"2024-05-31T15:48:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Use a KV based cache rather than an additional table to store the plugins query data.\n\nThe old code should be removed, as well as the cron job.","shortMessageHtmlLink":"Use a KV based cache rather than an additional table to store the plu…"}},{"before":"a760d7e42423c5fd84862f6641d4eb8885f469bf","after":"284b2e303c7268afcc99050eb6db7bc4b673247c","ref":"refs/heads/main","pushedAt":"2024-05-30T11:49:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"The plugins query is super expensive, resulting in millions of processed data rows. Only run the job once a day. We don't need hourly numbers. And we can shorten the interval again once we've settled on reasonable numbers.","shortMessageHtmlLink":"The plugins query is super expensive, resulting in millions of proces…"}},{"before":"aef0e2a28ef98c71599b6f980ab83a4361934e21","after":"a760d7e42423c5fd84862f6641d4eb8885f469bf","ref":"refs/heads/main","pushedAt":"2024-05-28T17:46:43.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"More player type mapping/grouping","shortMessageHtmlLink":"More player type mapping/grouping"}},{"before":"e7393829e130dbd97b1b55acc78a2eb0cace6136","after":"aef0e2a28ef98c71599b6f980ab83a4361934e21","ref":"refs/heads/main","pushedAt":"2024-05-28T15:20:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Return percentages with two digit decimals","shortMessageHtmlLink":"Return percentages with two digit decimals"}},{"before":"beeb895ffee06d4b640d60d56064c63077837372","after":"e7393829e130dbd97b1b55acc78a2eb0cace6136","ref":"refs/heads/main","pushedAt":"2024-05-23T04:08:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Rename incorrectly named SQL query, add correct one for \"unknown players\"","shortMessageHtmlLink":"Rename incorrectly named SQL query, add correct one for \"unknown play…"}},{"before":"f34e5f54bd836a51610490d3e4c85cb19803a19b","after":"beeb895ffee06d4b640d60d56064c63077837372","ref":"refs/heads/main","pushedAt":"2024-05-22T03:58:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Fix #3 - typo\n\n...and better regroup Ropieee based players","shortMessageHtmlLink":"Fix #3 - typo"}},{"before":"4fb5ab5dc68a290f6e523957cbe8172152d44012","after":"f34e5f54bd836a51610490d3e4c85cb19803a19b","ref":"refs/heads/main","pushedAt":"2024-05-19T08:36:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Modify stats to report \"merged\" player types: when there's a more human readable `playerModels` element, use it, otherwise fall back to `playerTypes` and try to map the names.\n\nAdd a few interesting SQL queries.","shortMessageHtmlLink":"Modify stats to report \"merged\" player types: when there's a more hum…"}},{"before":"1ddacd8fb1e72fe547f6fb26da64707496168eb1","after":"4fb5ab5dc68a290f6e523957cbe8172152d44012","ref":"refs/heads/main","pushedAt":"2024-05-18T23:25:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Improve player types handling: try to map `model` to `modelName` if the latter is not defined.","shortMessageHtmlLink":"Improve player types handling: try to map model to modelName if t…"}},{"before":"c4c89eb266ce1d8e6d6d6cdb5118b9d842a9aba7","after":"1ddacd8fb1e72fe547f6fb26da64707496168eb1","ref":"refs/heads/main","pushedAt":"2024-05-18T23:23:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Return a maximum of 50 values for historical data. Map OSX to macOS.","shortMessageHtmlLink":"Return a maximum of 50 values for historical data. Map OSX to macOS."}},{"before":"9f9acf408ab49d7bd95c8e959e20602446076987","after":"c4c89eb266ce1d8e6d6d6cdb5118b9d842a9aba7","ref":"refs/heads/main","pushedAt":"2024-05-18T10:47:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add simple backup script to dump the database into a local sqlite file. Requires a local copy of `sqlite3`.","shortMessageHtmlLink":"Add simple backup script to dump the database into a local sqlite fil…"}},{"before":"143b20fa90ce13516f547fa43f8cec282d88d91d","after":"9f9acf408ab49d7bd95c8e959e20602446076987","ref":"refs/heads/main","pushedAt":"2024-05-18T10:47:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add simple backup script to dump the database into a local sqlite file. Requires a local copy of `sqlite3`.","shortMessageHtmlLink":"Add simple backup script to dump the database into a local sqlite fil…"}},{"before":"167e4a29912c3b2196c532a59bd9ce32a1268f57","after":"143b20fa90ce13516f547fa43f8cec282d88d91d","ref":"refs/heads/main","pushedAt":"2024-05-18T10:36:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Revert previous change. Let's collect the data first...","shortMessageHtmlLink":"Revert previous change. Let's collect the data first..."}},{"before":"c51699ae7b1c3311665c4f1cf5266982faf12cdf","after":"167e4a29912c3b2196c532a59bd9ce32a1268f57","ref":"refs/heads/main","pushedAt":"2024-05-18T10:29:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Try to use the more specific player type names when showing stats on lyrion.org","shortMessageHtmlLink":"Try to use the more specific player type names when showing stats on …"}},{"before":"b3043bda86ac81d7e2deddf51383b28100747df2","after":"c51699ae7b1c3311665c4f1cf5266982faf12cdf","ref":"refs/heads/main","pushedAt":"2024-05-18T10:22:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Make room for the `modelName` based `playerModels` data. This should help us distinguish the various squeezelite implementations.","shortMessageHtmlLink":"Make room for the modelName based playerModels data. This should …"}},{"before":"9fae5d8a23f8adb3f0c256de3ce6e7c0eadae58b","after":"b3043bda86ac81d7e2deddf51383b28100747df2","ref":"refs/heads/main","pushedAt":"2024-05-18T04:55:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add a few more query parameters to get stats by os/osname/version/country.","shortMessageHtmlLink":"Add a few more query parameters to get stats by os/osname/version/cou…"}},{"before":"9baf76e378057d342b1e1ae436df69fe03490b4b","after":"9fae5d8a23f8adb3f0c256de3ce6e7c0eadae58b","ref":"refs/heads/main","pushedAt":"2024-05-17T13:20:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Use parameter binding in SQL queries","shortMessageHtmlLink":"Use parameter binding in SQL queries"}},{"before":"10f5fc3bc644ac00d493ade292a47a1d8b1cc5ee","after":"9baf76e378057d342b1e1ae436df69fe03490b4b","ref":"refs/heads/main","pushedAt":"2024-05-14T20:14:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Allow filtering results by number of days since last seen, and OS","shortMessageHtmlLink":"Allow filtering results by number of days since last seen, and OS"}},{"before":"7871ef29d102f399e1f09c08c42fc0fd838ae313","after":"10f5fc3bc644ac00d493ade292a47a1d8b1cc5ee","ref":"refs/heads/main","pushedAt":"2024-05-06T04:28:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Only keep sum of plugin installation, not the individual installation. The latter would result in hundreds of thousands of records vs. a few hundred to be processed at summary time.","shortMessageHtmlLink":"Only keep sum of plugin installation, not the individual installation…"}},{"before":"801b0cdbb4abbd6bb3444caefd3a630ac444a2e0","after":"7871ef29d102f399e1f09c08c42fc0fd838ae313","ref":"refs/heads/main","pushedAt":"2024-05-04T00:10:11.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Add helper table to keep track of plugin installations.\n\nThe daily summary job is running out of granted CPU cycles. Add another cron job to summarize the plugin installations on a schedule. The daily summary job then only reads that table instead of running the expensive query each time.","shortMessageHtmlLink":"Add helper table to keep track of plugin installations."}},{"before":"0cd49bfbd63254949bf712b5ad377b0c4dda5d74","after":"801b0cdbb4abbd6bb3444caefd3a630ac444a2e0","ref":"refs/heads/main","pushedAt":"2024-05-03T08:52:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Only type cast when needed","shortMessageHtmlLink":"Only type cast when needed"}},{"before":"bf975150946d21eccf0715524c2d17a397bc1324","after":"0cd49bfbd63254949bf712b5ad377b0c4dda5d74","ref":"refs/heads/main","pushedAt":"2024-05-03T07:08:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"Some number seem to be treated as strings sometimes. Make sure we group them correctly.","shortMessageHtmlLink":"Some number seem to be treated as strings sometimes. Make sure we gro…"}},{"before":"e2d8f707c0ee386dae5285b5e80052b7c5813088","after":"bf975150946d21eccf0715524c2d17a397bc1324","ref":"refs/heads/main","pushedAt":"2024-05-02T05:33:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelherger","name":"Michael Herger","path":"/michaelherger","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2789989?s=80&v=4"},"commit":{"message":"SQL simplification","shortMessageHtmlLink":"SQL simplification"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbNlQEwA","startCursor":null,"endCursor":null}},"title":"Activity · LMS-Community/lms-stats-service"}