CodeToImageGenerator
71 строка · 1.8 Кб
1using System.Net; // èñïîëüçóåòñÿ â Release ñáîðêå, íå óäàëÿòü!
2
3using CodeToImageGenerator.Web.Services;
4
5var builder = WebApplication.CreateBuilder(args);
6
7// Èñïîëüçóåòñÿ â Release ñáîðêå, äëÿ îòëàäêè íå íóæíî
8#if !DEBUG
9builder.WebHost.ConfigureKestrel(serverOptions =>
10{
11serverOptions.Listen(IPAddress.Any, 80);
12serverOptions.Listen(IPAddress.Any, 443);
13});
14#endif
15
16var botToken = Environment.GetEnvironmentVariable("BOT_TOKEN");
17var webAppAddress = Environment.GetEnvironmentVariable("WEB_APP_URL");
18
19builder.Services.AddControllersWithViews();
20
21builder.Services.AddTransient<IImageService, ImageService>();
22builder.Services.AddSingleton<TelegramBotService>(
23sp => new TelegramBotService(
24sp.GetRequiredService<ILogger<TelegramBotService>>(),
25sp.GetRequiredService<IImageService>(),
26botToken,
27webAppAddress
28));
29
30builder.Services.AddControllers().AddJsonOptions(options =>
31{
32options.JsonSerializerOptions.PropertyNamingPolicy = null;
33});
34
35builder.Services.AddSession(options =>
36{
37options.IdleTimeout = TimeSpan.FromMinutes(30);
38options.Cookie.HttpOnly = true;
39options.Cookie.IsEssential = true;
40});
41
42var app = builder.Build();
43
44if (!app.Environment.IsDevelopment())
45{
46app.UseExceptionHandler("/Home/Error");
47app.UseHsts();
48}
49
50app.UseHttpsRedirection();
51app.UseStaticFiles();
52
53app.UseSession();
54
55app.UseRouting();
56
57app.UseAuthorization();
58
59app.MapControllerRoute(
60name: "default",
61pattern: "{controller=Home}/{action=Index}/{id?}");
62app.MapControllerRoute(
63name: "TelegramWebApp",
64pattern: "{controller=Home}/{action=Index}/{initData}");
65
66app.MapControllers();
67
68var bot = app.Services.GetRequiredService<TelegramBotService>() as TelegramBotService;
69await bot.StartAsync(new CancellationToken());
70
71app.Run();
72
73
74