package Ġno . nav . dag p enger . do h . slack Ċ Ċ import Ġcom . slack . api . methods . Methods Client Ċ import Ġcom . slack . api . methods . kotlin _ extension . request . chat . blocks Ċ import Ġcom . slack . api . methods . request . chat . Chat Post Message Request . Chat Post Message RequestBuilder Ċ import Ġcom . slack . api . model . kotlin _ extension . block . Section Block Builder Ċ import Ġmu . Kotlin Logging Ċ import Ġno . nav . dag p enger . do h . K ibana Ċ import Ġjava . time . LocalDateTime Ċ Ċ internal Ġclass ĠSlack Bot ( ĊĠĠĠ Ġprivate Ġval Ġslack Client : ĠMethods Client , ĊĠĠĠ Ġprivate Ġval Ġslack Channel Id : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠKotlin Logging . logger Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġs ik ker log g Ġ= ĠKotlin Logging . logger (" t jen est ek all . Slack ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpost Result at ( ĊĠĠĠĠĠĠĠ Ġuuid : ĠString , ĊĠĠĠĠĠĠĠ Ġopp rett et : ĠLocalDateTime , ĊĠĠĠĠĠĠĠ Ġresult at : ĠBoolean , ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchat Post Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult at T ek st Ġ= Ġif Ġ( result at ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Autom atis k Ġin nv il gel se " Ġelse Ġ" Autom atis k Ġav sl ag Ġ: no _ entry _ sign :" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . blocks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ Ġfer dig S aks be hand let () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkdown Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"* Result at :* Ġ$ result at T ek st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"* UUID :* Ġ$ uuid ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ToString ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess ory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġ" https :// a . slack - edge . com / production - standard - emoji - assets / 1 3 . 0 / apple - large / 2 7 0 5 . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalt Text Ġ= Ġ" Check mark " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdivider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext (": ledger : ĠSe Ġs aks be hand lings log g ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ( K ibana . create Url ( String . format ("\" % s \"", Ġuuid ), Ġopp rett et . minus Hours ( 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pro sess en Ġfor Ġ$ uuid Ġhar Ġblit t Ġfer dig Ġmed Ġresult ate t Ġ$ result at " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġpost Man ue ll Be handling ( uuid : ĠString , Ġopp rett et : ĠLocalDateTime , ĠÃ¥ rs ak : ĠString ) Ġ= Ġchat Post Message Ġ{ ĊĠĠĠĠĠĠĠ Ġit . blocks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfer dig S aks be hand let () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsection Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetect ive Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": male - detect ive :", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ": female - detect ive :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). random () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmarkdown Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"* Result at :* ĠMan ue ll Ġs aks be handling Ġi ĠA rena Ġ$ detect ive ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"* UUID :* Ġ$ uuid ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"* Ã ħ rs ak :* Ġ$ Ã¥ rs ak ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). join ToString ("\ n ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess ory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= Ġ" https :// images - na . ssl - images - amazon . com / images / I / 6 1 tk c GZ e U KL . png ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalt Text Ġ= Ġ" S ad Ġt rom bone " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdivider () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext (": ledger : ĠSe Ġs aks be hand lings log g ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl ( K ibana . create Url ( String . format ("\" % s \"", Ġuuid ), Ġopp rett et . minus Hours ( 1 ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġit . text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" P Ã¥ Ġg run n Ġav Ġ$ Ã¥ rs ak Ġkan Ġik ke Ġs Ã¸ kn aden Ġ$ uuid Ġautomatis eres , Ġden Ġg Ã¥r Ġtil Ġman ue ll Ġbe handling Ġi ĠA rena " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠSection Block Builder . fer dig S aks be hand let () Ġ= ĊĠĠĠĠĠĠĠ Ġplain Text (" J eg Ġhar Ġs aks be hand let Ġen Ġs Ã¸ kn ad ! Ġ: checker ed _ flag : Ġ: checker ed _ flag : Ġ: checker ed _ flag :") ĊĊĠĠĠ Ġprivate Ġfun Ġchat Post Message ( block : Ġ( it : ĠChat Post Message RequestBuilder ) Ġ-> ĠChat Post Message RequestBuilder ) Ġ= ĊĠĠĠĠĠĠĠ Ġslack Client . chat Post Message Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . channel ( slack Channel Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon Emoji (": robot _ face :") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. username (" dp - quiz ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock ( it ) ĊĠĠĠĠĠĠĠ Ġ}. let Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! response . is Ok ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error Ġ{ Ġ" K un ne Ġik ke Ġpost e ĠpÃ¥ ĠSlack Ġfor di Ġ${ response . errors }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error Ġ{ Ġresponse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ