{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":378669371,"defaultBranch":"master","name":"Discord-Stream-Notify-Bot","ownerLogin":"konnokai","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-06-20T14:47:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4331068?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1684374703.509975","currentOid":""},"activityList":{"items":[{"before":"0301c53b4fb95aed626bac39bca1312fa73b0dfd","after":"a95194e45d0e4da44c328088eaf6c68d3bdc65de","ref":"refs/heads/master","pushedAt":"2024-06-09T16:24:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 僅不重複通知已關台直播,轉會限等直播一樣通知","shortMessageHtmlLink":"feat: 僅不重複通知已關台直播,轉會限等直播一樣通知"}},{"before":"e3b90722804ef3a84db91f1cf1a7d5caa01ec840","after":"0301c53b4fb95aed626bac39bca1312fa73b0dfd","ref":"refs/heads/master","pushedAt":"2024-05-31T13:46:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 顯示直播 Id 並忽略空的直播 Id","shortMessageHtmlLink":"feat: 顯示直播 Id 並忽略空的直播 Id"}},{"before":"047d011bb247cfa43350ae5b54678cd957294d75","after":"e3b90722804ef3a84db91f1cf1a7d5caa01ec840","ref":"refs/heads/master","pushedAt":"2024-05-27T15:37:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 改用 WebHook 發送通知","shortMessageHtmlLink":"feat: 改用 WebHook 發送通知"}},{"before":"e8644068216241aca7864dd4cfc01b5303f5d1e3","after":"047d011bb247cfa43350ae5b54678cd957294d75","ref":"refs/heads/master","pushedAt":"2024-05-20T04:01:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: #19","shortMessageHtmlLink":"fix: #19"}},{"before":"b17ee746629e4dbd29293cc876a34218e29be70c","after":"e8644068216241aca7864dd4cfc01b5303f5d1e3","ref":"refs/heads/master","pushedAt":"2024-05-20T02:30:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: refactor TwitterSpacesService for efficiency and error handling\n\n- Change constructor's usage of `HttpClient` parameter to discard parameter\n- Downgrade log level from `Error` to `Warn` for 429 HTTP status code in `GetTwitterSpaceByUsersIdAsync` method\n- Refactor conditional checks and hashSet additions in `TwitterSpacesService.cs` for better readability and efficiency\n- Encapsulate error logging in `TwitterSpacesService.cs` within blocks\n- Increase the timer delay from 90 to 120 seconds in the spaces timer setup\n\nSigned-off-by: 孤之界 ","shortMessageHtmlLink":"refactor: refactor TwitterSpacesService for efficiency and error hand…"}},{"before":"0a5ac051bf2f254a56192d756c0ea4c9c3c86bee","after":"b17ee746629e4dbd29293cc876a34218e29be70c","ref":"refs/heads/master","pushedAt":"2024-05-16T16:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: 修正因缺少 User-Agent 導致 CloudFront 回傳 404 錯誤的問題","shortMessageHtmlLink":"fix: 修正因缺少 User-Agent 導致 CloudFront 回傳 404 錯誤的問題"}},{"before":"a795560cef5115c87828799019a46d3bd8776509","after":"0a5ac051bf2f254a56192d756c0ea4c9c3c86bee","ref":"refs/heads/master","pushedAt":"2024-05-13T08:46:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"style: 加點空格","shortMessageHtmlLink":"style: 加點空格"}},{"before":"892382fa396126cace84ae77df12f6446f2d4352","after":"a795560cef5115c87828799019a46d3bd8776509","ref":"refs/heads/master","pushedAt":"2024-05-13T08:43:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: 文本修正並重構 UptimeKumaClient","shortMessageHtmlLink":"refactor: 文本修正並重構 UptimeKumaClient"}},{"before":"23aba4d51d100364c903eb6922c57e7b71e8f18d","after":"892382fa396126cace84ae77df12f6446f2d4352","ref":"refs/heads/master","pushedAt":"2024-05-13T08:26:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: improve error logging and file naming conventions\n\n- Refactor exception handling in UnhandledException event to log errors with Serilog and check for Debugger attachment before writing to a crash log file.\n- Adjust file naming convention for crash logs to include underscores instead of hyphens.\n- Add missing parentheses to `DiscordSocketClient` instantiation for clarity, although not strictly necessary for functionality.\n\nSigned-off-by: 孤之界 ","shortMessageHtmlLink":"refactor: improve error logging and file naming conventions"}},{"before":"8e8f41814df29cc02c30ef5f0f1dcba786cb05e9","after":"23aba4d51d100364c903eb6922c57e7b71e8f18d","ref":"refs/heads/master","pushedAt":"2024-05-13T08:11:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: enhance exception logging and app stability\n\n- Improve unhandled exception handling in `Program.cs` by logging exceptions to a file and exiting the application.\n\nSigned-off-by: 孤之界 ","shortMessageHtmlLink":"fix: enhance exception logging and app stability"}},{"before":"9b024ddab69b0ef014a18c5143cd9e6799ab692f","after":"8e8f41814df29cc02c30ef5f0f1dcba786cb05e9","ref":"refs/heads/master","pushedAt":"2024-04-30T10:32:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: refactor YouTube channel spider integration\n\n- Trigger typing indication in chat before processing YouTube channel spider commands\n- Optimize the checking process for guilds associated with YouTube channels using a HashSet to prevent redundant checks\n- Change method of fetching guild information to improve performance\n- Handle exception more specifically during YouTube channel processing and log errors with more detail\n- Update the footer text construction in the EmbedBuilder for clarity and correctness\n- Introduce a new command `RemoveChannelSpider` for removing YouTube channel spiders, including handling for various exceptions and confirmation messages\n\nSigned-off-by: 孤之界 ","shortMessageHtmlLink":"feat: refactor YouTube channel spider integration"}},{"before":"611585ea7207f44b7ae56f3d840a039f23c69d07","after":"9b024ddab69b0ef014a18c5143cd9e6799ab692f","ref":"refs/heads/master","pushedAt":"2024-04-30T10:07:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 新增 SetChannelSpiderGuildId 指令","shortMessageHtmlLink":"feat: 新增 SetChannelSpiderGuildId 指令"}},{"before":"d5cab270d2f1da1d3fb12abf88b51ab70457a97c","after":"611585ea7207f44b7ae56f3d840a039f23c69d07","ref":"refs/heads/master","pushedAt":"2024-04-16T06:27:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 一龍馬不要再亂搞推特了幹你娘","shortMessageHtmlLink":"feat: 一龍馬不要再亂搞推特了幹你娘"}},{"before":"bb28ae65256a4c217f559db9f50aeed66ded01ee","after":"d5cab270d2f1da1d3fb12abf88b51ab70457a97c","ref":"refs/heads/master","pushedAt":"2024-04-11T01:23:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 更新 Help 文本","shortMessageHtmlLink":"feat: 更新 Help 文本"}},{"before":"0ed56aac5c545d710872267e681be57dd0b3c3e8","after":"bb28ae65256a4c217f559db9f50aeed66ded01ee","ref":"refs/heads/master","pushedAt":"2024-04-11T01:15:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: 將待機室最大開始直播允許時間從 7 天調整為 14 天\n- 將 2434 整理取消的 Log 等級降低至 Warn","shortMessageHtmlLink":"feat: 將待機室最大開始直播允許時間從 7 天調整為 14 天"}},{"before":"83c5a896a36b6e415207d3c2ee1b9c6572a3c1ee","after":"0ed56aac5c545d710872267e681be57dd0b3c3e8","ref":"refs/heads/master","pushedAt":"2024-04-06T18:20:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: 未設定到新屬性的問題","shortMessageHtmlLink":"fix: 未設定到新屬性的問題"}},{"before":"4359552169d3cc71f768e4d9422fc70760d06edb","after":"83c5a896a36b6e415207d3c2ee1b9c6572a3c1ee","ref":"refs/heads/master","pushedAt":"2024-04-06T18:05:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: 修正成正確的屬性","shortMessageHtmlLink":"fix: 修正成正確的屬性"}},{"before":"7cb37e50213b9e1eef8b909171cf1d6bcb717d8f","after":"4359552169d3cc71f768e4d9422fc70760d06edb","ref":"refs/heads/master","pushedAt":"2024-04-06T15:42:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: enhance bot's notification and messaging system\n\n- Add new configuration properties for sending messages in `BotConfig.cs`\n- Introduce a mechanism to send notifications to a specific guild and channel when a new voice channel is created in `YoutubeStreamService.cs`\n- Implement conditional role mention in messages based on configuration in `YoutubeStreamService.cs`\n- Refactor message sending logic to support both default and guild-specific channels in `YoutubeStreamService.cs`\n\nSigned-off-by: 孤之界 ","shortMessageHtmlLink":"feat: enhance bot's notification and messaging system"}},{"before":"874399d1749d79ce0c8e77bd35521da909d798cf","after":"7cb37e50213b9e1eef8b909171cf1d6bcb717d8f","ref":"refs/heads/master","pushedAt":"2024-03-19T03:39:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feat: update integrations and dependencies\n\n- Update package references for `Discord.Net`, `Google.Apis.YouTube.v3`, `HtmlAgilityPack`, `Polly`, `SQLitePCLRaw.bundle_green`, and `StackExchange.Redis` to newer versions.\n- Change attribute from `[EnabledInDm(false)]` to `[RequireContext(ContextType.Guild)]` for various commands across Twitcasting, Twitch, and TwitterSpaces integrations.\n- Streamline channel addition commands by enforcing channel type restrictions directly in the method parameters for Twitcasting, Twitch, Twitter Spaces, and Youtube integrations.\n- Remove channel type validation checks within command methods due to redundant validation after previous update.\n- Adjust permissions and simplify a few YouTube related command attributes, including changing permissions for the `now-record-channel` command to require owner and defaulting to administrator permissions.","shortMessageHtmlLink":"feat: update integrations and dependencies"}},{"before":"a6814d2c8409bd84ddcf3abdd538f8561035aef1","after":"874399d1749d79ce0c8e77bd35521da909d798cf","ref":"refs/heads/master","pushedAt":"2024-03-15T10:01:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: optimize YouTube Integration and Cleanup\n\n- Refactor to use `YouTubeService` instance instead of `yt` for YouTube API service calls across multiple files.\n- Remove message sending logic after successful recording request in `ReminderAction.cs`.\n- Remove `noticeRecordChannel` and `callbackUrl` field in favor of directly using `_callbackUrl`.\n- Fix unused import in `Youtube.cs` by adjusting the order of imports.","shortMessageHtmlLink":"refactor: optimize YouTube Integration and Cleanup"}},{"before":"3c96b4ff1f437f9a6284f1a3cbb436f8cbe78982","after":"a6814d2c8409bd84ddcf3abdd538f8561035aef1","ref":"refs/heads/master","pushedAt":"2024-02-15T04:03:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: improve guild member count checks\n\n- Refactor guild member count check and error message in `RequireGuildMemberCountAttribute.cs`\n- Store guild member count in a variable for better readability and error message clarity\n- Update error message format to include the required and current member counts\n- Mention the potential issue with member count due to caching in the error message","shortMessageHtmlLink":"refactor: improve guild member count checks"}},{"before":"45dbabdba283666cad4afa3ab13e899b7a1e637e","after":"3c96b4ff1f437f9a6284f1a3cbb436f8cbe78982","ref":"refs/heads/master","pushedAt":"2024-02-15T03:09:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: refactor administrative service codebase\n\n- Make the `_Client` field in `AdministrationService` read-only\n- Remove unnecessary `return` after calling `Program.ChangeStatus()`\n- Remove check for Bot Owner's presence in a guild, simplifying code\n- Optimize check when no guilds are found for a given keyword by using `.Any()` instead of `.Count()`\n- Add curly braces to an `if` block in the command for leaving a guild, improving code readability\n- Change log level from `Error` to `Warn` for `429 TooManyRequests` errors when preparing Twitter spaces\n- Improve logging by passing exception as a separate parameter to the logging method in `TwitterSpacesService`","shortMessageHtmlLink":"refactor: refactor administrative service codebase"}},{"before":"68d4f8a7ec28c68e4cc6c011f8cff9ea87a6e3af","after":"45dbabdba283666cad4afa3ab13e899b7a1e637e","ref":"refs/heads/master","pushedAt":"2024-02-15T01:15:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"fix: refactor error handling and update checks\n\n- Remove a speculative comment about a 500 error possibly causing a check to get stuck\n- Update the error handling logic to account for 'internalservererror' messages along with '500' and 'badgateway'","shortMessageHtmlLink":"fix: refactor error handling and update checks"}},{"before":"a8690288288f64b35d2bca782b4f87b771190f5f","after":"68d4f8a7ec28c68e4cc6c011f8cff9ea87a6e3af","ref":"refs/heads/master","pushedAt":"2024-02-08T13:24:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feature: 新增 SonarQube","shortMessageHtmlLink":"feature: 新增 SonarQube"}},{"before":"cc3924efbc019365bdb1ecc7bebfd55e1ee73ce1","after":"a8690288288f64b35d2bca782b4f87b771190f5f","ref":"refs/heads/master","pushedAt":"2024-02-08T13:21:33.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feature: 新增 SonarQube","shortMessageHtmlLink":"feature: 新增 SonarQube"}},{"before":"644c620a3d5a637284eb0728aeacbbef4888fa25","after":"cc3924efbc019365bdb1ecc7bebfd55e1ee73ce1","ref":"refs/heads/master","pushedAt":"2024-01-16T02:33:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"feature: 設定結束通知時提醒該頻道不會有結束通知\n\n- Optimize the query for fetching YouTube channel titles by using `AsNoTracking`.\n- Simplify namespace references in `Youtube` class methods and command parameters.\n- Add missing `using Microsoft.EntityFrameworkCore;` directive.\n- Use the channel title instead of the channel ID in the user feedback messages for the `SetMessage` command.\n`RecordYoutubeChannel` list when setting the end stream message.","shortMessageHtmlLink":"feature: 設定結束通知時提醒該頻道不會有結束通知"}},{"before":"9f0b303223a494170dcc44dc82c72327dab714c2","after":"644c620a3d5a637284eb0728aeacbbef4888fa25","ref":"refs/heads/master","pushedAt":"2024-01-16T01:18:11.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: improve code clarity and efficiency\n\n- Refactor empty list check using `.Any()` instead of `Count == 0`\n- Remove unused variable assignment from the `try` block within the comment checking logic\n- Consolidate logging of errors to incorporate exception object along with the message\n- Optimize logging by including exception object directly rather than calling `ex.Message`","shortMessageHtmlLink":"refactor: improve code clarity and efficiency"}},{"before":"6a782b0ecc04e3e800661c55052f98a7e79e05d9","after":"9f0b303223a494170dcc44dc82c72327dab714c2","ref":"refs/heads/master","pushedAt":"2024-01-02T02:38:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"refactor: 改進 URL 處理和清理配置\n\n- 在 `AddMemberCheckAsync` 方法的命令範例屬性中更新範例 URL\n- 在 `RemoveMemberCheckAsync` 方法的命令範例屬性中更新範例 URL\n- 重新組織 `YoutubeStreamService` 中的 URL 解析邏輯,優先考慮舊的頻道 URL 格式而非新格式\n- 增加 URL 格式驗證及改善在取得頻道 Id 過程中的異常處理\n- 如果在 `CheckMemberShip` 中找不到記錄頻道,則從資料庫中移除會限驗證設定","shortMessageHtmlLink":"refactor: 改進 URL 處理和清理配置"}},{"before":"0ab6378afb959a34fde8cf458af05f632a7bba4c","after":"6a782b0ecc04e3e800661c55052f98a7e79e05d9","ref":"refs/heads/master","pushedAt":"2024-01-02T01:27:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}},{"before":"077ff6b4d30527c1a640f112e92533cb564358ee","after":"0ab6378afb959a34fde8cf458af05f632a7bba4c","ref":"refs/heads/master","pushedAt":"2024-01-02T01:13:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"konnokai","name":"孤之界","path":"/konnokai","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4331068?s=80&v=4"},"commit":{"message":"Update README.md","shortMessageHtmlLink":"Update README.md"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYHIYngA","startCursor":null,"endCursor":null}},"title":"Activity · konnokai/Discord-Stream-Notify-Bot"}