Lirxe.VK 1.0.4.1

dotnet add package Lirxe.VK --version 1.0.4.1
NuGet\Install-Package Lirxe.VK -Version 1.0.4.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Lirxe.VK" Version="1.0.4.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Lirxe.VK --version 1.0.4.1
#r "nuget: Lirxe.VK, 1.0.4.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Lirxe.VK as a Cake Addin
#addin nuget:?package=Lirxe.VK&version=1.0.4.1

// Install Lirxe.VK as a Cake Tool
#tool nuget:?package=Lirxe.VK&version=1.0.4.1

LirxeVK

Lirxe provides a lightweight and MVC-like way to build your chatbot application using .NET Core. Russian readme is here

Getting started

The base idea of Lirxe is a source (or listener) getting events should be passed to runner which executes an action, or command inside a controller.

private static async Task Main(string[] args)
{
    var bot = new
    {
        AccessToken = "ACCESS_TOKEN",
        PublicId = (ulong)1
    };
    
    
    var vk = new VkApi();
    vk.Authorize(new ApiAuthParams(){AccessToken = bot.AccessToken});
    var source = new LongpoolSource(vk, bot.PublicId);
    var run = new Runner(new[] {Assembly.GetExecutingAssembly()});
    source.Request += ctx => run.Run(ctx);
    await source.RunAsync();
}

Here we are using a LongpoolSource to get events from VK LongPool API (make sure it's enabled in your group's settings), then pass these to Runner, which will execute an action.

Actions are living inside Controllers. This is an example:

public class Controller:BaseController
    {

        public Controller(ActionContext ctx) : base(ctx) { }
        [DefaultAction]
        public void Default() => Send("This is default action");

        [Action("hello")]
        public async void Hello()
        {
            Send("How you doing?");
            Send($"You doing {(await Prompt("no", ()=>{Send("sad"); Default();})).Text}");
        }
}

There is the Default action being executed when no actions are matching. You can be creative for putting any "Command not found" text here, or usage help, or maybe just ignore it.

Action attribute is used for defining method as actual action. In this example, it just asks the user about hyd using Prompt (i will explain it later), then returns his input (or "sad" when it cancels prompt using "no" word)

Some more documentation

Comming soon.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.4.1 405 8/8/2021
1.0.4 345 8/8/2021
1.0.2 314 7/30/2021
1.0.1 324 7/30/2021
1.0.0 341 7/29/2021