From 6bd6b9e0eccf8ca5486108ef52de695d92168875 Mon Sep 17 00:00:00 2001 From: bsdayo Date: Sat, 29 Apr 2023 05:54:08 +0800 Subject: [PATCH] feat: add adapter extensions --- .github/workflows/publish.yml | 24 +++++++++ Flandre.sln | 12 +++++ .../AdapterCollectionExtensions.cs | 51 ++++++++++++++++++ .../Flandre.Adapters.Konata.Extensions.csproj | 33 ++++++++++++ .../AdapterCollectionExtensions.cs | 52 +++++++++++++++++++ .../Flandre.Adapters.OneBot.Extensions.csproj | 33 ++++++++++++ 6 files changed, 205 insertions(+) create mode 100644 src/Flandre.Adapters.Konata.Extensions/AdapterCollectionExtensions.cs create mode 100644 src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj create mode 100644 src/Flandre.Adapters.OneBot.Extensions/AdapterCollectionExtensions.cs create mode 100644 src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a38ac65..589b1ec 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -85,6 +85,30 @@ jobs: TAG_COMMIT: false NUGET_KEY: ${{secrets.NUGET_API_KEY}} + # ===== Adapter Extensions ===== + + - name: Publish Adapters.Konata.Extensions + id: publish-adapter-konata-extensions + uses: alirezanet/publish-nuget@v3.0.4 + with: + PROJECT_FILE_PATH: src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj + PACKAGE_NAME: Flandre.Adapters.Konata.Extensions + VERSION_FILE_PATH: src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj + VERSION_REGEX: ^\s*(.*)<\/PackageVersion>\s*$ + TAG_COMMIT: false + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + + - name: Publish Adapters.OneBot.Extensions + id: publish-adapter-onebot-extensions + uses: alirezanet/publish-nuget@v3.0.4 + with: + PROJECT_FILE_PATH: src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj + PACKAGE_NAME: Flandre.Adapters.OneBot.Extensions + VERSION_FILE_PATH: src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj + VERSION_REGEX: ^\s*(.*)<\/PackageVersion>\s*$ + TAG_COMMIT: false + NUGET_KEY: ${{secrets.NUGET_API_KEY}} + # ===== Reactive Extensions ===== - name: Publish Core.Reactive diff --git a/Flandre.sln b/Flandre.sln index b631272..068950b 100644 --- a/Flandre.sln +++ b/Flandre.sln @@ -36,6 +36,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flandre.Adapters.Discord", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordAdapterTest", "temp\DiscordAdapterTest\DiscordAdapterTest.csproj", "{3E22D1AE-4DBE-4C6B-ABDB-1A33ED54D3AF}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flandre.Adapters.Konata.Extensions", "src\Flandre.Adapters.Konata.Extensions\Flandre.Adapters.Konata.Extensions.csproj", "{3BEF4654-51CB-47FA-9197-698F3B8B23BA}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flandre.Adapters.OneBot.Extensions", "src\Flandre.Adapters.OneBot.Extensions\Flandre.Adapters.OneBot.Extensions.csproj", "{3F5443F7-2B58-42E7-A5D6-8E88594724E4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -90,6 +94,14 @@ Global {3E22D1AE-4DBE-4C6B-ABDB-1A33ED54D3AF}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E22D1AE-4DBE-4C6B-ABDB-1A33ED54D3AF}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E22D1AE-4DBE-4C6B-ABDB-1A33ED54D3AF}.Release|Any CPU.Build.0 = Release|Any CPU + {3BEF4654-51CB-47FA-9197-698F3B8B23BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3BEF4654-51CB-47FA-9197-698F3B8B23BA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3BEF4654-51CB-47FA-9197-698F3B8B23BA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3BEF4654-51CB-47FA-9197-698F3B8B23BA}.Release|Any CPU.Build.0 = Release|Any CPU + {3F5443F7-2B58-42E7-A5D6-8E88594724E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F5443F7-2B58-42E7-A5D6-8E88594724E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F5443F7-2B58-42E7-A5D6-8E88594724E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F5443F7-2B58-42E7-A5D6-8E88594724E4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Flandre.Adapters.Konata.Extensions/AdapterCollectionExtensions.cs b/src/Flandre.Adapters.Konata.Extensions/AdapterCollectionExtensions.cs new file mode 100644 index 0000000..76b23ad --- /dev/null +++ b/src/Flandre.Adapters.Konata.Extensions/AdapterCollectionExtensions.cs @@ -0,0 +1,51 @@ +using Flandre.Framework; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace Flandre.Adapters.Konata.Extensions; + +/// +/// Konata 适配器扩展 +/// +public static class AdapterCollectionExtensions +{ + /// + /// 添加 Konata 适配器,自动从配置根中的 Adapters:Konata 项读取配置。 + /// + public static void AddKonata(this IAdapterCollection adapters) + { + var config = adapters.Services + .BuildServiceProvider() + .GetRequiredService() + .GetSection("Adapters:Konata") + .Get(); + adapters.Add(new KonataAdapter(config ?? new KonataAdapterConfig())); + } + + /// + /// 添加 Konata 适配器。 + /// + public static void AddKonata(this IAdapterCollection adapters, IConfiguration configuration) + { + var config = configuration.Get(); + adapters.Add(new KonataAdapter(config ?? new KonataAdapterConfig())); + } + + /// + /// 添加 Konata 适配器。 + /// + public static void AddKonata(this IAdapterCollection adapters, Action action) + { + var config = new KonataAdapterConfig(); + action(config); + adapters.Add(new KonataAdapter(config)); + } + + /// + /// 添加 Konata 适配器。 + /// + public static void AddKonata(this IAdapterCollection adapters, KonataAdapterConfig config) + { + adapters.Add(new KonataAdapter(config)); + } +} diff --git a/src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj b/src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj new file mode 100644 index 0000000..144b716 --- /dev/null +++ b/src/Flandre.Adapters.Konata.Extensions/Flandre.Adapters.Konata.Extensions.csproj @@ -0,0 +1,33 @@ + + + + Flandre.Adapters.Konata.Extensions + 1.0.0 + FlandreDevs,bsdayo + Flandre.Framework extensions for Flandre.Adapters.Konata. + bot;chatbot;flandre;adapter;konata;extensions + GPL-3.0-only + avatar.jpg + + net6.0 + enable + enable + Library + true + + https://github.com/FlandreDevs/Flandre + https://github.com/FlandreDevs/Flandre.git + git + FlandreDevs (C) 2022-2023 + + + + + + + + + + + + diff --git a/src/Flandre.Adapters.OneBot.Extensions/AdapterCollectionExtensions.cs b/src/Flandre.Adapters.OneBot.Extensions/AdapterCollectionExtensions.cs new file mode 100644 index 0000000..1c9e704 --- /dev/null +++ b/src/Flandre.Adapters.OneBot.Extensions/AdapterCollectionExtensions.cs @@ -0,0 +1,52 @@ +using Flandre.Framework; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; + +namespace Flandre.Adapters.OneBot.Extensions; + +/// +/// OneBot 适配器扩展 +/// +public static class AdapterCollectionExtensions +{ + /// + /// 添加 OneBot 适配器,自动从配置根中的 Adapters:OneBot 项读取配置。 + /// + public static void AddOneBot(this IAdapterCollection adapters) + { + var config = adapters.Services + .BuildServiceProvider() + .GetRequiredService() + .GetSection("Adapters:OneBot") + .Get(); + adapters.Add(new OneBotAdapter(config ?? new OneBotAdapterConfig())); + } + + /// + /// 添加 OneBot 适配器。 + /// + public static void AddOneBot(this IAdapterCollection adapters, IConfiguration configuration) + { + var config = configuration.Get(); + adapters.Add(new OneBotAdapter(config ?? new OneBotAdapterConfig())); + } + + /// + /// 添加 OneBot 适配器。 + /// + public static void AddOneBot(this IAdapterCollection adapters, Action action) + { + var config = new OneBotAdapterConfig(); + action(config); + adapters.Add(new OneBotAdapter(config)); + } + + /// + /// 添加 OneBot 适配器。 + /// + public static void AddOneBot(this IAdapterCollection adapters, OneBotAdapterConfig config) + { + adapters.Add(new OneBotAdapter(config)); + } +} + diff --git a/src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj b/src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj new file mode 100644 index 0000000..a2e9a2f --- /dev/null +++ b/src/Flandre.Adapters.OneBot.Extensions/Flandre.Adapters.OneBot.Extensions.csproj @@ -0,0 +1,33 @@ + + + + Flandre.Adapters.OneBot.Extensions + 1.0.0 + FlandreDevs,bsdayo + Flandre.Framework extensions for Flandre.Adapters.OneBot. + bot;chatbot;flandre;adapter;onebot;extensions + MIT + avatar.jpg + + net6.0 + enable + enable + Library + true + + https://github.com/FlandreDevs/Flandre + https://github.com/FlandreDevs/Flandre.git + git + FlandreDevs (C) 2022-2023 + + + + + + + + + + + +