Navigator.Extensions.Cooldown 4.0.0-beta2

This is a prerelease version of Navigator.Extensions.Cooldown.
dotnet add package Navigator.Extensions.Cooldown --version 4.0.0-beta2                
NuGet\Install-Package Navigator.Extensions.Cooldown -Version 4.0.0-beta2                
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="Navigator.Extensions.Cooldown" Version="4.0.0-beta2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Navigator.Extensions.Cooldown --version 4.0.0-beta2                
#r "nuget: Navigator.Extensions.Cooldown, 4.0.0-beta2"                
#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 Navigator.Extensions.Cooldown as a Cake Addin
#addin nuget:?package=Navigator.Extensions.Cooldown&version=4.0.0-beta2&prerelease

// Install Navigator.Extensions.Cooldown as a Cake Tool
#tool nuget:?package=Navigator.Extensions.Cooldown&version=4.0.0-beta2&prerelease                

A highly opinionated telegram bot framework, mainly based on Telegram.Bot.

The only requirement is Microsoft.AspNetCore.App (>= 8.0).

The usage is very simple yet powerful:

...
using Navigator;
... 

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddMemoryCache();

builder.Services.AddNavigator(options =>
{
    options.SetWebHookBaseUrl(builder.Configuration["BASE_WEBHOOK_URL"]!);
    options.SetTelegramToken(builder.Configuration["TELEGRAM_TOKEN"]!);
});

var app = builder.Build();

var bot = app.GetBot();

// This action will be triggered if the user sends a message in the style of `/join <text> <text>`.
bot.OnCommand("join", async (INavigatorClient client, Chat chat, string[] parameters) =>
{
    var result = string.Join(',', parameters);

    await client.SendTextMessageAsync(chat, result);
});

app.MapNavigator();

app.Run();

Getting Started

After installing the package you can start using it by first configuring Navigator:

builder.Services.AddNavigator(options =>
{
    // Configuration here!
});

Inside the AddNavigator method you can define the following options:

  • The WebHook base URL:options.SetWebHookBaseUrl(string)
  • The Telegram token: options.SetTelegramToken(string)
  • Optionally, the WebHook endpoint: options.SetWebHookEndpoint(string)
  • Optionally, allow multiple actions for the same update: options.EnableMultipleActionsUsage()
  • Optionally, enable the sending of chat actions (e.g. typing) notifications: options.EnableChatActionNotification()

Continue by defining the actions of your bot using the different helper methods (see source code for more details).

Finally add the following line to map the endpoint to the navigator framework:

app.MapNavigator();

This will start the server and will listen for incoming requests from Telegram. Your bot is good to go!

Extensions

Navigator comes with a few extensions:

  • Navigator.Extensions.Probabilities: Easily configure the probabilities of a bot action being executed.
  • Navigator.Extensions.Cooldown: Easily configure the cooldown of an action.

You can find them in nuget by searching for Navigator.Extensions..

Examples

Some examples can be found in the samples repository.

Also checkout some bots made with Navigator:

License

Navigator Framework Copyright (C) 2019-2024 Lucas Maximiliano Marino

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.

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
4.0.0-beta2 33 11/22/2024