From f56950a6e377807c602a88ce7505feb2051c8f8a Mon Sep 17 00:00:00 2001 From: Bob Loblaw Date: Sat, 8 Feb 2025 17:30:17 +0100 Subject: [PATCH 1/2] Move projects under /src, /tests and /docker subdirectories --- .dockerignore | 6 +- .gitignore | 6 +- Kattbot.sln | 58 ++++-------------- Kattbot/Dockerfile | 1 - docker-vs/docker-compose.override.yml | 8 --- docker-vs/docker-compose.yml | 36 ----------- docker-vs/docker-vs.dcproj | 15 ----- docker/Dockerfile | 13 ---- docker/Prod.Dockerfile | 32 ---------- ...od-compose.yml => docker-compose.prod.yml} | 8 +-- docker/docker-compose.yml | 12 ++-- docker/docker.dcproj | 15 +++++ {docker-vs => docker}/launchSettings.json | 0 .../Kattbot.Common}/Kattbot.Common.csproj | 0 .../Models/BotRoles/BotRoleType.cs | 0 .../Models/BotRoles/BotUserRole.cs | 0 .../Models/Emotes/EmoteEntity.cs | 0 .../Models/Emotes/EmoteSource.cs | 0 .../Models/Emotes/EmoteUsageResult.cs | 0 .../Models/Emotes/TempEmote.cs | 0 .../Kattbot.Common}/Models/GuildSetting.cs | 0 .../Kattbot.Common}/Models/IntervalValue.cs | 0 .../Models/KattGpt/ChatCompletionChoice.cs | 0 .../KattGpt/ChatCompletionCreateRequest.cs | 0 .../KattGpt/ChatCompletionCreateResponse.cs | 0 .../Models/KattGpt/ChatCompletionFunction.cs | 0 .../KattGpt/ChatCompletionFunctionCall.cs | 0 .../KattGpt/ChatCompletionFunctionChoice.cs | 0 .../Models/KattGpt/ChatCompletionMessage.cs | 0 .../KattGpt/ChatCompletionResponseError.cs | 0 .../ChatCompletionResponseErrorWrapper.cs | 0 .../Models/KattGpt/ChatCompletionTool.cs | 0 .../Models/KattGpt/ChatCompletionToolCall.cs | 0 .../KattGpt/ChatCompletionToolChoice.cs | 0 .../Models/KattGpt/ChatCompletionUsage.cs | 0 .../Models/KattGpt/ChoiceFinishReason.cs | 0 .../Models/KattGpt/StringOrObject.cs | 0 .../Models/KattGpt/StringOrObjectConverter.cs | 0 .../Kattbot.Common}/Models/PaginatedResult.cs | 0 .../Kattbot.Common}/Utils/StringExtensions.cs | 0 .../Kattbot.Data.Migrations.csproj | 0 .../KattbotContextDesignTimeFactory.cs | 0 .../20201101201118_Init.Designer.cs | 0 .../Migrations/20201101201118_Init.cs | 0 .../20201101204345_AddGuildId.Designer.cs | 0 .../Migrations/20201101204345_AddGuildId.cs | 0 ...14634_RenameEmoteIdToEmoteCode.Designer.cs | 0 ...20201101214634_RenameEmoteIdToEmoteCode.cs | 0 ...102182846_AddMessageIdToEntity.Designer.cs | 0 .../20201102182846_AddMessageIdToEntity.cs | 0 ...14530_AddLastLiveMessageEntity.Designer.cs | 0 ...20201102214530_AddLastLiveMessageEntity.cs | 0 ...09185829_RemoveLastLiveMessage.Designer.cs | 0 .../20201109185829_RemoveLastLiveMessage.cs | 0 .../20201116192821_AddEmoteId.Designer.cs | 0 .../Migrations/20201116192821_AddEmoteId.cs | 0 .../20210224160716_AddEvents.Designer.cs | 0 .../Migrations/20210224160716_AddEvents.cs | 0 ...eEventDateTimeOffsetToDateTime.Designer.cs | 0 ...611_ChangeEventDateTimeOffsetToDateTime.cs | 0 ...20210310231543_RemoveEmoteCode.Designer.cs | 0 .../20210310231543_RemoveEmoteCode.cs | 0 .../20210312235603_AddBotUserRole.Designer.cs | 0 .../20210312235603_AddBotUserRole.cs | 0 ...0210317213350_AddGuildSettings.Designer.cs | 0 .../20210317213350_AddGuildSettings.cs | 0 .../20210703201146_RemoveEvents.Designer.cs | 0 .../Migrations/20210703201146_RemoveEvents.cs | 0 .../Migrations/KattbotContextModelSnapshot.cs | 0 .../Kattbot.Data.Migrations}/appsettings.json | 0 .../Kattbot.Data}/Kattbot.Data.csproj | 0 .../Kattbot.Data}/KattbotContext.cs | 0 .../Repositories/BotUserRolesRepository.cs | 0 .../Repositories/EmoteStatsRepository.cs | 0 .../Repositories/EmotesRepository.cs | 0 .../Repositories/GuildSettingsRepository.cs | 0 .../Kattbot}/Attributes/BaseCommandCheck.cs | 0 .../Attributes/RequireOwnerOrFriend.cs | 0 .../CommandHandlers/CommandRequest.cs | 0 .../EmoteStats/GetEmoteStats.cs | 0 .../EmoteStats/GetGuildEmoteStats.cs | 0 .../EmoteStats/GetUserEmoteStats.cs | 0 .../CommandHandlers/Images/DallePrompt.cs | 0 .../Images/DallifyImageBase.cs | 0 .../Images/DallifyImageEmote.cs | 0 .../Images/DallifyImageMessage.cs | 0 .../Images/DallifyImageUser.cs | 0 .../CommandHandlers/Images/GetBigEmote.cs | 0 .../CommandHandlers/Images/PetImage.cs | 0 .../Images/TransformImageEffect.cs | 0 .../Images/TransformImageEmote.cs | 0 .../Images/TransformImageMessage.cs | 0 .../Images/TransformImageUser.cs | 0 .../CommandHandlers/Random/ClapText.cs | 0 .../CommandHandlers/Speech/SpeechCommand.cs | 0 .../Kattbot}/CommandModules/AdminModule.cs | 0 .../Kattbot}/CommandModules/EmoteModule.cs | 0 .../Kattbot}/CommandModules/HelpModule.cs | 0 .../Kattbot}/CommandModules/ImageModule.cs | 0 .../Kattbot}/CommandModules/RandomModule.cs | 0 .../ResultFormatters/FormattedResultHelper.cs | 0 .../CommandModules/StatsCommandModule.cs | 0 .../TypeReaders/GenericArgumentConverter.cs | 0 .../TypeReaders/StatsCommandArgs.cs | 0 .../Kattbot}/CommandModules/UtilsModule.cs | 0 {Kattbot => src/Kattbot}/Config/BotOptions.cs | 0 .../Kattbot}/Config/ChannelOptions.cs | 0 .../Kattbot}/Config/GuildOptions.cs | 0 .../Kattbot}/Config/KattGptOptions.cs | 0 {Kattbot => src/Kattbot}/Config/Template.cs | 0 src/Kattbot/Dockerfile | 17 +++++ .../Kattbot}/Helpers/BoundedQueue.cs | 0 .../Kattbot}/Helpers/DateTimeProvider.cs | 0 .../Kattbot}/Helpers/DiscordConstants.cs | 0 .../Kattbot}/Helpers/DiscordExtensions.cs | 0 .../Kattbot}/Helpers/DiscordResolver.cs | 0 .../Kattbot}/Helpers/EmbedBuilderHelper.cs | 0 {Kattbot => src/Kattbot}/Helpers/EmojiMap.cs | 0 .../Kattbot}/Helpers/EmoteHelper.cs | 0 .../Kattbot}/Helpers/TryResolveResult.cs | 0 .../CommandRequestPipelineBehaviour.cs | 0 .../Kattbot}/Infrastructure/NoWayGateway.cs | 0 .../Infrastructure/NotificationMediator.cs | 0 .../Infrastructure/NotificationPublisher.cs | 0 .../ServiceCollectionExtensions.cs | 0 {Kattbot => src/Kattbot}/Kattbot.csproj | 0 .../BaseNotificationHandler.cs | 0 .../MessageCreatedNotificationHandler.cs | 0 .../MessageDeletedNotificationHandler.cs | 0 ...MessageReactionAddedNotificationHandler.cs | 0 ...ssageReactionRemovedNotificationHandler.cs | 0 .../MessageUpdatedNotificationHandler.cs | 0 .../NotificationHandlers/EventContext.cs | 0 .../EventNotifications.cs | 0 .../KattGptMessageHandler.cs | 0 {Kattbot => src/Kattbot}/Program.cs | 0 .../Kattbot}/Properties/launchSettings.json | 0 .../Kattbot}/Resources/pet_sprite_sheet.png | Bin .../Kattbot}/Services/Cache/CacheQueue.cs | 0 .../Kattbot}/Services/Cache/SharedCache.cs | 0 .../Services/Cache/SimpleMemoryCache.cs | 0 .../Services/Dalle/DalleHttpClient.cs | 0 .../Kattbot}/Services/Dalle/DalleModels.cs | 0 .../Kattbot}/Services/DiscordErrorLogger.cs | 0 .../Kattbot}/Services/EmoteEntityBuilder.cs | 0 .../Kattbot}/Services/EmoteParser.cs | 0 .../Kattbot}/Services/GuildSettingsService.cs | 0 .../Kattbot}/Services/Images/ImageEffects.cs | 0 .../Images/ImageMetadataExtensions.cs | 0 .../Services/Images/ImageOperations.cs | 0 .../Kattbot}/Services/Images/ImageService.cs | 0 .../Services/KattGpt/ChatGptClient.cs | 0 .../Services/KattGpt/DalleToolBuilder.cs | 0 .../Kattbot}/Services/KattGpt/KattGptCache.cs | 0 .../Services/KattGpt/KattGptChannelContext.cs | 0 .../Services/KattGpt/KattGptService.cs | 0 .../Services/KattGpt/KattGptTokenizer.cs | 0 .../Services/Speech/SpeechHttpClient.cs | 0 .../Kattbot}/Services/Speech/SpeechModels.cs | 0 {Kattbot => src/Kattbot}/Workers/BotWorker.cs | 0 {Kattbot => src/Kattbot}/Workers/Channels.cs | 0 .../Kattbot}/Workers/CommandQueueWorker.cs | 0 .../Kattbot}/Workers/DiscordLoggerWorker.cs | 0 .../Kattbot}/Workers/EventQueueWorker.cs | 0 .../Kattbot}/appsettings.Development.json | 0 {Kattbot => src/Kattbot}/appsettings.json | 0 src/Kattbot/prod.Dockerfile | 35 +++++++++++ .../Kattbot.Tests}/EmoteParserTests.cs | 0 .../Kattbot.Tests}/ImageTests.cs | 0 .../Kattbot.Tests}/Kattbot.Tests.csproj | 2 +- .../Kattbot.Tests}/Resources/froge.png | Bin .../Kattbot.Tests}/StringExtensionsTests.cs | 0 172 files changed, 100 insertions(+), 164 deletions(-) delete mode 100644 Kattbot/Dockerfile delete mode 100644 docker-vs/docker-compose.override.yml delete mode 100644 docker-vs/docker-compose.yml delete mode 100644 docker-vs/docker-vs.dcproj delete mode 100644 docker/Dockerfile delete mode 100644 docker/Prod.Dockerfile rename docker/{prod-compose.yml => docker-compose.prod.yml} (57%) create mode 100644 docker/docker.dcproj rename {docker-vs => docker}/launchSettings.json (100%) rename {Kattbot.Common => src/Kattbot.Common}/Kattbot.Common.csproj (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/BotRoles/BotRoleType.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/BotRoles/BotUserRole.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/Emotes/EmoteEntity.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/Emotes/EmoteSource.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/Emotes/EmoteUsageResult.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/Emotes/TempEmote.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/GuildSetting.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/IntervalValue.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionChoice.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionCreateRequest.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionCreateResponse.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionFunction.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionFunctionCall.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionFunctionChoice.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionMessage.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionResponseError.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionResponseErrorWrapper.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionTool.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionToolCall.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionToolChoice.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChatCompletionUsage.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/ChoiceFinishReason.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/StringOrObject.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/KattGpt/StringOrObjectConverter.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Models/PaginatedResult.cs (100%) rename {Kattbot.Common => src/Kattbot.Common}/Utils/StringExtensions.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Kattbot.Data.Migrations.csproj (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/KattbotContextDesignTimeFactory.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101201118_Init.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101201118_Init.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101204345_AddGuildId.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101204345_AddGuildId.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101214634_RenameEmoteIdToEmoteCode.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201101214634_RenameEmoteIdToEmoteCode.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201102182846_AddMessageIdToEntity.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201102182846_AddMessageIdToEntity.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201102214530_AddLastLiveMessageEntity.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201102214530_AddLastLiveMessageEntity.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201109185829_RemoveLastLiveMessage.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201109185829_RemoveLastLiveMessage.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201116192821_AddEmoteId.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20201116192821_AddEmoteId.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210224160716_AddEvents.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210224160716_AddEvents.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210310231543_RemoveEmoteCode.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210310231543_RemoveEmoteCode.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210312235603_AddBotUserRole.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210312235603_AddBotUserRole.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210317213350_AddGuildSettings.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210317213350_AddGuildSettings.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210703201146_RemoveEvents.Designer.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/20210703201146_RemoveEvents.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/Migrations/KattbotContextModelSnapshot.cs (100%) rename {Kattbot.Data.Migrations => src/Kattbot.Data.Migrations}/appsettings.json (100%) rename {Kattbot.Data => src/Kattbot.Data}/Kattbot.Data.csproj (100%) rename {Kattbot.Data => src/Kattbot.Data}/KattbotContext.cs (100%) rename {Kattbot.Data => src/Kattbot.Data}/Repositories/BotUserRolesRepository.cs (100%) rename {Kattbot.Data => src/Kattbot.Data}/Repositories/EmoteStatsRepository.cs (100%) rename {Kattbot.Data => src/Kattbot.Data}/Repositories/EmotesRepository.cs (100%) rename {Kattbot.Data => src/Kattbot.Data}/Repositories/GuildSettingsRepository.cs (100%) rename {Kattbot => src/Kattbot}/Attributes/BaseCommandCheck.cs (100%) rename {Kattbot => src/Kattbot}/Attributes/RequireOwnerOrFriend.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/CommandRequest.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/EmoteStats/GetEmoteStats.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/EmoteStats/GetGuildEmoteStats.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/EmoteStats/GetUserEmoteStats.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/DallePrompt.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/DallifyImageBase.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/DallifyImageEmote.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/DallifyImageMessage.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/DallifyImageUser.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/GetBigEmote.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/PetImage.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/TransformImageEffect.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/TransformImageEmote.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/TransformImageMessage.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Images/TransformImageUser.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Random/ClapText.cs (100%) rename {Kattbot => src/Kattbot}/CommandHandlers/Speech/SpeechCommand.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/AdminModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/EmoteModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/HelpModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/ImageModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/RandomModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/ResultFormatters/FormattedResultHelper.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/StatsCommandModule.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/TypeReaders/GenericArgumentConverter.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/TypeReaders/StatsCommandArgs.cs (100%) rename {Kattbot => src/Kattbot}/CommandModules/UtilsModule.cs (100%) rename {Kattbot => src/Kattbot}/Config/BotOptions.cs (100%) rename {Kattbot => src/Kattbot}/Config/ChannelOptions.cs (100%) rename {Kattbot => src/Kattbot}/Config/GuildOptions.cs (100%) rename {Kattbot => src/Kattbot}/Config/KattGptOptions.cs (100%) rename {Kattbot => src/Kattbot}/Config/Template.cs (100%) create mode 100644 src/Kattbot/Dockerfile rename {Kattbot => src/Kattbot}/Helpers/BoundedQueue.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/DateTimeProvider.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/DiscordConstants.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/DiscordExtensions.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/DiscordResolver.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/EmbedBuilderHelper.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/EmojiMap.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/EmoteHelper.cs (100%) rename {Kattbot => src/Kattbot}/Helpers/TryResolveResult.cs (100%) rename {Kattbot => src/Kattbot}/Infrastructure/CommandRequestPipelineBehaviour.cs (100%) rename {Kattbot => src/Kattbot}/Infrastructure/NoWayGateway.cs (100%) rename {Kattbot => src/Kattbot}/Infrastructure/NotificationMediator.cs (100%) rename {Kattbot => src/Kattbot}/Infrastructure/NotificationPublisher.cs (100%) rename {Kattbot => src/Kattbot}/Infrastructure/ServiceCollectionExtensions.cs (100%) rename {Kattbot => src/Kattbot}/Kattbot.csproj (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/BaseNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/Emotes/MessageCreatedNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/Emotes/MessageDeletedNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/Emotes/MessageReactionAddedNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/Emotes/MessageReactionRemovedNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/Emotes/MessageUpdatedNotificationHandler.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/EventContext.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/EventNotifications.cs (100%) rename {Kattbot => src/Kattbot}/NotificationHandlers/KattGptMessageHandler.cs (100%) rename {Kattbot => src/Kattbot}/Program.cs (100%) rename {Kattbot => src/Kattbot}/Properties/launchSettings.json (100%) rename {Kattbot => src/Kattbot}/Resources/pet_sprite_sheet.png (100%) rename {Kattbot => src/Kattbot}/Services/Cache/CacheQueue.cs (100%) rename {Kattbot => src/Kattbot}/Services/Cache/SharedCache.cs (100%) rename {Kattbot => src/Kattbot}/Services/Cache/SimpleMemoryCache.cs (100%) rename {Kattbot => src/Kattbot}/Services/Dalle/DalleHttpClient.cs (100%) rename {Kattbot => src/Kattbot}/Services/Dalle/DalleModels.cs (100%) rename {Kattbot => src/Kattbot}/Services/DiscordErrorLogger.cs (100%) rename {Kattbot => src/Kattbot}/Services/EmoteEntityBuilder.cs (100%) rename {Kattbot => src/Kattbot}/Services/EmoteParser.cs (100%) rename {Kattbot => src/Kattbot}/Services/GuildSettingsService.cs (100%) rename {Kattbot => src/Kattbot}/Services/Images/ImageEffects.cs (100%) rename {Kattbot => src/Kattbot}/Services/Images/ImageMetadataExtensions.cs (100%) rename {Kattbot => src/Kattbot}/Services/Images/ImageOperations.cs (100%) rename {Kattbot => src/Kattbot}/Services/Images/ImageService.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/ChatGptClient.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/DalleToolBuilder.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/KattGptCache.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/KattGptChannelContext.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/KattGptService.cs (100%) rename {Kattbot => src/Kattbot}/Services/KattGpt/KattGptTokenizer.cs (100%) rename {Kattbot => src/Kattbot}/Services/Speech/SpeechHttpClient.cs (100%) rename {Kattbot => src/Kattbot}/Services/Speech/SpeechModels.cs (100%) rename {Kattbot => src/Kattbot}/Workers/BotWorker.cs (100%) rename {Kattbot => src/Kattbot}/Workers/Channels.cs (100%) rename {Kattbot => src/Kattbot}/Workers/CommandQueueWorker.cs (100%) rename {Kattbot => src/Kattbot}/Workers/DiscordLoggerWorker.cs (100%) rename {Kattbot => src/Kattbot}/Workers/EventQueueWorker.cs (100%) rename {Kattbot => src/Kattbot}/appsettings.Development.json (100%) rename {Kattbot => src/Kattbot}/appsettings.json (100%) create mode 100644 src/Kattbot/prod.Dockerfile rename {Kattbot.Tests => tests/Kattbot.Tests}/EmoteParserTests.cs (100%) rename {Kattbot.Tests => tests/Kattbot.Tests}/ImageTests.cs (100%) rename {Kattbot.Tests => tests/Kattbot.Tests}/Kattbot.Tests.csproj (95%) rename {Kattbot.Tests => tests/Kattbot.Tests}/Resources/froge.png (100%) rename {Kattbot.Tests => tests/Kattbot.Tests}/StringExtensionsTests.cs (100%) diff --git a/.dockerignore b/.dockerignore index fe1152b..0685ef6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -16,6 +16,7 @@ **/charts **/docker-compose* **/Dockerfile* +**/*.Dockerfile* **/node_modules **/npm-debug.log **/obj @@ -27,4 +28,7 @@ README.md !.git/HEAD !.git/config !.git/packed-refs -!.git/refs/heads/** \ No newline at end of file +!.git/refs/heads/** +**/*.local +**/*.swp +.secrets diff --git a/.gitignore b/.gitignore index e7c1032..1395d9c 100644 --- a/.gitignore +++ b/.gitignore @@ -339,6 +339,6 @@ ASALocalRun/ # BeatPulse healthcheck temp database healthchecksdb -Kattbot.Data.Migrations/database_migration.sql - -.env.local \ No newline at end of file +*.local +*.swp +.secrets diff --git a/Kattbot.sln b/Kattbot.sln index a30cc2f..eb186cd 100644 --- a/Kattbot.sln +++ b/Kattbot.sln @@ -3,54 +3,21 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32929.385 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot", "Kattbot\Kattbot.csproj", "{9EB340B8-8D7D-4BBA-A146-33F7A15B13CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot", "src\Kattbot\Kattbot.csproj", "{9EB340B8-8D7D-4BBA-A146-33F7A15B13CE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Tests", "Kattbot.Tests\Kattbot.Tests.csproj", "{1C2153F7-4660-4021-9864-8F1F704054BF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Tests", "tests\Kattbot.Tests\Kattbot.Tests.csproj", "{1C2153F7-4660-4021-9864-8F1F704054BF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2D6F1BD9-5D5D-4C85-B254-B773679A5AF9}" - ProjectSection(SolutionItems) = preProject - .dockerignore = .dockerignore - .editorconfig = .editorconfig - .gitattributes = .gitattributes - .gitignore = .gitignore - Directory.Build.props = Directory.Build.props - Dotnet_cheatsheet.md = Dotnet_cheatsheet.md - Readme.md = Readme.md - EndProjectSection +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Data", "src\Kattbot.Data\Kattbot.Data.csproj", "{F454BCE5-C964-4720-AD84-96A07FA7B8B1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Data", "Kattbot.Data\Kattbot.Data.csproj", "{F454BCE5-C964-4720-AD84-96A07FA7B8B1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Common", "src\Kattbot.Common\Kattbot.Common.csproj", "{FFC07C89-ECA8-4887-9376-DA43C5FC83AB}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Common", "Kattbot.Common\Kattbot.Common.csproj", "{FFC07C89-ECA8-4887-9376-DA43C5FC83AB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Data.Migrations", "src\Kattbot.Data.Migrations\Kattbot.Data.Migrations.csproj", "{D26776E6-F360-425C-9281-F4E7B176197E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Kattbot.Data.Migrations", "Kattbot.Data.Migrations\Kattbot.Data.Migrations.csproj", "{D26776E6-F360-425C-9281-F4E7B176197E}" +Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker", "docker\docker.dcproj", "{642D827F-5BA9-4177-AE3D-4BAEE013BC3F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "scripts", "scripts", "{727EE4ED-CFEC-4BBC-B67A-3DA7F8EE3F1E}" - ProjectSection(SolutionItems) = preProject - scripts\kattbot-backup-db.sh = scripts\kattbot-backup-db.sh - EndProjectSection +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E845ABD6-198E-45CF-92D5-97F1A5E741A3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".config", ".config", "{524F91BA-735B-4F73-BEDD-A3CC1DEB452C}" - ProjectSection(SolutionItems) = preProject - .config\dotnet-tools.json = .config\dotnet-tools.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{DC675219-AB3D-40B1-BA7C-27C5613023BC}" - ProjectSection(SolutionItems) = preProject - .github\workflows\build.yml = .github\workflows\build.yml - .github\dependabot.yml = .github\dependabot.yml - .github\workflows\release-v2.yml = .github\workflows\release-v2.yml - .github\workflows\restart-v2.yml = .github\workflows\restart-v2.yml - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{26E4A78E-3DA9-4825-896B-4A9B0B017188}" - ProjectSection(SolutionItems) = preProject - docker\docker-compose.yml = docker\docker-compose.yml - docker\Dockerfile = docker\Dockerfile - docker\prod-compose.yml = docker\prod-compose.yml - docker\Prod.Dockerfile = docker\Prod.Dockerfile - EndProjectSection -EndProject -Project("{E53339B2-1760-4266-BCC7-CA923CBCF16C}") = "docker-vs", "docker-vs\docker-vs.dcproj", "{642D827F-5BA9-4177-AE3D-4BAEE013BC3F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{17BE3AFF-E650-40BC-A5EF-DF77B794D988}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -100,10 +67,11 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {727EE4ED-CFEC-4BBC-B67A-3DA7F8EE3F1E} = {2D6F1BD9-5D5D-4C85-B254-B773679A5AF9} - {524F91BA-735B-4F73-BEDD-A3CC1DEB452C} = {2D6F1BD9-5D5D-4C85-B254-B773679A5AF9} - {DC675219-AB3D-40B1-BA7C-27C5613023BC} = {2D6F1BD9-5D5D-4C85-B254-B773679A5AF9} - {26E4A78E-3DA9-4825-896B-4A9B0B017188} = {2D6F1BD9-5D5D-4C85-B254-B773679A5AF9} + {9EB340B8-8D7D-4BBA-A146-33F7A15B13CE} = {E845ABD6-198E-45CF-92D5-97F1A5E741A3} + {FFC07C89-ECA8-4887-9376-DA43C5FC83AB} = {E845ABD6-198E-45CF-92D5-97F1A5E741A3} + {F454BCE5-C964-4720-AD84-96A07FA7B8B1} = {E845ABD6-198E-45CF-92D5-97F1A5E741A3} + {D26776E6-F360-425C-9281-F4E7B176197E} = {E845ABD6-198E-45CF-92D5-97F1A5E741A3} + {1C2153F7-4660-4021-9864-8F1F704054BF} = {17BE3AFF-E650-40BC-A5EF-DF77B794D988} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {49047B12-10BC-4E9D-9DA6-758947DF9CE8} diff --git a/Kattbot/Dockerfile b/Kattbot/Dockerfile deleted file mode 100644 index c1aadc4..0000000 --- a/Kattbot/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base \ No newline at end of file diff --git a/docker-vs/docker-compose.override.yml b/docker-vs/docker-compose.override.yml deleted file mode 100644 index 344ca54..0000000 --- a/docker-vs/docker-compose.override.yml +++ /dev/null @@ -1,8 +0,0 @@ -version: '3.4' - -services: - kattbot: - environment: - - DOTNET_ENVIRONMENT=Development - volumes: - - ${APPDATA}/Microsoft/UserSecrets:/home/app/.microsoft/usersecrets:ro \ No newline at end of file diff --git a/docker-vs/docker-compose.yml b/docker-vs/docker-compose.yml deleted file mode 100644 index c1fd5ca..0000000 --- a/docker-vs/docker-compose.yml +++ /dev/null @@ -1,36 +0,0 @@ -version: '3.4' - -services: - kattbot: - build: - context: .. - dockerfile: Kattbot/Dockerfile - depends_on: - - kattbot-pgsql - - kattbot-pgsql: - image: postgres:15.5 - ports: - - "5433:5432" - environment: - POSTGRES_USER: kattbot - POSTGRES_PASSWORD: hunter2 - POSTGRES_DB: kattbot-dev - volumes: - - kattbot-pgdata:/var/lib/postgresql/data - - kattbot-pgadmin: - image: dpage/pgadmin4 - ports: - - "5444:80" - profiles: - - tools - depends_on: - - kattbot-pgsql - environment: - PGADMIN_DEFAULT_EMAIL: katt@bot.local - PGADMIN_DEFAULT_PASSWORD: hunter2 - -volumes: - kattbot-pgdata: - diff --git a/docker-vs/docker-vs.dcproj b/docker-vs/docker-vs.dcproj deleted file mode 100644 index 41e42c1..0000000 --- a/docker-vs/docker-vs.dcproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - 2.1 - Linux - False - 642d827f-5ba9-4177-ae3d-4baee013bc3f - - - - docker-compose.yml - - - - \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile deleted file mode 100644 index ba5ab45..0000000 --- a/docker/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /src -COPY ["Directory.Build.props", "."] -COPY ["Kattbot/Kattbot.csproj", "Kattbot/"] -COPY ["Kattbot.Common/Kattbot.Common.csproj", "Kattbot.Common/"] -COPY ["Kattbot.Data/Kattbot.Data.csproj", "Kattbot.Data/"] -RUN dotnet restore "./Kattbot/Kattbot.csproj" -COPY . . -RUN dotnet build "./Kattbot/Kattbot.csproj" - -ENTRYPOINT ["dotnet", "run", "--project", "Kattbot/Kattbot.csproj"] \ No newline at end of file diff --git a/docker/Prod.Dockerfile b/docker/Prod.Dockerfile deleted file mode 100644 index 2793f23..0000000 --- a/docker/Prod.Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base -USER app - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -ARG BUILD_CONFIGURATION=Release -WORKDIR /src -COPY ["Directory.Build.props", "."] -COPY ["Kattbot/Kattbot.csproj", "Kattbot/"] -COPY ["Kattbot.Common/Kattbot.Common.csproj", "Kattbot.Common/"] -COPY ["Kattbot.Data/Kattbot.Data.csproj", "Kattbot.Data/"] -COPY ["Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj", "Kattbot.Data.Migrations/"] -RUN dotnet restore "./Kattbot/Kattbot.csproj" -COPY . . -RUN dotnet build "./Kattbot/Kattbot.csproj" -c $BUILD_CONFIGURATION -o /output/build - -FROM build AS publish -ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "./Kattbot/Kattbot.csproj" -c $BUILD_CONFIGURATION -o /output/publish /p:UseAppHost=false - -FROM build AS migrations -RUN dotnet tool restore -RUN dotnet ef migrations script --idempotent -p Kattbot.Data.Migrations -o /output/migrations/database_migration.sql -COPY --from=build /src/scripts/kattbot-backup-db.sh /output/migrations/ - -# TODO try to bundle the migrations as an executable -# RUN dotnet ef migrations bundle -p Kattbot.Data.Migrations -r linux-x64 -o /output/migrations/efbundle - -FROM base AS final -WORKDIR /app -COPY --from=publish /output/publish . -COPY --from=migrations /output/migrations ./migrations/ -ENTRYPOINT ["dotnet", "Kattbot.dll"] \ No newline at end of file diff --git a/docker/prod-compose.yml b/docker/docker-compose.prod.yml similarity index 57% rename from docker/prod-compose.yml rename to docker/docker-compose.prod.yml index 9840355..0123838 100644 --- a/docker/prod-compose.yml +++ b/docker/docker-compose.prod.yml @@ -1,4 +1,4 @@ -version: '3.4' +name: kattbot services: kattbot: @@ -8,6 +8,6 @@ services: extra_hosts: - "host.docker.internal=$HOST_GATEWAY_IP" environment: - Kattbot__BotToken: $BOT_TOKEN - Kattbot__OpenAiApiKey: $OPENAI_API_KEY - Kattbot__ConnectionString: $DB_CONNECTION_STRING \ No newline at end of file + Kattbot__BotToken: $BOT_TOKEN + Kattbot__OpenAiApiKey: $OPENAI_API_KEY + Kattbot__ConnectionString: $DB_CONNECTION_STRING \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 914a9e4..861a698 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,22 +1,24 @@ -version: '3.4' +name: kattbot-dev services: kattbot: build: context: .. - dockerfile: docker/Dockerfile - depends_on: - - kattbot-pgsql + dockerfile: src/Kattbot/Dockerfile environment: - DOTNET_ENVIRONMENT=Development env_file: - path: .env.local required: false - + volumes: + - ${APPDATA}/Microsoft/UserSecrets:/home/app/.microsoft/usersecrets:ro + kattbot-pgsql: image: postgres:15.5 ports: - "5433:5432" + profiles: + - database environment: POSTGRES_USER: kattbot POSTGRES_PASSWORD: hunter2 diff --git a/docker/docker.dcproj b/docker/docker.dcproj new file mode 100644 index 0000000..8f1415b --- /dev/null +++ b/docker/docker.dcproj @@ -0,0 +1,15 @@ + + + + 2.1 + Linux + False + 642d827f-5ba9-4177-ae3d-4baee013bc3f + + + + + + + + \ No newline at end of file diff --git a/docker-vs/launchSettings.json b/docker/launchSettings.json similarity index 100% rename from docker-vs/launchSettings.json rename to docker/launchSettings.json diff --git a/Kattbot.Common/Kattbot.Common.csproj b/src/Kattbot.Common/Kattbot.Common.csproj similarity index 100% rename from Kattbot.Common/Kattbot.Common.csproj rename to src/Kattbot.Common/Kattbot.Common.csproj diff --git a/Kattbot.Common/Models/BotRoles/BotRoleType.cs b/src/Kattbot.Common/Models/BotRoles/BotRoleType.cs similarity index 100% rename from Kattbot.Common/Models/BotRoles/BotRoleType.cs rename to src/Kattbot.Common/Models/BotRoles/BotRoleType.cs diff --git a/Kattbot.Common/Models/BotRoles/BotUserRole.cs b/src/Kattbot.Common/Models/BotRoles/BotUserRole.cs similarity index 100% rename from Kattbot.Common/Models/BotRoles/BotUserRole.cs rename to src/Kattbot.Common/Models/BotRoles/BotUserRole.cs diff --git a/Kattbot.Common/Models/Emotes/EmoteEntity.cs b/src/Kattbot.Common/Models/Emotes/EmoteEntity.cs similarity index 100% rename from Kattbot.Common/Models/Emotes/EmoteEntity.cs rename to src/Kattbot.Common/Models/Emotes/EmoteEntity.cs diff --git a/Kattbot.Common/Models/Emotes/EmoteSource.cs b/src/Kattbot.Common/Models/Emotes/EmoteSource.cs similarity index 100% rename from Kattbot.Common/Models/Emotes/EmoteSource.cs rename to src/Kattbot.Common/Models/Emotes/EmoteSource.cs diff --git a/Kattbot.Common/Models/Emotes/EmoteUsageResult.cs b/src/Kattbot.Common/Models/Emotes/EmoteUsageResult.cs similarity index 100% rename from Kattbot.Common/Models/Emotes/EmoteUsageResult.cs rename to src/Kattbot.Common/Models/Emotes/EmoteUsageResult.cs diff --git a/Kattbot.Common/Models/Emotes/TempEmote.cs b/src/Kattbot.Common/Models/Emotes/TempEmote.cs similarity index 100% rename from Kattbot.Common/Models/Emotes/TempEmote.cs rename to src/Kattbot.Common/Models/Emotes/TempEmote.cs diff --git a/Kattbot.Common/Models/GuildSetting.cs b/src/Kattbot.Common/Models/GuildSetting.cs similarity index 100% rename from Kattbot.Common/Models/GuildSetting.cs rename to src/Kattbot.Common/Models/GuildSetting.cs diff --git a/Kattbot.Common/Models/IntervalValue.cs b/src/Kattbot.Common/Models/IntervalValue.cs similarity index 100% rename from Kattbot.Common/Models/IntervalValue.cs rename to src/Kattbot.Common/Models/IntervalValue.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionChoice.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionChoice.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionChoice.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionChoice.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionCreateRequest.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionCreateRequest.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionCreateRequest.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionCreateRequest.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionCreateResponse.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionCreateResponse.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionCreateResponse.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionCreateResponse.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionFunction.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionFunction.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionFunction.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionFunction.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionCall.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionCall.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionFunctionCall.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionCall.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionChoice.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionChoice.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionFunctionChoice.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionFunctionChoice.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionMessage.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionMessage.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionMessage.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionMessage.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionResponseError.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionResponseError.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionResponseError.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionResponseError.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionResponseErrorWrapper.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionResponseErrorWrapper.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionResponseErrorWrapper.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionResponseErrorWrapper.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionTool.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionTool.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionTool.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionTool.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionToolCall.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionToolCall.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionToolCall.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionToolCall.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionToolChoice.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionToolChoice.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionToolChoice.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionToolChoice.cs diff --git a/Kattbot.Common/Models/KattGpt/ChatCompletionUsage.cs b/src/Kattbot.Common/Models/KattGpt/ChatCompletionUsage.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChatCompletionUsage.cs rename to src/Kattbot.Common/Models/KattGpt/ChatCompletionUsage.cs diff --git a/Kattbot.Common/Models/KattGpt/ChoiceFinishReason.cs b/src/Kattbot.Common/Models/KattGpt/ChoiceFinishReason.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/ChoiceFinishReason.cs rename to src/Kattbot.Common/Models/KattGpt/ChoiceFinishReason.cs diff --git a/Kattbot.Common/Models/KattGpt/StringOrObject.cs b/src/Kattbot.Common/Models/KattGpt/StringOrObject.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/StringOrObject.cs rename to src/Kattbot.Common/Models/KattGpt/StringOrObject.cs diff --git a/Kattbot.Common/Models/KattGpt/StringOrObjectConverter.cs b/src/Kattbot.Common/Models/KattGpt/StringOrObjectConverter.cs similarity index 100% rename from Kattbot.Common/Models/KattGpt/StringOrObjectConverter.cs rename to src/Kattbot.Common/Models/KattGpt/StringOrObjectConverter.cs diff --git a/Kattbot.Common/Models/PaginatedResult.cs b/src/Kattbot.Common/Models/PaginatedResult.cs similarity index 100% rename from Kattbot.Common/Models/PaginatedResult.cs rename to src/Kattbot.Common/Models/PaginatedResult.cs diff --git a/Kattbot.Common/Utils/StringExtensions.cs b/src/Kattbot.Common/Utils/StringExtensions.cs similarity index 100% rename from Kattbot.Common/Utils/StringExtensions.cs rename to src/Kattbot.Common/Utils/StringExtensions.cs diff --git a/Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj b/src/Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj similarity index 100% rename from Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj rename to src/Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj diff --git a/Kattbot.Data.Migrations/KattbotContextDesignTimeFactory.cs b/src/Kattbot.Data.Migrations/KattbotContextDesignTimeFactory.cs similarity index 100% rename from Kattbot.Data.Migrations/KattbotContextDesignTimeFactory.cs rename to src/Kattbot.Data.Migrations/KattbotContextDesignTimeFactory.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101201118_Init.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201101201118_Init.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101201118_Init.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101201118_Init.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101201118_Init.cs b/src/Kattbot.Data.Migrations/Migrations/20201101201118_Init.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101201118_Init.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101201118_Init.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.cs b/src/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101204345_AddGuildId.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.cs b/src/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.cs rename to src/Kattbot.Data.Migrations/Migrations/20201101214634_RenameEmoteIdToEmoteCode.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.cs b/src/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.cs rename to src/Kattbot.Data.Migrations/Migrations/20201102182846_AddMessageIdToEntity.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.cs b/src/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.cs rename to src/Kattbot.Data.Migrations/Migrations/20201102214530_AddLastLiveMessageEntity.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.cs b/src/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.cs rename to src/Kattbot.Data.Migrations/Migrations/20201109185829_RemoveLastLiveMessage.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.cs b/src/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.cs rename to src/Kattbot.Data.Migrations/Migrations/20201116192821_AddEmoteId.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.cs b/src/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.cs rename to src/Kattbot.Data.Migrations/Migrations/20210224160716_AddEvents.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.cs b/src/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.cs rename to src/Kattbot.Data.Migrations/Migrations/20210224235611_ChangeEventDateTimeOffsetToDateTime.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.cs b/src/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.cs rename to src/Kattbot.Data.Migrations/Migrations/20210310231543_RemoveEmoteCode.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.cs b/src/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.cs rename to src/Kattbot.Data.Migrations/Migrations/20210312235603_AddBotUserRole.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.cs b/src/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.cs rename to src/Kattbot.Data.Migrations/Migrations/20210317213350_AddGuildSettings.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.Designer.cs b/src/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.Designer.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.Designer.cs rename to src/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.Designer.cs diff --git a/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.cs b/src/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.cs rename to src/Kattbot.Data.Migrations/Migrations/20210703201146_RemoveEvents.cs diff --git a/Kattbot.Data.Migrations/Migrations/KattbotContextModelSnapshot.cs b/src/Kattbot.Data.Migrations/Migrations/KattbotContextModelSnapshot.cs similarity index 100% rename from Kattbot.Data.Migrations/Migrations/KattbotContextModelSnapshot.cs rename to src/Kattbot.Data.Migrations/Migrations/KattbotContextModelSnapshot.cs diff --git a/Kattbot.Data.Migrations/appsettings.json b/src/Kattbot.Data.Migrations/appsettings.json similarity index 100% rename from Kattbot.Data.Migrations/appsettings.json rename to src/Kattbot.Data.Migrations/appsettings.json diff --git a/Kattbot.Data/Kattbot.Data.csproj b/src/Kattbot.Data/Kattbot.Data.csproj similarity index 100% rename from Kattbot.Data/Kattbot.Data.csproj rename to src/Kattbot.Data/Kattbot.Data.csproj diff --git a/Kattbot.Data/KattbotContext.cs b/src/Kattbot.Data/KattbotContext.cs similarity index 100% rename from Kattbot.Data/KattbotContext.cs rename to src/Kattbot.Data/KattbotContext.cs diff --git a/Kattbot.Data/Repositories/BotUserRolesRepository.cs b/src/Kattbot.Data/Repositories/BotUserRolesRepository.cs similarity index 100% rename from Kattbot.Data/Repositories/BotUserRolesRepository.cs rename to src/Kattbot.Data/Repositories/BotUserRolesRepository.cs diff --git a/Kattbot.Data/Repositories/EmoteStatsRepository.cs b/src/Kattbot.Data/Repositories/EmoteStatsRepository.cs similarity index 100% rename from Kattbot.Data/Repositories/EmoteStatsRepository.cs rename to src/Kattbot.Data/Repositories/EmoteStatsRepository.cs diff --git a/Kattbot.Data/Repositories/EmotesRepository.cs b/src/Kattbot.Data/Repositories/EmotesRepository.cs similarity index 100% rename from Kattbot.Data/Repositories/EmotesRepository.cs rename to src/Kattbot.Data/Repositories/EmotesRepository.cs diff --git a/Kattbot.Data/Repositories/GuildSettingsRepository.cs b/src/Kattbot.Data/Repositories/GuildSettingsRepository.cs similarity index 100% rename from Kattbot.Data/Repositories/GuildSettingsRepository.cs rename to src/Kattbot.Data/Repositories/GuildSettingsRepository.cs diff --git a/Kattbot/Attributes/BaseCommandCheck.cs b/src/Kattbot/Attributes/BaseCommandCheck.cs similarity index 100% rename from Kattbot/Attributes/BaseCommandCheck.cs rename to src/Kattbot/Attributes/BaseCommandCheck.cs diff --git a/Kattbot/Attributes/RequireOwnerOrFriend.cs b/src/Kattbot/Attributes/RequireOwnerOrFriend.cs similarity index 100% rename from Kattbot/Attributes/RequireOwnerOrFriend.cs rename to src/Kattbot/Attributes/RequireOwnerOrFriend.cs diff --git a/Kattbot/CommandHandlers/CommandRequest.cs b/src/Kattbot/CommandHandlers/CommandRequest.cs similarity index 100% rename from Kattbot/CommandHandlers/CommandRequest.cs rename to src/Kattbot/CommandHandlers/CommandRequest.cs diff --git a/Kattbot/CommandHandlers/EmoteStats/GetEmoteStats.cs b/src/Kattbot/CommandHandlers/EmoteStats/GetEmoteStats.cs similarity index 100% rename from Kattbot/CommandHandlers/EmoteStats/GetEmoteStats.cs rename to src/Kattbot/CommandHandlers/EmoteStats/GetEmoteStats.cs diff --git a/Kattbot/CommandHandlers/EmoteStats/GetGuildEmoteStats.cs b/src/Kattbot/CommandHandlers/EmoteStats/GetGuildEmoteStats.cs similarity index 100% rename from Kattbot/CommandHandlers/EmoteStats/GetGuildEmoteStats.cs rename to src/Kattbot/CommandHandlers/EmoteStats/GetGuildEmoteStats.cs diff --git a/Kattbot/CommandHandlers/EmoteStats/GetUserEmoteStats.cs b/src/Kattbot/CommandHandlers/EmoteStats/GetUserEmoteStats.cs similarity index 100% rename from Kattbot/CommandHandlers/EmoteStats/GetUserEmoteStats.cs rename to src/Kattbot/CommandHandlers/EmoteStats/GetUserEmoteStats.cs diff --git a/Kattbot/CommandHandlers/Images/DallePrompt.cs b/src/Kattbot/CommandHandlers/Images/DallePrompt.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/DallePrompt.cs rename to src/Kattbot/CommandHandlers/Images/DallePrompt.cs diff --git a/Kattbot/CommandHandlers/Images/DallifyImageBase.cs b/src/Kattbot/CommandHandlers/Images/DallifyImageBase.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/DallifyImageBase.cs rename to src/Kattbot/CommandHandlers/Images/DallifyImageBase.cs diff --git a/Kattbot/CommandHandlers/Images/DallifyImageEmote.cs b/src/Kattbot/CommandHandlers/Images/DallifyImageEmote.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/DallifyImageEmote.cs rename to src/Kattbot/CommandHandlers/Images/DallifyImageEmote.cs diff --git a/Kattbot/CommandHandlers/Images/DallifyImageMessage.cs b/src/Kattbot/CommandHandlers/Images/DallifyImageMessage.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/DallifyImageMessage.cs rename to src/Kattbot/CommandHandlers/Images/DallifyImageMessage.cs diff --git a/Kattbot/CommandHandlers/Images/DallifyImageUser.cs b/src/Kattbot/CommandHandlers/Images/DallifyImageUser.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/DallifyImageUser.cs rename to src/Kattbot/CommandHandlers/Images/DallifyImageUser.cs diff --git a/Kattbot/CommandHandlers/Images/GetBigEmote.cs b/src/Kattbot/CommandHandlers/Images/GetBigEmote.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/GetBigEmote.cs rename to src/Kattbot/CommandHandlers/Images/GetBigEmote.cs diff --git a/Kattbot/CommandHandlers/Images/PetImage.cs b/src/Kattbot/CommandHandlers/Images/PetImage.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/PetImage.cs rename to src/Kattbot/CommandHandlers/Images/PetImage.cs diff --git a/Kattbot/CommandHandlers/Images/TransformImageEffect.cs b/src/Kattbot/CommandHandlers/Images/TransformImageEffect.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/TransformImageEffect.cs rename to src/Kattbot/CommandHandlers/Images/TransformImageEffect.cs diff --git a/Kattbot/CommandHandlers/Images/TransformImageEmote.cs b/src/Kattbot/CommandHandlers/Images/TransformImageEmote.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/TransformImageEmote.cs rename to src/Kattbot/CommandHandlers/Images/TransformImageEmote.cs diff --git a/Kattbot/CommandHandlers/Images/TransformImageMessage.cs b/src/Kattbot/CommandHandlers/Images/TransformImageMessage.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/TransformImageMessage.cs rename to src/Kattbot/CommandHandlers/Images/TransformImageMessage.cs diff --git a/Kattbot/CommandHandlers/Images/TransformImageUser.cs b/src/Kattbot/CommandHandlers/Images/TransformImageUser.cs similarity index 100% rename from Kattbot/CommandHandlers/Images/TransformImageUser.cs rename to src/Kattbot/CommandHandlers/Images/TransformImageUser.cs diff --git a/Kattbot/CommandHandlers/Random/ClapText.cs b/src/Kattbot/CommandHandlers/Random/ClapText.cs similarity index 100% rename from Kattbot/CommandHandlers/Random/ClapText.cs rename to src/Kattbot/CommandHandlers/Random/ClapText.cs diff --git a/Kattbot/CommandHandlers/Speech/SpeechCommand.cs b/src/Kattbot/CommandHandlers/Speech/SpeechCommand.cs similarity index 100% rename from Kattbot/CommandHandlers/Speech/SpeechCommand.cs rename to src/Kattbot/CommandHandlers/Speech/SpeechCommand.cs diff --git a/Kattbot/CommandModules/AdminModule.cs b/src/Kattbot/CommandModules/AdminModule.cs similarity index 100% rename from Kattbot/CommandModules/AdminModule.cs rename to src/Kattbot/CommandModules/AdminModule.cs diff --git a/Kattbot/CommandModules/EmoteModule.cs b/src/Kattbot/CommandModules/EmoteModule.cs similarity index 100% rename from Kattbot/CommandModules/EmoteModule.cs rename to src/Kattbot/CommandModules/EmoteModule.cs diff --git a/Kattbot/CommandModules/HelpModule.cs b/src/Kattbot/CommandModules/HelpModule.cs similarity index 100% rename from Kattbot/CommandModules/HelpModule.cs rename to src/Kattbot/CommandModules/HelpModule.cs diff --git a/Kattbot/CommandModules/ImageModule.cs b/src/Kattbot/CommandModules/ImageModule.cs similarity index 100% rename from Kattbot/CommandModules/ImageModule.cs rename to src/Kattbot/CommandModules/ImageModule.cs diff --git a/Kattbot/CommandModules/RandomModule.cs b/src/Kattbot/CommandModules/RandomModule.cs similarity index 100% rename from Kattbot/CommandModules/RandomModule.cs rename to src/Kattbot/CommandModules/RandomModule.cs diff --git a/Kattbot/CommandModules/ResultFormatters/FormattedResultHelper.cs b/src/Kattbot/CommandModules/ResultFormatters/FormattedResultHelper.cs similarity index 100% rename from Kattbot/CommandModules/ResultFormatters/FormattedResultHelper.cs rename to src/Kattbot/CommandModules/ResultFormatters/FormattedResultHelper.cs diff --git a/Kattbot/CommandModules/StatsCommandModule.cs b/src/Kattbot/CommandModules/StatsCommandModule.cs similarity index 100% rename from Kattbot/CommandModules/StatsCommandModule.cs rename to src/Kattbot/CommandModules/StatsCommandModule.cs diff --git a/Kattbot/CommandModules/TypeReaders/GenericArgumentConverter.cs b/src/Kattbot/CommandModules/TypeReaders/GenericArgumentConverter.cs similarity index 100% rename from Kattbot/CommandModules/TypeReaders/GenericArgumentConverter.cs rename to src/Kattbot/CommandModules/TypeReaders/GenericArgumentConverter.cs diff --git a/Kattbot/CommandModules/TypeReaders/StatsCommandArgs.cs b/src/Kattbot/CommandModules/TypeReaders/StatsCommandArgs.cs similarity index 100% rename from Kattbot/CommandModules/TypeReaders/StatsCommandArgs.cs rename to src/Kattbot/CommandModules/TypeReaders/StatsCommandArgs.cs diff --git a/Kattbot/CommandModules/UtilsModule.cs b/src/Kattbot/CommandModules/UtilsModule.cs similarity index 100% rename from Kattbot/CommandModules/UtilsModule.cs rename to src/Kattbot/CommandModules/UtilsModule.cs diff --git a/Kattbot/Config/BotOptions.cs b/src/Kattbot/Config/BotOptions.cs similarity index 100% rename from Kattbot/Config/BotOptions.cs rename to src/Kattbot/Config/BotOptions.cs diff --git a/Kattbot/Config/ChannelOptions.cs b/src/Kattbot/Config/ChannelOptions.cs similarity index 100% rename from Kattbot/Config/ChannelOptions.cs rename to src/Kattbot/Config/ChannelOptions.cs diff --git a/Kattbot/Config/GuildOptions.cs b/src/Kattbot/Config/GuildOptions.cs similarity index 100% rename from Kattbot/Config/GuildOptions.cs rename to src/Kattbot/Config/GuildOptions.cs diff --git a/Kattbot/Config/KattGptOptions.cs b/src/Kattbot/Config/KattGptOptions.cs similarity index 100% rename from Kattbot/Config/KattGptOptions.cs rename to src/Kattbot/Config/KattGptOptions.cs diff --git a/Kattbot/Config/Template.cs b/src/Kattbot/Config/Template.cs similarity index 100% rename from Kattbot/Config/Template.cs rename to src/Kattbot/Config/Template.cs diff --git a/src/Kattbot/Dockerfile b/src/Kattbot/Dockerfile new file mode 100644 index 0000000..0482800 --- /dev/null +++ b/src/Kattbot/Dockerfile @@ -0,0 +1,17 @@ +FROM mcr.microsoft.com/dotnet/runtime:8.0 AS base + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Debug +WORKDIR /src +COPY ["Directory.Build.props", "."] +COPY ["src/Kattbot/Kattbot.csproj", "Kattbot/"] +COPY ["src/Kattbot.Common/Kattbot.Common.csproj", "Kattbot.Common/"] +COPY ["src/Kattbot.Data/Kattbot.Data.csproj", "Kattbot.Data/"] +RUN dotnet restore "./Kattbot/Kattbot.csproj" +COPY ["Kattbot.sln", "."] +COPY ["stylecop.json", "."] +COPY [".editorconfig", "."] +COPY src . +RUN dotnet build "./Kattbot/Kattbot.csproj" -c $BUILD_CONFIGURATION --no-restore +USER $APP_UID +ENTRYPOINT ["dotnet", "run", "--project", "Kattbot/Kattbot.csproj", "--no-build"] \ No newline at end of file diff --git a/Kattbot/Helpers/BoundedQueue.cs b/src/Kattbot/Helpers/BoundedQueue.cs similarity index 100% rename from Kattbot/Helpers/BoundedQueue.cs rename to src/Kattbot/Helpers/BoundedQueue.cs diff --git a/Kattbot/Helpers/DateTimeProvider.cs b/src/Kattbot/Helpers/DateTimeProvider.cs similarity index 100% rename from Kattbot/Helpers/DateTimeProvider.cs rename to src/Kattbot/Helpers/DateTimeProvider.cs diff --git a/Kattbot/Helpers/DiscordConstants.cs b/src/Kattbot/Helpers/DiscordConstants.cs similarity index 100% rename from Kattbot/Helpers/DiscordConstants.cs rename to src/Kattbot/Helpers/DiscordConstants.cs diff --git a/Kattbot/Helpers/DiscordExtensions.cs b/src/Kattbot/Helpers/DiscordExtensions.cs similarity index 100% rename from Kattbot/Helpers/DiscordExtensions.cs rename to src/Kattbot/Helpers/DiscordExtensions.cs diff --git a/Kattbot/Helpers/DiscordResolver.cs b/src/Kattbot/Helpers/DiscordResolver.cs similarity index 100% rename from Kattbot/Helpers/DiscordResolver.cs rename to src/Kattbot/Helpers/DiscordResolver.cs diff --git a/Kattbot/Helpers/EmbedBuilderHelper.cs b/src/Kattbot/Helpers/EmbedBuilderHelper.cs similarity index 100% rename from Kattbot/Helpers/EmbedBuilderHelper.cs rename to src/Kattbot/Helpers/EmbedBuilderHelper.cs diff --git a/Kattbot/Helpers/EmojiMap.cs b/src/Kattbot/Helpers/EmojiMap.cs similarity index 100% rename from Kattbot/Helpers/EmojiMap.cs rename to src/Kattbot/Helpers/EmojiMap.cs diff --git a/Kattbot/Helpers/EmoteHelper.cs b/src/Kattbot/Helpers/EmoteHelper.cs similarity index 100% rename from Kattbot/Helpers/EmoteHelper.cs rename to src/Kattbot/Helpers/EmoteHelper.cs diff --git a/Kattbot/Helpers/TryResolveResult.cs b/src/Kattbot/Helpers/TryResolveResult.cs similarity index 100% rename from Kattbot/Helpers/TryResolveResult.cs rename to src/Kattbot/Helpers/TryResolveResult.cs diff --git a/Kattbot/Infrastructure/CommandRequestPipelineBehaviour.cs b/src/Kattbot/Infrastructure/CommandRequestPipelineBehaviour.cs similarity index 100% rename from Kattbot/Infrastructure/CommandRequestPipelineBehaviour.cs rename to src/Kattbot/Infrastructure/CommandRequestPipelineBehaviour.cs diff --git a/Kattbot/Infrastructure/NoWayGateway.cs b/src/Kattbot/Infrastructure/NoWayGateway.cs similarity index 100% rename from Kattbot/Infrastructure/NoWayGateway.cs rename to src/Kattbot/Infrastructure/NoWayGateway.cs diff --git a/Kattbot/Infrastructure/NotificationMediator.cs b/src/Kattbot/Infrastructure/NotificationMediator.cs similarity index 100% rename from Kattbot/Infrastructure/NotificationMediator.cs rename to src/Kattbot/Infrastructure/NotificationMediator.cs diff --git a/Kattbot/Infrastructure/NotificationPublisher.cs b/src/Kattbot/Infrastructure/NotificationPublisher.cs similarity index 100% rename from Kattbot/Infrastructure/NotificationPublisher.cs rename to src/Kattbot/Infrastructure/NotificationPublisher.cs diff --git a/Kattbot/Infrastructure/ServiceCollectionExtensions.cs b/src/Kattbot/Infrastructure/ServiceCollectionExtensions.cs similarity index 100% rename from Kattbot/Infrastructure/ServiceCollectionExtensions.cs rename to src/Kattbot/Infrastructure/ServiceCollectionExtensions.cs diff --git a/Kattbot/Kattbot.csproj b/src/Kattbot/Kattbot.csproj similarity index 100% rename from Kattbot/Kattbot.csproj rename to src/Kattbot/Kattbot.csproj diff --git a/Kattbot/NotificationHandlers/BaseNotificationHandler.cs b/src/Kattbot/NotificationHandlers/BaseNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/BaseNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/BaseNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/Emotes/MessageCreatedNotificationHandler.cs b/src/Kattbot/NotificationHandlers/Emotes/MessageCreatedNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/Emotes/MessageCreatedNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/Emotes/MessageCreatedNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/Emotes/MessageDeletedNotificationHandler.cs b/src/Kattbot/NotificationHandlers/Emotes/MessageDeletedNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/Emotes/MessageDeletedNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/Emotes/MessageDeletedNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/Emotes/MessageReactionAddedNotificationHandler.cs b/src/Kattbot/NotificationHandlers/Emotes/MessageReactionAddedNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/Emotes/MessageReactionAddedNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/Emotes/MessageReactionAddedNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/Emotes/MessageReactionRemovedNotificationHandler.cs b/src/Kattbot/NotificationHandlers/Emotes/MessageReactionRemovedNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/Emotes/MessageReactionRemovedNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/Emotes/MessageReactionRemovedNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/Emotes/MessageUpdatedNotificationHandler.cs b/src/Kattbot/NotificationHandlers/Emotes/MessageUpdatedNotificationHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/Emotes/MessageUpdatedNotificationHandler.cs rename to src/Kattbot/NotificationHandlers/Emotes/MessageUpdatedNotificationHandler.cs diff --git a/Kattbot/NotificationHandlers/EventContext.cs b/src/Kattbot/NotificationHandlers/EventContext.cs similarity index 100% rename from Kattbot/NotificationHandlers/EventContext.cs rename to src/Kattbot/NotificationHandlers/EventContext.cs diff --git a/Kattbot/NotificationHandlers/EventNotifications.cs b/src/Kattbot/NotificationHandlers/EventNotifications.cs similarity index 100% rename from Kattbot/NotificationHandlers/EventNotifications.cs rename to src/Kattbot/NotificationHandlers/EventNotifications.cs diff --git a/Kattbot/NotificationHandlers/KattGptMessageHandler.cs b/src/Kattbot/NotificationHandlers/KattGptMessageHandler.cs similarity index 100% rename from Kattbot/NotificationHandlers/KattGptMessageHandler.cs rename to src/Kattbot/NotificationHandlers/KattGptMessageHandler.cs diff --git a/Kattbot/Program.cs b/src/Kattbot/Program.cs similarity index 100% rename from Kattbot/Program.cs rename to src/Kattbot/Program.cs diff --git a/Kattbot/Properties/launchSettings.json b/src/Kattbot/Properties/launchSettings.json similarity index 100% rename from Kattbot/Properties/launchSettings.json rename to src/Kattbot/Properties/launchSettings.json diff --git a/Kattbot/Resources/pet_sprite_sheet.png b/src/Kattbot/Resources/pet_sprite_sheet.png similarity index 100% rename from Kattbot/Resources/pet_sprite_sheet.png rename to src/Kattbot/Resources/pet_sprite_sheet.png diff --git a/Kattbot/Services/Cache/CacheQueue.cs b/src/Kattbot/Services/Cache/CacheQueue.cs similarity index 100% rename from Kattbot/Services/Cache/CacheQueue.cs rename to src/Kattbot/Services/Cache/CacheQueue.cs diff --git a/Kattbot/Services/Cache/SharedCache.cs b/src/Kattbot/Services/Cache/SharedCache.cs similarity index 100% rename from Kattbot/Services/Cache/SharedCache.cs rename to src/Kattbot/Services/Cache/SharedCache.cs diff --git a/Kattbot/Services/Cache/SimpleMemoryCache.cs b/src/Kattbot/Services/Cache/SimpleMemoryCache.cs similarity index 100% rename from Kattbot/Services/Cache/SimpleMemoryCache.cs rename to src/Kattbot/Services/Cache/SimpleMemoryCache.cs diff --git a/Kattbot/Services/Dalle/DalleHttpClient.cs b/src/Kattbot/Services/Dalle/DalleHttpClient.cs similarity index 100% rename from Kattbot/Services/Dalle/DalleHttpClient.cs rename to src/Kattbot/Services/Dalle/DalleHttpClient.cs diff --git a/Kattbot/Services/Dalle/DalleModels.cs b/src/Kattbot/Services/Dalle/DalleModels.cs similarity index 100% rename from Kattbot/Services/Dalle/DalleModels.cs rename to src/Kattbot/Services/Dalle/DalleModels.cs diff --git a/Kattbot/Services/DiscordErrorLogger.cs b/src/Kattbot/Services/DiscordErrorLogger.cs similarity index 100% rename from Kattbot/Services/DiscordErrorLogger.cs rename to src/Kattbot/Services/DiscordErrorLogger.cs diff --git a/Kattbot/Services/EmoteEntityBuilder.cs b/src/Kattbot/Services/EmoteEntityBuilder.cs similarity index 100% rename from Kattbot/Services/EmoteEntityBuilder.cs rename to src/Kattbot/Services/EmoteEntityBuilder.cs diff --git a/Kattbot/Services/EmoteParser.cs b/src/Kattbot/Services/EmoteParser.cs similarity index 100% rename from Kattbot/Services/EmoteParser.cs rename to src/Kattbot/Services/EmoteParser.cs diff --git a/Kattbot/Services/GuildSettingsService.cs b/src/Kattbot/Services/GuildSettingsService.cs similarity index 100% rename from Kattbot/Services/GuildSettingsService.cs rename to src/Kattbot/Services/GuildSettingsService.cs diff --git a/Kattbot/Services/Images/ImageEffects.cs b/src/Kattbot/Services/Images/ImageEffects.cs similarity index 100% rename from Kattbot/Services/Images/ImageEffects.cs rename to src/Kattbot/Services/Images/ImageEffects.cs diff --git a/Kattbot/Services/Images/ImageMetadataExtensions.cs b/src/Kattbot/Services/Images/ImageMetadataExtensions.cs similarity index 100% rename from Kattbot/Services/Images/ImageMetadataExtensions.cs rename to src/Kattbot/Services/Images/ImageMetadataExtensions.cs diff --git a/Kattbot/Services/Images/ImageOperations.cs b/src/Kattbot/Services/Images/ImageOperations.cs similarity index 100% rename from Kattbot/Services/Images/ImageOperations.cs rename to src/Kattbot/Services/Images/ImageOperations.cs diff --git a/Kattbot/Services/Images/ImageService.cs b/src/Kattbot/Services/Images/ImageService.cs similarity index 100% rename from Kattbot/Services/Images/ImageService.cs rename to src/Kattbot/Services/Images/ImageService.cs diff --git a/Kattbot/Services/KattGpt/ChatGptClient.cs b/src/Kattbot/Services/KattGpt/ChatGptClient.cs similarity index 100% rename from Kattbot/Services/KattGpt/ChatGptClient.cs rename to src/Kattbot/Services/KattGpt/ChatGptClient.cs diff --git a/Kattbot/Services/KattGpt/DalleToolBuilder.cs b/src/Kattbot/Services/KattGpt/DalleToolBuilder.cs similarity index 100% rename from Kattbot/Services/KattGpt/DalleToolBuilder.cs rename to src/Kattbot/Services/KattGpt/DalleToolBuilder.cs diff --git a/Kattbot/Services/KattGpt/KattGptCache.cs b/src/Kattbot/Services/KattGpt/KattGptCache.cs similarity index 100% rename from Kattbot/Services/KattGpt/KattGptCache.cs rename to src/Kattbot/Services/KattGpt/KattGptCache.cs diff --git a/Kattbot/Services/KattGpt/KattGptChannelContext.cs b/src/Kattbot/Services/KattGpt/KattGptChannelContext.cs similarity index 100% rename from Kattbot/Services/KattGpt/KattGptChannelContext.cs rename to src/Kattbot/Services/KattGpt/KattGptChannelContext.cs diff --git a/Kattbot/Services/KattGpt/KattGptService.cs b/src/Kattbot/Services/KattGpt/KattGptService.cs similarity index 100% rename from Kattbot/Services/KattGpt/KattGptService.cs rename to src/Kattbot/Services/KattGpt/KattGptService.cs diff --git a/Kattbot/Services/KattGpt/KattGptTokenizer.cs b/src/Kattbot/Services/KattGpt/KattGptTokenizer.cs similarity index 100% rename from Kattbot/Services/KattGpt/KattGptTokenizer.cs rename to src/Kattbot/Services/KattGpt/KattGptTokenizer.cs diff --git a/Kattbot/Services/Speech/SpeechHttpClient.cs b/src/Kattbot/Services/Speech/SpeechHttpClient.cs similarity index 100% rename from Kattbot/Services/Speech/SpeechHttpClient.cs rename to src/Kattbot/Services/Speech/SpeechHttpClient.cs diff --git a/Kattbot/Services/Speech/SpeechModels.cs b/src/Kattbot/Services/Speech/SpeechModels.cs similarity index 100% rename from Kattbot/Services/Speech/SpeechModels.cs rename to src/Kattbot/Services/Speech/SpeechModels.cs diff --git a/Kattbot/Workers/BotWorker.cs b/src/Kattbot/Workers/BotWorker.cs similarity index 100% rename from Kattbot/Workers/BotWorker.cs rename to src/Kattbot/Workers/BotWorker.cs diff --git a/Kattbot/Workers/Channels.cs b/src/Kattbot/Workers/Channels.cs similarity index 100% rename from Kattbot/Workers/Channels.cs rename to src/Kattbot/Workers/Channels.cs diff --git a/Kattbot/Workers/CommandQueueWorker.cs b/src/Kattbot/Workers/CommandQueueWorker.cs similarity index 100% rename from Kattbot/Workers/CommandQueueWorker.cs rename to src/Kattbot/Workers/CommandQueueWorker.cs diff --git a/Kattbot/Workers/DiscordLoggerWorker.cs b/src/Kattbot/Workers/DiscordLoggerWorker.cs similarity index 100% rename from Kattbot/Workers/DiscordLoggerWorker.cs rename to src/Kattbot/Workers/DiscordLoggerWorker.cs diff --git a/Kattbot/Workers/EventQueueWorker.cs b/src/Kattbot/Workers/EventQueueWorker.cs similarity index 100% rename from Kattbot/Workers/EventQueueWorker.cs rename to src/Kattbot/Workers/EventQueueWorker.cs diff --git a/Kattbot/appsettings.Development.json b/src/Kattbot/appsettings.Development.json similarity index 100% rename from Kattbot/appsettings.Development.json rename to src/Kattbot/appsettings.Development.json diff --git a/Kattbot/appsettings.json b/src/Kattbot/appsettings.json similarity index 100% rename from Kattbot/appsettings.json rename to src/Kattbot/appsettings.json diff --git a/src/Kattbot/prod.Dockerfile b/src/Kattbot/prod.Dockerfile new file mode 100644 index 0000000..e028004 --- /dev/null +++ b/src/Kattbot/prod.Dockerfile @@ -0,0 +1,35 @@ +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +ARG BUILD_CONFIGURATION=Release +WORKDIR /src +COPY ["Directory.Build.props", "."] +COPY ["src/Kattbot/Kattbot.csproj", "Kattbot/"] +COPY ["src/Kattbot.Common/Kattbot.Common.csproj", "Kattbot.Common/"] +COPY ["src/Kattbot.Data/Kattbot.Data.csproj", "Kattbot.Data/"] +COPY ["src/Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj", "Kattbot.Data.Migrations/"] +COPY [".config/dotnet-tools.json", ".config/"] +RUN dotnet restore "./Kattbot/Kattbot.csproj" +RUN dotnet restore "./Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj" +RUN dotnet tool restore +COPY ["Kattbot.sln", "."] +COPY ["stylecop.json", "."] +COPY [".editorconfig", "."] +COPY ["scripts/kattbot-backup-db.sh", "."] +COPY src . +RUN dotnet build "./Kattbot/Kattbot.csproj" --no-restore -c $BUILD_CONFIGURATION +RUN dotnet build "./Kattbot.Data.Migrations/Kattbot.Data.Migrations.csproj" --no-restore -c $BUILD_CONFIGURATION + +FROM build AS publish +ARG BUILD_CONFIGURATION=Release +RUN dotnet publish "./Kattbot/Kattbot.csproj" --no-build -c $BUILD_CONFIGURATION -o /output/publish /p:UseAppHost=false + +FROM build AS migrations +ARG BUILD_CONFIGURATION=Release +RUN dotnet ef migrations script --no-build --configuration $BUILD_CONFIGURATION --idempotent -p Kattbot.Data.Migrations -o /output/migrations/database_migration.sql +COPY --from=build /src/kattbot-backup-db.sh /output/migrations/ + +FROM mcr.microsoft.com/dotnet/runtime:8.0 AS final +WORKDIR /app +COPY --from=publish /output/publish . +COPY --from=migrations /output/migrations ./migrations/ +USER $APP_UID +ENTRYPOINT ["dotnet", "Kattbot.dll"] diff --git a/Kattbot.Tests/EmoteParserTests.cs b/tests/Kattbot.Tests/EmoteParserTests.cs similarity index 100% rename from Kattbot.Tests/EmoteParserTests.cs rename to tests/Kattbot.Tests/EmoteParserTests.cs diff --git a/Kattbot.Tests/ImageTests.cs b/tests/Kattbot.Tests/ImageTests.cs similarity index 100% rename from Kattbot.Tests/ImageTests.cs rename to tests/Kattbot.Tests/ImageTests.cs diff --git a/Kattbot.Tests/Kattbot.Tests.csproj b/tests/Kattbot.Tests/Kattbot.Tests.csproj similarity index 95% rename from Kattbot.Tests/Kattbot.Tests.csproj rename to tests/Kattbot.Tests/Kattbot.Tests.csproj index 484bd04..fe842df 100644 --- a/Kattbot.Tests/Kattbot.Tests.csproj +++ b/tests/Kattbot.Tests/Kattbot.Tests.csproj @@ -23,7 +23,7 @@ - + diff --git a/Kattbot.Tests/Resources/froge.png b/tests/Kattbot.Tests/Resources/froge.png similarity index 100% rename from Kattbot.Tests/Resources/froge.png rename to tests/Kattbot.Tests/Resources/froge.png diff --git a/Kattbot.Tests/StringExtensionsTests.cs b/tests/Kattbot.Tests/StringExtensionsTests.cs similarity index 100% rename from Kattbot.Tests/StringExtensionsTests.cs rename to tests/Kattbot.Tests/StringExtensionsTests.cs From 248e98e8518797a8398fa68f168c1b1e8079a640 Mon Sep 17 00:00:00 2001 From: Bob Loblaw Date: Sat, 8 Feb 2025 17:41:53 +0100 Subject: [PATCH 2/2] Update file paths in github workflows --- .github/workflows/build.yml | 6 +++--- .github/workflows/release-v2.yml | 16 +++++++--------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 24785a3..f70ffbc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,10 +25,10 @@ jobs: packages: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET Core - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x @@ -56,7 +56,7 @@ jobs: uses: docker/build-push-action@v5.1.0 with: context: . - file: ./docker/Prod.Dockerfile + file: ./src/Kattbot/prod.Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} diff --git a/.github/workflows/release-v2.yml b/.github/workflows/release-v2.yml index 604aae0..9b20a39 100644 --- a/.github/workflows/release-v2.yml +++ b/.github/workflows/release-v2.yml @@ -16,7 +16,8 @@ env: REGISTRY: ghcr.io IMAGE_NAME: kattbot COMPOSE_PROJECT_NAME: kattbot - COMPOSE_FILE_NAME: prod-compose.yml + COMPOSE_FILE_PATH_SRC: docker/docker-compose.prod.yml + COMPOSE_FILE_NAME: docker-compose.prod.yml DB_NAME: kattbot DB_BACKUP_SCRIPT: kattbot-backup-db.sh DB_MIGRATION_SCRIPT: database_migration.sql @@ -61,7 +62,7 @@ jobs: username: ${{secrets.KATTBOT_USER}} key: ${{secrets.KATTBOT_KEY}} passphrase: ${{secrets.KATTBOT_PASSPHRASE}} - source: "docker/${{ env.COMPOSE_FILE_NAME }}" + source: ${{ env.COMPOSE_FILE_PATH_SRC }} target: "$HOME/" strip_components: 1 overwrite: true @@ -84,13 +85,10 @@ jobs: script_stop: true script: | FULL_IMAGE_NAME="$REGISTRY/$REPOSITORY_NAME/$IMAGE_NAME:$IMAGE_TAG" - FULL_IMAGE_NAME_PREVIOUS="$REGISTRY/$REPOSITORY_NAME/$IMAGE_NAME:$IMAGE_TAG-previous" + echo "Full image name: $FULL_IMAGE_NAME" MIGRATIONS_CONTAINER_NAME="$COMPOSE_PROJECT_NAME-migrations" - # Tag the previous image with the previous tag, if it exists - docker image tag $FULL_IMAGE_NAME $FULL_IMAGE_NAME_PREVIOUS || true - # Pull the image from the registry echo $GHCR_PASSWORD | docker login $REGISTRY -u $GHCR_USERNAME --password-stdin docker pull $FULL_IMAGE_NAME @@ -116,6 +114,9 @@ jobs: # Run the database migration script psql -d $DB_NAME -q -f "$TMP_MIGRATIONS_DIR/$DB_MIGRATION_SCRIPT" + # Remove the temporary directory + rm -rf $TMP_MIGRATIONS_DIR + # Take down the old compose project, if it exists docker compose -p $COMPOSE_PROJECT_NAME down || true @@ -124,9 +125,6 @@ jobs: # Prune untagged images docker image prune -f - - # Remove the temporary directory - rm -rf $TMP_MIGRATIONS_DIR envs: >- HOST_GATEWAY_IP, REGISTRY,