package Ġco . sim on ken ny . web . command Ċ Ċ import Ġair table . Air table Request er Ċ import Ġair table . air table Date Ċ import Ġco . sim on ken ny . web . DIV _ CLASS Ċ import Ġco . sim on ken ny . web . air table . About Record Ċ import Ġco . sim on ken ny . web . air table . Field Matcher Ċ import Ġkotlinx . html .* Ċ import Ġjava . lang . IllegalStateException Ċ import Ġjava . util .* Ċ import Ġkotlin . jvm . Throws Ċ Ċ const Ġval ĠCMD _ AB OUT Ġ= Ġ" about " Ċ Ċ private Ġval ĠFLAG _ TOPIC Ġ= ĠFlag Info (" t ", Ġ" topic ", Ġdefault Ġ= Ġtrue , Ġoptional Ġ= Ġfalse ) Ċ private Ġval ĠFLAG _ LIMIT Ġ= ĠFlag Info (" l ", Ġ" limit ") Ċ private Ġval ĠFLAG _ ORDER Ġ= ĠFlag Info (" o ", Ġ" order ") Ċ private Ġval ĠFLAG _ SHOW _ DAT ES Ġ= ĠFlag Info (" sd ", Ġ" show - dates ") Ċ Ċ private Ġconst Ġval ĠDEFAULT _ TOPIC _ VALUE Ġ= Ġ" project " Ċ private Ġconst Ġval ĠDEFAULT _ ORDER _ VALUE Ġ= Ġ" new est " Ċ Ċ private Ġconst Ġval ĠTOP IC _ ALL Ġ= Ġ" all " ĊĊ Ċ class ĠAbout Command Ġprivate Ġconstructor ( ĊĠĠĠ Ġflags : ĠList < Flag Data > Ċ ): ĠCommand ( flags ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġname Ġ= ĠCMD _ AB OUT ĊĊĠĠĠ Ġoverride Ġval Ġ_ registered Flags Ġ= Ġregistered Flags ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġdefault () Ġ= ĠAbout Command ( listOf ( Flag Data ( FLAG _ TOPIC , ĠlistOf ( DEFAULT _ TOPIC _ VALUE )))) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġregistered Flags Ġ= ĠlistOf ( FLAG _ HELP , ĠFLAG _ TOPIC , ĠFLAG _ LIMIT , ĠFLAG _ ORDER , ĠFLAG _ SHOW _ DAT ES ) ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalStateException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( params : ĠList < String >): ĠAbout Command Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAbout Command ( params . extract Flags Raw (). create Flag DataList ( registered Flags )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdistinct Key (): ĠString Ġ= Ġ"$ name Ġ${ find Flag ( FLAG _ TOPIC )?. to Readable String () }" ĊĊĠĠĠ Ġoverride Ġfun Ġhelp Render ( block : ĠHtml Block Tag , Ġconfig : ĠConfig Command ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock . div ( DIV _ CLASS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre ( classes Ġ= Ġ" scroll ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ """ usage : Ġabout Ġ< topic > Ġ[ options ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ċ Options : Ċ - h ,-- help ĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshows Ġthis Ġhelp , Ġignores Ġother Ġcommands Ġand Ġflags Ċ - t =<? >, -- type = <?> ĠĠĠĠĠĠ Ġtopic Ġto Ġshow Ġitem Ġabout , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġone Ġof : Ġproject , Ġeducation , Ġwork , Ġpersonal , Ġall Ċ - l =<? >, -- limit = <?> ĠĠĠĠĠ Ġpositive Ġinteger , Ġshow Ġnumber Ġof Ġitems Ġup Ġto Ġlimit Ċ - o =<? >, -- order = <?> ĠĠĠĠĠ Ġorder Ġto Ġshow Ġitems Ġin , Ġone Ġof : Ġnewest , Ġoldest , Ġalphabet ical Ċ - sd ,-- show - dates ĠĠĠĠĠĠĠ Ġshows Ġdates Ġin Ġitem Ġdisplay Ġ( off Ġby Ġdefault ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġrender ( block : ĠHtml Block Tag , Ġconfig : ĠConfig Command ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( check Help ( block , Ġconfig )) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġabout Records Ġ= ĠAir table Request er . getInstance (). about . fetch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Matchers Ġ= ĠlistOf NotNull ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Flag Option ( FLAG _ TOPIC )?. take If Ġ{ Ġit Ġ!= ĠTOP IC _ ALL Ġ} ?. let Ġ{ ĠField Matcher (" type ", Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġget Flag Option ( FLAG _ LIMIT )?. toInt OrNull ()?. take If Ġ{ Ġit Ġ> Ġ 0 Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġ= Ġget Flag Option ( FLAG _ ORDER )?. let Ġ{ Ġorder Key Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbout Record . ORD ERS . find Ġ{ Ġit . key Ġ== Ġorder Key Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: ĠAbout Record . Order . START _ DATE _ DESC ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġblock . div ( DIV _ CLASS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabout Records . map Ġ{ Ġit . fields Ġ}. take If Ġ{ Ġit . isNotEmpty () Ġ} ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhr Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġh 1 Ġ{ Ġ+ it . title Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( find Flag ( FLAG _ SHOW _ DAT ES ) Ġ!= Ġnull Ġ&& Ġ! it . startDate . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ it . startDate . air table Date (). readable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! it . endDate . isNull Or Blank ()) Ġ+" Ġ--> Ġ${ it . endDate . air table Date (). readable () }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġunsafe Ġ{ Ġ+ ( it . description ?. from Markdown () Ġ?: Ġ"< p > No Ġdescription </ p >") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" this Ġ${ it . type . toUpperCase ( Locale . US )} Ġis Ġ${ ( it . status Ġ?: Ġ" None "). toUpperCase ( Locale . US )}" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. run Ġ{ Ġit . url ?. take If Ġ{ Ġurl Ġ-> Ġurl . isNotBlank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġurl Ġ-> Ġp Ġ{ Ġa ( href Ġ= Ġurl , Ġtarget Ġ= Ġ"_ blank ") Ġ{ Ġ+ this @ run Ġ} Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġp Ġ{ Ġem Ġ{ Ġ+ this @ run Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . image ?. let Ġ{ Ġimage Ġ-> Ġimg ( src Ġ= Ġimage , Ġalt Ġ= Ġit . title ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġem Ġ{ Ġ+" No Ġitems Ġavailable Ġmatching Ġoptions ." Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }