package Ġcom . github . de mid ko . du rov Ċ Ċ import Ġcom . github . kot l inte le gram bot . Bot Ċ import Ġcom . github . kot l inte le gram bot . entities . Chat Id Ċ import Ġcom . github . kot l inte le gram bot . entities . Telegram File Ċ import Ġcom . github . kot l inte le gram bot . entities . Telegram File . By ByteArray Ċ import Ġkotlinx . serialization . Serialization Exception Ċ import Ġkotlinx . serialization . decode From ByteArray Ċ import Ġkotlinx . serialization . encode To ByteArray Ċ import Ġkotlinx . serialization . protobuf . Proto Buf Ċ import Ġjava . util . concurrent . Concurrent HashMap Ċ Ċ /** Ċ Ġ* ĠÐ¡ Ð¾ Ñħ ÑĢÐ°Ð½ Ð¸ÑĤÑĮ ĠÑĦÐ°Ð¹Ð» ĠÐ² ĠÐ¾Ð± Ð» Ð°Ðº Ð¾ ĠTelegram Ċ Ġ* Ġ@ return ĠÑģ ÑģÑĭ Ð» ÐºÐ° ĠÐ½Ð° ĠÑĦÐ°Ð¹Ð» Ċ Ġ*/ Ċ internal Ġfun ĠBot . save ( file : ĠTelegram File , Ġto : ĠChat Id , Ġwith Tags : ĠSet < String > Ġ= Ġempty Set ()): ĠReference Ġ{ ĊĠ Ġval Ġcaption Ġ= Ġwith Tags . join ToString (" Ġ") Ġ{ Ġ"# $ it " Ġ} ĊĠ Ġval Ġmessage Ġ= Ġsend Document ( to , Ġfile , Ġcaption ). first ?. body ()?. result !! ĊĠ Ġval Ġfile Id Ġ= Ġmessage . document ?. file Id !! ĊĠ Ġreturn ĠReference ( message . message Id , Ġfile Id ) Ċ } Ċ Ċ /** Ċ Ġ* Ġ@ return ĠÐ²ÑģÐµ ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ ĠÐ½Ð° ĠÑĦÐ°Ð¹Ð» Ñĭ ĠÑħ ÑĢÐ°Ð½ Ñı ÑīÐ¸Ðµ ÑģÑı ĠÐ² ĠÑįÑĤ Ð¾Ð¼ ĠÐº Ð°Ð½ Ð°Ð» Ðµ Ċ Ġ*/ Ċ internal Ġfun ĠBot . read References ( channel : ĠChat Id ): ĠReferences Map Ġ{ ĊĠ Ġval Ġfile Id Ġ= Ġget Chat ( channel ). get (). description Ġ?: Ġreturn ĠConcurrent HashMap () ĊĠ Ġval Ġprotobuf Ġ= Ġdownload File Bytes ( file Id ) Ġ?: Ġreturn ĠConcurrent HashMap () ĊĠ Ġreturn Ġtry Ġ{ ĊĠĠĠ Ġreturn ĠConcurrent HashMap ( Proto Buf . decode From ByteArray < References Map >( protobuf )) ĊĠ Ġ} Ġcatch Ġ( e : ĠSerialization Exception ) Ġ{ ĊĠĠĠ ĠConcurrent HashMap () ĊĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠÐ¡ Ð¾ Ñħ ÑĢÐ°Ð½ Ð¸ÑĤÑĮ ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ ĠÐ¸Ð· ĠÐ¾Ð¿ ÐµÑĢ Ð°ÑĤ Ð¸Ð² Ð½Ð¾Ð¹ ĠÐ¿ Ð°Ð¼ Ñı ÑĤÐ¸ ĠÐ² ĠÐº Ð°Ð½ Ð°Ð» Ċ Ġ*/ Ċ internal Ġfun ĠBot . save ( refs : ĠReferences Map , Ġto : ĠChat Id ) Ġ{ ĊĠ Ġval Ġprotobuf Ġ= ĠProto Buf . encode To ByteArray ( refs ) ĊĠ Ġval Ġfile Id Ġ= Ġsave ( By ByteArray ( protobuf ), Ġto ). file Id ĊĠ Ġif Ġ( set Chat Description ( to , Ġfile Id ). first ?. is Successful Ġ!= Ġtrue ) Ġ{ ĊĠĠĠ Ġerror (" Can 't Ġsave Ġfile Ġid Ġ$ file Id ") ĊĠ Ġ} Ċ }