/
Laxerem
/
BaskBot
Обзор
Документация
Войти
/
Laxerem
/
BaskBot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
BaskBot.Application/Program.cs
69 строк
3 KB
Laxerem
[SAVED]: Start creating a KeyboardBuilder
06 янв 2026, 10:06
06 янв 2026, 10:06
c92a9e7
Код
Авторство
О чём код?
using System.Net.Http.Headers; using BaskBot.Application; using BaskBot.Application.Bot; using BaskBot.Application.Bot.Base; using BaskBot.Application.Bot.Commands; using BaskBot.Application.Bot.Commands.Objects; using BaskBot.Application.Bot.Controllers; using BaskBot.Database; using BaskBot.Database.Extensions; using BaskBot.Database.Options; using BaskBot.Infrastructure.Clients; using BaskBot.Infrastructure.Clients.Options; using DotNetEnv; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; class Program { public static async Task Main(string[] args) { string workDirectory = "../../../"; var applicationBuilder = Host.CreateApplicationBuilder(args); // Конфигурация var path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, workDirectory)); Env.Load(path); applicationBuilder.Configuration.SetBasePath(path); applicationBuilder.Configuration.AddJsonFile("appsettings.json"); applicationBuilder.Configuration.AddEnvironmentVariables(); Console.WriteLine($"Model: {applicationBuilder.Configuration["open_router:ModelName"]}"); string? botToken = applicationBuilder.Configuration["BOT_TOKEN"]; if (string.IsNullOrEmpty(botToken)) { throw new Exception("The bot token is missing."); } // Сервисы applicationBuilder.Services.AddHttpClient<OpenRouterClient>() .ConfigureHttpClient((sp, client) => { var options = sp.GetRequiredService<IOptions<OpenRouterClientOptions>>().Value; // client.BaseAddress = new Uri(options.BaseUrl); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", options.ApiKey); }); applicationBuilder.Services.AddDatabase(applicationBuilder.Configuration); // Configure applicationBuilder.Services.Configure<OpenRouterClientOptions>(applicationBuilder.Configuration.GetSection(OpenRouterClientOptions.SectionName)); applicationBuilder.Services.Configure<DatabaseOptions>(applicationBuilder.Configuration.GetSection(DatabaseOptions.SectionName)); // Singleton applicationBuilder.Services.AddSingleton<CommandContext>(); applicationBuilder.Services.AddSingleton<CommandController>(); applicationBuilder.Services.AddSingleton<UserController>(); //Scoped applicationBuilder.Services.AddScoped<StartCommand>(); applicationBuilder.Services.AddScoped<RegisterCommand>(); // Hosted services applicationBuilder.Services.AddHostedService<TelegramBot>(sp => new TelegramBot(botToken, sp.GetRequiredService<UserController>()) ); var app = applicationBuilder.Build(); await app.RunAsync(); } }