package Ġru . gl itch less . s anta . utils . tg Ċ Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . async Ċ import Ġorg . telegram . telegram bots . bots . Telegram Long Polling Bot Ċ import Ġorg . telegram . telegram bots . meta . api . methods . Bot Api Method Ċ import Ġorg . telegram . telegram bots . meta . api . methods . send . SendMessage Ċ import Ġorg . telegram . telegram bots . meta . api . objects . Update Ċ import Ġru . gl itch less . s anta . utils . Config Ċ import Ġru . gl itch less . s anta . utils . Config Key Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . io . Serializable Ċ import Ġjava . io . String Writer ĊĊ Ċ object ĠLog Santa Bot Ġ: ĠTelegram Long Polling Bot () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġprefix Ġ= ĠConfig . get ( Config Key . TG _ PREFIX ) ĊĠĠĠ Ġprivate Ġval Ġchannel Id Ġ= ĠConfig . get ( Config Key . TG _ CHAT ID ) ĊĠĠĠ Ġoverride Ġfun Ġget Bot Token () Ġ= ĠConfig . get ( Config Key . TG _ TOKEN ) ĊĠĠĠ Ġoverride Ġfun Ġget Bot Username () Ġ= ĠConfig . get ( Config Key . TG _ USERNAME ) ĊĊĠĠĠ Ġoverride Ġfun ĠonUpdate Received ( update : ĠUpdate ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( update ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Join ( name : ĠString , Ġlink : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" ÐŁÑĢ Ð¸Ð² ÐµÑĤ ÑģÑĤÐ² Ñĥ ÐµÐ¼ Ġ[$ name ]( $ link ) ĠÐ² ĠÐĲ ÐĶ Ðľ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Failed Join ( name : ĠString , Ġlink : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" [$ name ]( $ link ) ĠÐ·Ð° Ñħ Ð¾ÑĤ ÐµÐ» ĠÐ· Ð°ÑĢ ÐµÐ³ Ð¸ÑģÑĤ ÑĢÐ¸ ÑĢÐ¾Ð² Ð°ÑĤÑĮÑģÑı , ĠÐ½Ð¾ ĠÑģ ÑĢ Ð¾Ðº ĠÑĥ Ð¶Ðµ ĠÐ¸ ÑģÑĤ ÐµÐº .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Active ( ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġlink : ĠString ?, ĊĠĠĠĠĠĠĠ Ġcomment : ĠString , ĊĠĠĠĠĠĠĠ Ġdelivery Name : ĠString , ĊĠĠĠĠĠĠĠ Ġdelivery Address : ĠString , ĊĠĠĠĠĠĠĠ Ġdelivery Index : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" [$ name ]( $ link ) ĠÐ· Ð°ÑĢ ÐµÐ³ Ð¸ÑģÑĤ ÑĢÐ¸ ÑĢÐ¾Ð² Ð°Ð» ÑģÑı ĠÐ½Ð° ĠÑĥ Ñĩ Ð°ÑģÑĤ Ð¸Ðµ ĠÐ² ĠÐ¢ Ð°Ð¹ Ð½Ð¾Ð¼ ĠÐ¡ Ð°Ð½ ÑĤÐµ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Inactive ( name : ĠString , Ġlink : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" [$ name ]( $ link ) ĠÐ¿ÐµÑĢ ÐµÐ´ ÑĥÐ¼ Ð°Ð» ĠÑĥ Ñĩ Ð° ÑģÑĤÐ² Ð¾Ð² Ð°ÑĤÑĮ ĠÐ² ĠÐĲ ÐĶ Ðľ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Sent ( name From : ĠString , Ġname To : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text ("* $ name From * ĠÐ¾ÑĤ Ð¿ÑĢÐ°Ð² Ð¸Ð» ĠÐ¿Ð¾Ð´ Ð°ÑĢ Ð¾Ðº Ġ* $ name To * ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Sent Message ( to : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" Ð¡ Ð¾ Ð¾Ð±Ñī ÐµÐ½Ð¸Ðµ ĠÑĥ ÑģÐ¿ ÐµÑĪ Ð½Ð¾ ĠÐ¾ÑĤ Ð¿ÑĢÐ°Ð² Ð»ÐµÐ½ Ð¾ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Receive ( name From : ĠString ?, Ġname To : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text ("* $ name To * ĠÐ¿Ð¾Ð»ÑĥÑĩ Ð¸Ð» ĠÐ¿Ð¾Ð´ Ð°ÑĢ Ð¾Ðº ĠÐ¾ÑĤ Ġ* $ name From * ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Shuffle () Ġ{ ĊĠĠĠĠĠĠĠ Ġsend Text (" ÐŁ ÐµÑĢ Ð¼ ÐµÑĪ Ð¸Ð² Ð°ÐµÐ¼ !") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Internal Error ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsw Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġval Ġpw Ġ= ĠPrintWriter ( sw ) ĊĠĠĠĠĠĠĠ Ġex . printStackTrace ( pw ) ĊĠĠĠĠĠĠĠ Ġsend Text (" Ðļ Ð°Ðº Ð°Ñı - ÑĤÐ¾ ĠÐ¾ÑĪÐ¸Ð± ÐºÐ° :\ n ``` ${ sw . toString (). take ( 4 0 0 0 )} ``` ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsend Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= ĠSend Message () ĊĠĠĠĠĠĠĠ Ġmsg . chat Id Ġ= Ġchannel Id ĊĠĠĠĠĠĠĠ Ġmsg . enable Markdown ( true ) ĊĠĠĠĠĠĠĠ Ġmsg . disable Web Page Preview () ĊĠĠĠĠĠĠĠ Ġmsg . text Ġ= Ġ"$ prefix Ġ$ text " ĊĠĠĠĠĠĠĠ Ġasync Send ( msg ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< T Ġ: ĠSerializable ?, ĠMethod Ġ: ĠBot Api Method < T > ?> Ġasync Send ( method : ĠMethod ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGlobal Scope . async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Api Method ( method ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġex . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ