package Ġdv ach movie . repository Ċ Ċ import Ġdv ach movie . AppConfig Ċ import Ġdv ach movie . api . File Item Ċ import Ġdv ach movie . api . Neo Chan Api Ċ import Ġdv ach movie . architecture . logging . Logger Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLocal Neo Chan Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi : ĠNeo Chan Api , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger ) Ġ: ĠNeo Chan Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetNum Threads From Catalog ( board : ĠString ): ĠList < Pair < Int , ĠString >> Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . getC atalog ( board ). flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . threads . map Ġ{ Ġthread Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Thread Ġ= Ġif Ġ( thread . sub Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread . com ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġthread . sub ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( thread . no , Ġname Thread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Concrete Thread By Num ( board : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum Thread : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Thread : ĠString ): ĠList < File Item > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi . get Thread ( board , Ġnum Thread ). let Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" get Concrete Thread By Num ", Ġ" parsing Ġstarted Ġfor Ġ$ num Thread ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġrequest . posts . filter Ġ{ Ġit . tim Ġ!= Ġ"" Ġ}. flatMap Ġ{ Ġpost Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost . extra Files . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Item ( path Ġ= Ġ"${ AppConfig . NE O CHAN _ URL }/ $ board / src /${ it . tim }${ it . ext }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Ġ= Ġ"${ AppConfig . NE O CHAN _ URL }/ $ board / thumb /${ it . tim }. jpg ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmd 5 Ġ= Ġit . md 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum Thread Ġ= Ġnum Thread . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnum Post Ġ= Ġpost . no . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Ġ= Ġpost . time . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthread Name Ġ= Ġname Thread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" get Concrete Thread By Num ", Ġ" parsing Ġfinished Ġfor Ġ$ num Thread ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ