{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":13419223,"defaultBranch":"master","name":"lutris","ownerLogin":"lutris","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-10-08T16:37:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5067433?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717842872.0","currentOid":""},"activityList":{"items":[{"before":"902d8bbefa8b2f6564980a71b1e919a463cc296f","after":"3435126ea6eeed34490f4a42f2ee4f17411fb40d","ref":"refs/heads/dj/saved_searches","pushedAt":"2024-06-08T13:43:47.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add the search itself to the search edit dialog, and hook this up so you can change the search.","shortMessageHtmlLink":"Add the search itself to the search edit dialog, and hook this up so …"}},{"before":"88b17d8ff5bd62da3f85bb0ce218b4a6cbca0f1b","after":"902d8bbefa8b2f6564980a71b1e919a463cc296f","ref":"refs/heads/dj/saved_searches","pushedAt":"2024-06-08T10:40:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add a dialog to edit search categories.\n\nIt can only rename and delete for now.","shortMessageHtmlLink":"Add a dialog to edit search categories."}},{"before":null,"after":"88b17d8ff5bd62da3f85bb0ce218b4a6cbca0f1b","ref":"refs/heads/dj/saved_searches","pushedAt":"2024-06-08T10:34:32.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Provide a SQL based category rename operation and use it for explicit categories when possible.","shortMessageHtmlLink":"Provide a SQL based category rename operation and use it for explicit…"}},{"before":"b4a3dab39989c90e85c1594231e7028377e0aaf4","after":"3d143a70b36e56ba0c3143718a12bcf695dcb570","ref":"refs/heads/master","pushedAt":"2024-06-02T00:59:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"strycore","name":"Mathieu Comandon","path":"/strycore","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/280336?s=80&v=4"},"commit":{"message":"Link update\n\n Atari800's dead link changed by the current one.\n- MicroM8's insecure or suspicios link changed by the current one.","shortMessageHtmlLink":"Link update"}},{"before":"fc87c6872951e3572de8baa11fbae27ace264b31","after":"b4a3dab39989c90e85c1594231e7028377e0aaf4","ref":"refs/heads/master","pushedAt":"2024-06-02T00:25:10.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add checks to tolerate blank lines in the output of lspci.\n\nResolves #5492","shortMessageHtmlLink":"Add checks to tolerate blank lines in the output of lspci."}},{"before":"cb56f64a14248deb0fb904e76a94e754f9270462","after":"fc87c6872951e3572de8baa11fbae27ace264b31","ref":"refs/heads/master","pushedAt":"2024-05-30T09:04:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Avoid crashing if we have no samples at all, now that this can happen.","shortMessageHtmlLink":"Avoid crashing if we have no samples at all, now that this can happen."}},{"before":"dde4d71f9ceb067885be56ce089b95f6a8b2ed93","after":"cb56f64a14248deb0fb904e76a94e754f9270462","ref":"refs/heads/master","pushedAt":"2024-05-30T09:00:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Insert speeds in sorted order so skipping extreme values skips the highest and lowest, not the oldest and newest.","shortMessageHtmlLink":"Insert speeds in sorted order so skipping extreme values skips the hi…"}},{"before":"dbdb841edc7d8b039f17281221990c2c689bbe19","after":"dde4d71f9ceb067885be56ce089b95f6a8b2ed93","ref":"refs/heads/master","pushedAt":"2024-05-29T20:43:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Remove position-only parameter list to restore compatibility with Python 3.7\n\nResolves #5491","shortMessageHtmlLink":"Remove position-only parameter list to restore compatibility with Pyt…"}},{"before":"696863bee403a1501a52662dd683903f9ff8ba4e","after":"dbdb841edc7d8b039f17281221990c2c689bbe19","ref":"refs/heads/master","pushedAt":"2024-05-25T19:20:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Remove the old path from the cache when moving a game, so we don't get a spurious 'missing' listing","shortMessageHtmlLink":"Remove the old path from the cache when moving a game, so we don't ge…"}},{"before":"6dffaa6394a27b10ea66bdc0c48d37ead36fd891","after":"696863bee403a1501a52662dd683903f9ff8ba4e","ref":"refs/heads/master","pushedAt":"2024-05-25T19:08:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Use path_contains to see if one path is 'inside' another, rather than a startswith.\n\nAlso resolves #5223 some more","shortMessageHtmlLink":"Use path_contains to see if one path is 'inside' another, rather than…"}},{"before":"672caf45ab19b4a6f15cac1ecf23f280ecbcba8a","after":"6dffaa6394a27b10ea66bdc0c48d37ead36fd891","ref":"refs/heads/master","pushedAt":"2024-05-25T06:24:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"strycore","name":"Mathieu Comandon","path":"/strycore","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/280336?s=80&v=4"},"commit":{"message":"Fix missing quote syntax error in bug report issue template\n\n```\nThere is a problem with this template\n\nYAML syntax error: (): did not find expected key while parsing a block mapping at line 20 column 7. Learn more about this error.\n```","shortMessageHtmlLink":"Fix missing quote syntax error in bug report issue template"}},{"before":"0fcffef9ed50cd80311fee3535739ac845a4ff95","after":"672caf45ab19b4a6f15cac1ecf23f280ecbcba8a","ref":"refs/heads/master","pushedAt":"2024-05-23T00:34:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"strycore","name":"Mathieu Comandon","path":"/strycore","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/280336?s=80&v=4"},"commit":{"message":"Log out and log back in when Ubisoft credentials fail","shortMessageHtmlLink":"Log out and log back in when Ubisoft credentials fail"}},{"before":"b0c0e295fc14e661b4dab6c2d7b53a93072f4ef9","after":"0fcffef9ed50cd80311fee3535739ac845a4ff95","ref":"refs/heads/master","pushedAt":"2024-05-19T20:13:47.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Revert \"Consolidate AuthTokenExpiredError and AuthenticationError.\"\n\nThis reverts commit 10f7e52cffa7d47441b84f913a0bf4a4d24709bd.","shortMessageHtmlLink":"Revert \"Consolidate AuthTokenExpiredError and AuthenticationError.\""}},{"before":"f4d1e1a99f070a164c004aac7af46bd0cb118a7e","after":"b0c0e295fc14e661b4dab6c2d7b53a93072f4ef9","ref":"refs/heads/master","pushedAt":"2024-05-19T14:42:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Hook up the special exception backstops up in LutrisWindow.__init__.\n\nIt's better not to change state like this just because we *import* lutriswindow.py.","shortMessageHtmlLink":"Hook up the special exception backstops up in LutrisWindow.__init__."}},{"before":"f8468e120dac49c8368f8d408fb110dd473d0348","after":"f4d1e1a99f070a164c004aac7af46bd0cb118a7e","ref":"refs/heads/master","pushedAt":"2024-05-19T12:37:56.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Raise AuthenticationError from the service load() method if not authenticated.\n\nSome services have odd errors that I don't understand, and I've just left those alone for now.","shortMessageHtmlLink":"Raise AuthenticationError from the service load() method if not authe…"}},{"before":"87b18f2fa08a1983f4141de76f58844525dc5d5e","after":"f8468e120dac49c8368f8d408fb110dd473d0348","ref":"refs/heads/master","pushedAt":"2024-05-14T23:08:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add handling in case the playtime in the config .yml for a game is garbage; this will log and reset the playtime to 0.\n\nResolves #5476","shortMessageHtmlLink":"Add handling in case the playtime in the config .yml for a game is ga…"}},{"before":"52fb949ff58c56ff3b53561bd531b25e7ce3bed1","after":"87b18f2fa08a1983f4141de76f58844525dc5d5e","ref":"refs/heads/master","pushedAt":"2024-05-14T23:03:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add exception handling so that if we can't parse the icon from an EXE, we log and continue. It's okay not to have an icon; all the cool kids use banners.\n\nResolves #5475","shortMessageHtmlLink":"Add exception handling so that if we can't parse the icon from an EXE…"}},{"before":"5959768f8aea725a1ab98ea3aa4183c0ab7b617d","after":"52fb949ff58c56ff3b53561bd531b25e7ce3bed1","ref":"refs/heads/master","pushedAt":"2024-05-14T22:58:52.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Do a slightly better job of keeping the view up to date when a game is hidden by the user.","shortMessageHtmlLink":"Do a slightly better job of keeping the view up to date when a game i…"}},{"before":"075b53108031f9957861e028b4f7d8acf28eeaa8","after":"5959768f8aea725a1ab98ea3aa4183c0ab7b617d","ref":"refs/heads/master","pushedAt":"2024-05-13T08:35:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Add exception handling so a malformed media file does nto crash Lutris, and does not prevent you from setting a new media.\n\nResolves #5474","shortMessageHtmlLink":"Add exception handling so a malformed media file does nto crash Lutri…"}},{"before":"898a7f3ccc1339ddec9e1891cc8aae7dc913534b","after":null,"ref":"refs/heads/dj/fancy_search","pushedAt":"2024-05-13T08:23:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"}},{"before":"ce49b92904509ba707149ef9f163e7c05c661d31","after":"075b53108031f9957861e028b4f7d8acf28eeaa8","ref":"refs/heads/master","pushedAt":"2024-05-13T00:36:06.000Z","pushType":"pr_merge","commitsCount":50,"pusher":{"login":"strycore","name":"Mathieu Comandon","path":"/strycore","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/280336?s=80&v=4"},"commit":{"message":"Fix various merge messes","shortMessageHtmlLink":"Fix various merge messes"}},{"before":"189c02bf43371ef9bfc5e0d24d881a9a26ab00a9","after":"ce49b92904509ba707149ef9f163e7c05c661d31","ref":"refs/heads/master","pushedAt":"2024-05-12T12:42:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Move the generation count out of NotificationSource.\n\nThis is used in only one place, and does not really fit with the argument-passing fire() method we have now, so I'll move it.","shortMessageHtmlLink":"Move the generation count out of NotificationSource."}},{"before":"cd97a7a45b05b9583c44ff8ac0fac1a645962e02","after":"898a7f3ccc1339ddec9e1891cc8aae7dc913534b","ref":"refs/heads/dj/fancy_search","pushedAt":"2024-05-12T11:17:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Fix various merge messes","shortMessageHtmlLink":"Fix various merge messes"}},{"before":"bf292fd64931fd92ee04f556c88e271472796a5f","after":null,"ref":"refs/heads/dj/asyncio_again","pushedAt":"2024-05-12T11:13:50.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"}},{"before":"08c5ade78cbaae76dc6121aa61d404b9eb7cc949","after":null,"ref":"refs/heads/dj/asyncio","pushedAt":"2024-05-12T11:13:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"}},{"before":"cb147ee18e21cdd84379b07241bd564c48128fdd","after":"189c02bf43371ef9bfc5e0d24d881a9a26ab00a9","ref":"refs/heads/master","pushedAt":"2024-05-12T11:11:04.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"At last, Game can stop being a GObject.","shortMessageHtmlLink":"At last, Game can stop being a GObject."}},{"before":"28e5d2e35ab5c06d1bf5eede8daee338bb3e85ff","after":"cb147ee18e21cdd84379b07241bd564c48128fdd","ref":"refs/heads/master","pushedAt":"2024-05-12T09:49:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Move notification source to use registration objects.\n\nThis lets us avoid having to have None checks; we can initialize registration fields to EMPTY_NOTIFICATION_REGISTRATION and we can then blindly unregister them with no problems if they were never registered.","shortMessageHtmlLink":"Move notification source to use registration objects."}},{"before":"80fdb19c02ee0e7160d97cae56661e43161b90cc","after":"28e5d2e35ab5c06d1bf5eede8daee338bb3e85ff","ref":"refs/heads/master","pushedAt":"2024-05-11T23:33:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Ubisoft YAML search should return its (None, None) signal value if any of the various keys or indices it looks for are missing.\n\nResolves #5469","shortMessageHtmlLink":"Ubisoft YAML search should return its (None, None) signal value if an…"}},{"before":"c833cd88533d5e16fc92390210fd6206a11f4e1e","after":"80fdb19c02ee0e7160d97cae56661e43161b90cc","ref":"refs/heads/master","pushedAt":"2024-05-11T09:56:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Change default 'Installed Games Only' to show those games in a new install.\n\nI think default was flipped by commit 01340c349946f187bceb257a796bfe1e35344fba, and it looks like it's just a bug.\n\nBut with the new library-sync feature, which we guide users towards, the Lutris service is now gone, so 'Installed Games Only' effectively hides what used to be the Lutris service. I see this confusing users on Discord at least.\n\nThis only affects new installations of Lutris; the saved setting is still respected.","shortMessageHtmlLink":"Change default 'Installed Games Only' to show those games in a new in…"}},{"before":"433ec869d516351584611b70bdcce183ce0aa1c7","after":"cd97a7a45b05b9583c44ff8ac0fac1a645962e02","ref":"refs/heads/dj/fancy_search","pushedAt":"2024-05-08T21:20:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"danieljohnson2","name":"Daniel Johnson","path":"/danieljohnson2","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6507403?s=80&v=4"},"commit":{"message":"Fix some ruff gruffness.","shortMessageHtmlLink":"Fix some ruff gruffness."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEX--OAgA","startCursor":null,"endCursor":null}},"title":"Activity · lutris/lutris"}