{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":798704425,"defaultBranch":"main","name":"kcx","ownerLogin":"KnightChaser","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-05-10T10:11:52.000Z","ownerAvatar":"https://github.com/avatars/u/47494005?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1719150043.0","currentOid":""},"activityList":{"items":[{"before":"ee3d08b07cf3f5597db94fc2dcf14f7a3c1526f0","after":"74110d82479e7b0727c9c3783d34d990ef56ecd9","ref":"refs/heads/main","pushedAt":"2024-09-03T04:11:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Notice of public service discontinuation in README.md","shortMessageHtmlLink":"Notice of public service discontinuation in README.md"}},{"before":"f2d81fffe496e976de4c55a9ccda66810aeb8af9","after":"ee3d08b07cf3f5597db94fc2dcf14f7a3c1526f0","ref":"refs/heads/main","pushedAt":"2024-08-13T04:19:11.000Z","pushType":"pr_merge","commitsCount":48,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Merge pull request #4 from KnightChaser/dev/transition-to-sveltekit\n\nTransitioning to Sveltekit","shortMessageHtmlLink":"Merge pull request #4 from KnightChaser/dev/transition-to-sveltekit"}},{"before":"397566851ded44feeb31aee79706a7032d3a011b","after":"228c73ca6eecb99ef2f20b67a6b1f77556b034f2","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-07-07T13:06:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"readme.MD update for email setup","shortMessageHtmlLink":"readme.MD update for email setup"}},{"before":"11846a294dafa00e8ef6c2a8041e22deea1a7798","after":"397566851ded44feeb31aee79706a7032d3a011b","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-07-07T08:37:48.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Change password option for user setting page","shortMessageHtmlLink":"Change password option for user setting page"}},{"before":"3bb80cfd9ea564fefda85a3dfcd1f3200e2028cb","after":"11846a294dafa00e8ef6c2a8041e22deea1a7798","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-07-06T12:23:56.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Update profile picture uploading\n\nThe profile picture upload feature has been updated to properly center the upload icon, display the uploaded file name and size, and ensure the cropper.js object fits within the SweetAlert2 modal.","shortMessageHtmlLink":"Update profile picture uploading"}},{"before":"1d22926a35fc98b3a0b9bd13fd08a159f9a49b28","after":"3bb80cfd9ea564fefda85a3dfcd1f3200e2028cb","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-07-06T09:25:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Get the number of transactions made","shortMessageHtmlLink":"Get the number of transactions made"}},{"before":"5906e14e4c8eb0d2c1e5a9d7d644010c6bad0204","after":"1d22926a35fc98b3a0b9bd13fd08a159f9a49b28","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-07-03T12:30:57.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Check crypto ticker for trade APIs\n\nInvalid tickers may result invalid transactions, which doesn't make the real money transactions","shortMessageHtmlLink":"Check crypto ticker for trade APIs"}},{"before":"4737de5a8d4e184ba0d1863ac9fbd19aec7a9ab1","after":"5906e14e4c8eb0d2c1e5a9d7d644010c6bad0204","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-26T14:44:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Adding HTTPS Detection and Content-Security-Policy Meta Tag in SvelteKit\n\nIntegrated a script into app.html to dynamically add a Content-Security-Policy meta tag when the current page URL uses HTTPS, enhancing security. Finally found the solution!","shortMessageHtmlLink":"Adding HTTPS Detection and Content-Security-Policy Meta Tag in SvelteKit"}},{"before":"49d97a6f9894d17a6f5732fe9837f07c23748bc7","after":"4737de5a8d4e184ba0d1863ac9fbd19aec7a9ab1","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-26T14:18:11.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Correctly applying meta.js configuration\n\nSelectively apply TLS/SSL meta tag according to the env (Refer to the commit #086e27f, which was incorrect of loading a JavaScript file in Sveltekit)","shortMessageHtmlLink":"Correctly applying meta.js configuration"}},{"before":"85104740c262b8da05036c1ee1eeaddb3d58e8e1","after":"49d97a6f9894d17a6f5732fe9837f07c23748bc7","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-26T13:25:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Fix localStorage not defined in SSR (Sveltekit)\n\nLocalStorage objects are not defined in Sveltekit, which is the server rendering side","shortMessageHtmlLink":"Fix localStorage not defined in SSR (Sveltekit)"}},{"before":"2b5df8013a329d55eb1722f54adf25329bd7cfd3","after":"85104740c262b8da05036c1ee1eeaddb3d58e8e1","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T14:48:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Embed meta.js content to app.html directly\n\nFound that meta.js as a separated file didn't work at all :(","shortMessageHtmlLink":"Embed meta.js content to app.html directly"}},{"before":"d7ee349d74ec3f71fb6a69242e831e8d5bc93dfe","after":"2b5df8013a329d55eb1722f54adf25329bd7cfd3","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T14:29:37.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Specify meta.js location correctly\n\nBy using %sveltekit% prefix","shortMessageHtmlLink":"Specify meta.js location correctly"}},{"before":"d8c7f2f6fc9f27cbd7d2b6cc10b6f2634d34e7c3","after":"d7ee349d74ec3f71fb6a69242e831e8d5bc93dfe","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T14:10:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Add meta.js for allowing mixed env\n\nCurrently this is the best","shortMessageHtmlLink":"Add meta.js for allowing mixed env"}},{"before":"e63c85e7dc39802a7499760f9c683e3c166339ac","after":"d8c7f2f6fc9f27cbd7d2b6cc10b6f2634d34e7c3","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T13:58:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Fix typo at the Sqlite3 DB setup code\n\nstring.lower() should contain only lowercase alphabets","shortMessageHtmlLink":"Fix typo at the Sqlite3 DB setup code"}},{"before":"e63c85e7dc39802a7499760f9c683e3c166339ac","after":null,"ref":"refs/heads/d","pushedAt":"2024-06-23T13:40:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"}},{"before":null,"after":"e63c85e7dc39802a7499760f9c683e3c166339ac","ref":"refs/heads/d","pushedAt":"2024-06-23T13:40:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Show only owned assets toggle button","shortMessageHtmlLink":"Show only owned assets toggle button"}},{"before":"80b4861d6fd40d6ec57a4c8bf49594b222b002e4","after":"e63c85e7dc39802a7499760f9c683e3c166339ac","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T13:37:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Show only owned assets toggle button","shortMessageHtmlLink":"Show only owned assets toggle button"}},{"before":"6a5644588d0e304ac67d9acf4fb18b24d2bd4178","after":"80b4861d6fd40d6ec57a4c8bf49594b222b002e4","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T13:27:43.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Splitting centerPanel.svelte into independent components\n\ncenterPanel.svelte can be decomposed as headerPanel.svelte, chartPanel.svelte, and orderPanel.svelte. This approach gives more consistent and manageable approaches. Plus, used Svelte store to keep which market the user is watching, to share the same data across all Svelte pages in /exchange endpoint.","shortMessageHtmlLink":"Splitting centerPanel.svelte into independent components"}},{"before":"96a46b8a681d97bbcbc574eeac174e9199d8ddde","after":"6a5644588d0e304ac67d9acf4fb18b24d2bd4178","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T12:25:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Replace deprecated querystring method\n\nFrom changing from Svelte to Sveltekit, the queryString isn't available method now. Instead, we use shared variable between exchange/+page.svelte and exchange/leftPanel.svelte","shortMessageHtmlLink":"Replace deprecated querystring method"}},{"before":"7be730cc3239e22f4ac8212ce1630e06998ce927","after":"96a46b8a681d97bbcbc574eeac174e9199d8ddde","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T12:24:21.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Migrating /exchange service point to Sveltekit","shortMessageHtmlLink":"Migrating /exchange service point to Sveltekit"}},{"before":"927ad01c193edddd59b8b0b0039329011dd03c17","after":"7be730cc3239e22f4ac8212ce1630e06998ce927","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T12:14:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Migrating /exchange service point to Sveltekit","shortMessageHtmlLink":"Migrating /exchange service point to Sveltekit"}},{"before":"a7779def3d810ab941cacd4a496b7ad0c273956f","after":"927ad01c193edddd59b8b0b0039329011dd03c17","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T11:58:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Refactor site structure + user page\n\nExcept for the asset tracking page because it's related to the exchange site\n\n(Progress of solving issues #2)","shortMessageHtmlLink":"Refactor site structure + user page"}},{"before":null,"after":"a7779def3d810ab941cacd4a496b7ad0c273956f","ref":"refs/heads/dev/transition-to-sveltekit","pushedAt":"2024-06-23T11:57:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Refactor site structure + user page\n\nExcept for the asset tracking page because it's related to the exchange site","shortMessageHtmlLink":"Refactor site structure + user page"}},{"before":"69fa358ba4bedbc68753c41b751e09fe8a7d9c16","after":"f2d81fffe496e976de4c55a9ccda66810aeb8af9","ref":"refs/heads/main","pushedAt":"2024-06-22T14:59:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Fix wrong filepath for image directory\n\nAfter moving backend stuff to /backend, there are some changes to the path configurations","shortMessageHtmlLink":"Fix wrong filepath for image directory"}},{"before":"e5813b4f17a1f7df49736035d6398c3f20dcf8ae","after":"69fa358ba4bedbc68753c41b751e09fe8a7d9c16","ref":"refs/heads/main","pushedAt":"2024-06-22T14:34:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Arrange backend stuff under /backend","shortMessageHtmlLink":"Arrange backend stuff under /backend"}},{"before":"aadbdf820a152e270c2c5e218a40490d285c5b1e","after":"e5813b4f17a1f7df49736035d6398c3f20dcf8ae","ref":"refs/heads/main","pushedAt":"2024-06-09T09:40:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Proper closure of SQLite3 objects for leaderboard task\n\nThe changes ensure proper closure of SQLite sessions using context management to prevent connection pool exhaustion, while confirming that the Redis client does not require manual closing.","shortMessageHtmlLink":"Proper closure of SQLite3 objects for leaderboard task"}},{"before":"d5eca7a6418bc56a110dfc322200ea9087e52e28","after":"aadbdf820a152e270c2c5e218a40490d285c5b1e","ref":"refs/heads/main","pushedAt":"2024-06-09T09:32:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Robust NaN check and recover for totalAsssetTable\n\nThe previous code's problem was that it allowed `NaN` values to persist, requiring a manual page refresh. The modified code introduces an `initializeCountUp` function for modularity and an `updateCountUp` function that retries fetching data if `NaN` is encountered, ensuring the total asset value is updated correctly and continuously.","shortMessageHtmlLink":"Robust NaN check and recover for totalAsssetTable"}},{"before":"24bb025f86eb131139270a0604fd56c64310838e","after":"d5eca7a6418bc56a110dfc322200ea9087e52e28","ref":"refs/heads/main","pushedAt":"2024-06-09T09:22:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Restart thread tasks automatically in case of exception\n\nThe `start_fetch_and_store_market_data` and `start_rank_user_leaderboard` functions have been modified to include exception handling and automatic restarting within an infinite loop to ensure service continuity.","shortMessageHtmlLink":"Restart thread tasks automatically in case of exception"}},{"before":"d4899c89e69ad879989a8ee2198026fa2ae4ce71","after":"24bb025f86eb131139270a0604fd56c64310838e","ref":"refs/heads/main","pushedAt":"2024-06-08T13:25:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Improved User Leaderboard Ranking + bugfix\n\nThe changes optimize fetching of current cryptocurrency prices by preloading all necessary values from Redis in a single operation. Additionally, the refactored code ensures accurate mapping of user balances to their corresponding users by using a dictionary, and streamlines the calculation of total asset values by filtering out non-asset columns only once, leading to more efficient and accurate ranking of users based on their total asset value. (There were some bugs calculating the estimated asset values incorrectly)","shortMessageHtmlLink":"Improved User Leaderboard Ranking + bugfix"}},{"before":"f8de90a8f7321bc1a5fa7ae87568ce3fe75b2fcd","after":"d4899c89e69ad879989a8ee2198026fa2ae4ce71","ref":"refs/heads/main","pushedAt":"2024-06-08T12:34:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"KnightChaser","name":"Garam Lee","path":"/KnightChaser","primaryAvatarUrl":"https://github.com/avatars/u/47494005?s=80&v=4"},"commit":{"message":"Added hover popups to show asset differences on leaderboard.\n\nYeah, now it looks like a real leaderboard","shortMessageHtmlLink":"Added hover popups to show asset differences on leaderboard."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEqyGZYQA","startCursor":null,"endCursor":null}},"title":"Activity ยท KnightChaser/kcx"}