Stevan Freeborn
cd805bdecb
ci: update workflows and environments to .NET 10
...
- Update GitHub Actions to latest versions (checkout@v6, setup-dotnet@v5, upload-artifact@v6)
- Update CI/CD workflows to use .NET 10.0.x SDK
- Bump base and runtime images to .NET 10.0 in Dockerfiles
- Update README documentation and prerequisites to reflect .NET 10 migration
2026-01-11 18:52:19 -06:00
Stevan Freeborn
a6a6cf49c7
build: upgrade to .NET 10 and update dependencies
...
- Bump TargetFramework to net10.0 in Directory.Build.props
- Update Microsoft.Extensions and OpenTelemetry packages to latest versions
- Update test SDK and xunit runner
- Refactor TestWebSocketServer to use HostBuilder and ConfigureWebHost
to respond to deprecation notice
- Pin FluentAssertions version to [7.2.0]
- Remove redundant Microsoft.Extensions.Http reference in StevesBot.Webhook
2026-01-11 18:43:51 -06:00
Stevan Freeborn
7826e835ef
feat(youtube): multiple stream notifications
...
Refactors the notification storage to support multiple stream IDs
using a ConcurrentDictionary. This ensures that the bot can track and
ignore duplicate notifications for multiple streams within a
rolling 24-hour window, rather than only tracking the single most
recent stream.
- Updated ILastPostedStreamStore to include RemoveValuesOlderThan24Hours.
- Switched LastPostedStreamStore to use ConcurrentDictionary with UTC timestamps.
- Injected TimeProvider to enable deterministic testing of time-based expiration.
- Added automatic cache pruning in NotificationHandler on every request.
- Renamed Unit/LastPostedStreamStore.cs to Unit/LastPostedStreamStoreTests.cs and expanded test coverage.
2026-01-11 10:32:57 -06:00
Stevan Freeborn
e427c5936f
chore: run dotnet format
2025-09-11 10:39:44 -05:00
Stevan Freeborn
96ba7e5fe7
fix: implement retry logic for establishing initial websocket connection with an expontential backoff
2025-09-10 16:44:46 -05:00
Stevan Freeborn
46d4cdf313
feat: WIP on retry logic
2025-09-09 15:12:59 -05:00
Stevan Freeborn
b6914f8414
fix: remove unnecessary string builder
2025-06-16 21:46:51 -05:00
Stevan Freeborn
ad3cda2b77
chore: log warning instead of error and log additional details if web socket exception occurred
2025-06-16 11:01:59 -05:00
Stevan Freeborn
168d080e04
fix: trim double quotes from message format and cleanup usings in tests
2025-06-15 11:17:13 -05:00
Stevan Freeborn
1afaa2bd42
fix: stop requeuing immediately inside loop that just continually dequeues item
2025-06-05 23:17:47 -05:00
Stevan Freeborn
5ec185ca84
chore: put containers in same network as seq container
2025-06-04 19:38:51 -05:00
Stevan Freeborn
6da43d1277
chore: put compose file back
2025-06-04 18:49:12 -05:00
Stevan Freeborn
0a3963f47f
chore: try modifying workflow
2025-06-04 18:44:03 -05:00
Stevan Freeborn
7c4eca240a
fix: modify program.cs
2025-06-04 18:35:05 -05:00
Stevan Freeborn
770995f22e
chore: fix bad file rename
2025-06-04 15:48:54 -05:00
Stevan Freeborn
9d8f5269b8
chore: rename file
2025-06-04 15:43:11 -05:00
Stevan Freeborn
3fa6195e18
chore: run dotnet format
2025-06-04 15:34:35 -05:00
Stevan Freeborn
8c800ce658
chore: working on preparations for deployment
2025-06-04 10:46:21 -05:00
Stevan Freeborn
8e0ec2d3d5
refactor: moving telemetry wip
2025-06-03 16:31:09 -05:00
Stevan Freeborn
852f27c7b5
chore: rework dockerfiles to account for multi project solution with centralized package+build prop management
2025-06-03 13:35:04 -05:00
Stevan Freeborn
e616bdedda
tests: finish adding tests for webhook
2025-06-03 12:44:02 -05:00
Stevan Freeborn
68ba283856
tests: more tests
2025-06-03 11:31:09 -05:00
Stevan Freeborn
3d0321bc42
tests: add test for notification handler
2025-06-02 11:11:36 -05:00
Stevan Freeborn
7f9404dff3
chore: stub out tests
2025-06-02 00:00:28 -05:00
Stevan Freeborn
a9fe97b411
Merge branch 'stevanfreeborn/feat/add-stream-notification' of github.com:StevanFreeborn/steves-bot into stevanfreeborn/feat/add-stream-notification
2025-05-31 21:58:25 -05:00
Stevan Freeborn
390b6f56c5
tests: add tests for data client
2025-05-31 21:58:18 -05:00
Stevan Freeborn
5399372c05
fix: don't make rest api client dependent on instrumentation
2025-05-30 20:52:33 -05:00
Stevan Freeborn
7a12f2768d
tests: add tests for page info
2025-05-30 17:27:23 -05:00
Stevan Freeborn
cbf7598227
tests: WRITE TESTS FIRST...when will I learn
2025-05-30 15:46:20 -05:00
Stevan Freeborn
c7d0df2fca
tests: begin adding tests to webhook project
2025-05-29 23:01:00 -05:00
Stevan Freeborn
0d31f12012
tests: add tests for library
2025-05-29 22:41:53 -05:00
Stevan Freeborn
ce45893caa
refactor: extract tests to library test project
2025-05-29 00:09:19 -05:00
Stevan Freeborn
6479531126
refactor: create interface for store
2025-05-28 21:59:50 -05:00
Stevan Freeborn
887b95f798
fix: prevent duplicate stream notifications
...
- add store that is singleton
to keep track of last posted
stream and prevent
posting twice for same stream
2025-05-28 21:43:57 -05:00
Stevan Freeborn
21adfcd3bb
tests: begin moving tests to lib test project
2025-05-28 17:15:38 -05:00
Stevan Freeborn
113cdf7a82
refactor: clean up usings
2025-05-28 17:15:26 -05:00
Stevan Freeborn
2ddc472f46
feat: add Discord notification options and handlers for YouTube events
2025-05-28 17:14:55 -05:00
Stevan Freeborn
1afd17f2d1
feat: create discord message when stream goes live
2025-05-27 23:13:19 -05:00
Stevan Freeborn
992811ccad
refactor: extract to handler
2025-05-27 17:10:57 -05:00
Stevan Freeborn
1669bdeebc
fix: make sure it is a stream and it is live
2025-05-27 16:56:38 -05:00
Stevan Freeborn
c544e33e28
feat: determine if notification is for stream or not
2025-05-27 16:48:57 -05:00
Stevan Freeborn
6543387270
feat: begin working through how we will handle resubscribing and unsubscribing
2025-05-26 22:55:08 -05:00
Stevan Freeborn
0b42739cbb
feat: implement verification of subscription request
2025-05-26 12:38:04 -05:00
Stevan Freeborn
a1ef35d0a7
feat: begin adding subscription to YT notifications
2025-05-26 11:56:43 -05:00
Stevan Freeborn
a8de49cee3
refactor: reorganize solution for better multi-project support/management
2025-05-25 18:38:52 -05:00
Stevan Freeborn
00158dff04
fix: handle sending resume in hello event
2025-05-24 22:44:53 -05:00
Stevan Freeborn
2a014bf8f8
fix: change order of resuming and make sure to reset heartbeat tracking values after canceling the heartbeat task
2025-05-24 13:20:45 -05:00
Stevan Freeborn
01f69f3b6f
fix: catch json exceptions and log them
2025-05-24 12:59:07 -05:00
Stevan Freeborn
4c28cb1f5a
chore: use aspnet base image
2025-05-24 11:30:00 -05:00
Stevan Freeborn
eefebf13d2
chore: disable CA1848 for logging
2025-05-24 11:20:55 -05:00