package Ġgenerator Ċ Ċ import Ġcom . github . aj alt . cli kt . core . Cli kt Command Ċ import Ġcom . github . aj alt . cli kt . parameters . options . flag Ċ import Ġcom . github . aj alt . cli kt . parameters . options . option Ċ import Ġcom . github . aj alt . cli kt . parameters . options . required Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files ĊĊ Ċ class ĠMain Ġ: ĠCli kt Command () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġaliases () Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" a " Ġto ĠlistOf (" add "), ĊĠĠĠĠĠĠĠ Ġ" l " Ġto ĠlistOf (" list "), ĊĠĠĠĠĠĠĠ Ġ" s " Ġto ĠlistOf (" scan "), ĊĠĠĠĠĠĠĠ Ġ" r " Ġto ĠlistOf (" remove ") ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ= ĠUnit Ċ } Ċ Ċ class ĠAdd Ġ: ĠCli kt Command ( help Ġ= Ġ" Adds Ġentry Ġto Ġw atched ") Ġ{ ĊĠĠĠ Ġval Ġname Ġby Ġoption ("- n ", Ġ"-- name ", Ġhelp Ġ= Ġ" Name Ġof Ġthe Ġshow ") ĊĠĠĠ Ġval Ġurl Ġby Ġoption ("- u ", Ġ"-- url ", Ġhelp Ġ= Ġ" Url Ġof Ġshow Ġto Ġbe Ġadded "). required () ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠRepository . add Show ( url , Ġname ) ĊĠĠĠĠĠĠĠ Ġprintln (" Now Ġwatching Ġfollowing :") ĊĠĠĠĠĠĠĠ Ġrender List () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠList C Ġ: ĠCli kt Command (" List Ġadded Ġshows ", Ġname Ġ= Ġ" list ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ= Ġrender List () Ċ } Ċ Ċ class ĠScan Ġ: ĠCli kt Command (" Res can Ġfor Ġnew Ġentries ") Ġ{ ĊĠĠĠ Ġval Ġfile Ġby Ġoption ("-- file ", Ġ"- f ", Ġ"-- output ", Ġ"- o ", Ġhelp Ġ= Ġ" File Ġwhere Ġoutput ĠRSS Ġto . ĠIf Ġ'-' Ġis Ġdefined Ġwill Ġbe Ġprinted Ġto Ġstdout Ġinte ad Ġof Ġwriting Ġto Ġfile . "). required () ĊĠĠĠ Ġval Ġpretty Print Ġby Ġoption ("-- pretty - print ", Ġ"- p ", Ġhelp Ġ= Ġ" Pretty Ġprint Ġcode "). flag ("-- np ", Ġ"-- no - pretty - print ") ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠScanner . scan () ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠGenerator . generate RSS ( pretty Print ) ĊĠĠĠĠĠĠĠ Ġif Ġ( file Ġ== Ġ"- ") Ġprintln ( message ) ĊĠĠĠĠĠĠĠ Ġelse ĠFiles . write ( File ( file ). to Path (), Ġmessage . lines ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRemove Ġ: ĠCli kt Command (" Remove Ġsubscription ") Ġ{ ĊĠĠĠ Ġval Ġname Ġby Ġoption ("- n ", Ġ"-- name ", Ġhelp Ġ= Ġ" Name Ġof Ġthe Ġshow ") ĊĠĠĠ Ġval Ġurl Ġby Ġoption ("- u ", Ġ"-- url ", Ġhelp Ġ= Ġ" Url Ġof Ġshow Ġto Ġbe Ġremoved "). required () ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠRepository . remove Show ( url , Ġname ) ĊĠĠĠĠĠĠĠ Ġprintln (" Now Ġwatching Ġfollowing :") ĊĠĠĠĠĠĠĠ Ġrender List () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġrender List () Ġ{ ĊĠĠĠ Ġval Ġlist Shows Ġ= ĠRepository . list Shows () ĊĠĠĠ Ġval Ġascii Table Ġ= ĠAsc ii Table () ĊĠĠĠ Ġascii Table . addColumn (" name ") ĊĠĠĠ Ġascii Table . addColumn (" url ") ĊĠĠĠ Ġfor Ġ(( url , Ġname ) Ġin Ġlist Shows ) Ġ{ ĊĠĠĠĠĠĠĠ Ġascii Table . add Row ( name Ġ?: Ġ"", Ġurl ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġascii Table . render () Ċ } Ċ