import Ġio . ktor . server . engine .* Ċ import Ġio . ktor . server . netty .* Ċ import Ġorg . k oin . core . component . K oin Component Ċ import Ġorg . k oin . core . context . start K oin Ċ import Ġorg . k oin . dsl . bind Ċ import Ġorg . k oin . dsl . module Ċ import Ġorg . telegram . telegram bots . meta . Telegram Bot s Api Ċ import Ġorg . telegram . telegram bots . meta . gener ics . Long Polling Bot Ċ import Ġorg . telegram . telegram bots . updates re ceiv ers . Default Bot Session Ċ Ċ import Ġorg . k oin . dsl . bind s Ċ import Ġorg . telegram . telegram bots . meta . bots . Abs Sender Ċ import Ġstorage . InMemory State Holder Ċ import Ġstorage . Json File Storage Ċ import Ġstorage . State Holder Ċ import Ġstorage . Storage Ċ Ċ object ĠApplication Ġ: ĠK oin Component Ġ{ ĊĊĠĠĠ Ġ@ Suppress (" USE LESS _ CAST ") ĊĠĠĠ Ġprivate Ġval Ġamazing Module Ġ= Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠEnv Config Provider () Ġ} Ġbind s ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBot Config Provider :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Config Provider :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDb Config Provider :: class ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠIn Memory State Holder () Ġas ĠState Holder Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠA mazing Bot () Ġas ĠUpdates Handler Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠBot Wrapper ( get (), Ġget ()) Ġ} Ġbind s ĠarrayOf ( Long Polling Bot :: class , ĠAbs Sender :: class ) ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠJson File Storage . load ( get ()) Ġas ĠStorage Ġ} ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĠA mazing Web ( get ()) Ġas ĠK tor Web Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk oin Ġ= Ġstart K oin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint Logger () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules ( amaz ing Module ) ĊĠĠĠĠĠĠĠ Ġ}. k oin ĊĊĠĠĠĠĠĠĠ ĠTelegram Bot s Api ( Default Bot Session :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. register Bot ( k oin . get ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġweb Config Ġ= Ġk oin . get < Web Config Provider >() ĊĠĠĠĠĠĠĠ Ġval Ġweb Ġ= Ġk oin . get < K tor Web >() ĊĠĠĠĠĠĠĠ Ġembedded Server ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNet ty , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhost Ġ= Ġweb Config . host , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġport Ġ= Ġweb Config . port , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Ġ= Ġweb . getModule () ĊĠĠĠĠĠĠĠ Ġ). start () ĊĠĠĠ Ġ} Ċ } Ċ