package Ġcom . dk . new ss ync . data . mapper Ċ Ċ import Ġcom . dk . new ss ync . data . entity . Story Ċ import Ġcom . dk . new ss ync . data . model . Article Ċ import Ġorg . th reet en . bp . Offset DateTime Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠD imit ris ĠK onom is Ġ( k onom is . dim it ris @ gmail . com ) Ġon Ġ 1 3 / 1 1 / 2 0 1 8 . Ċ Ġ**/ Ċ Ċ private Ġconst Ġval ĠSE COND _ M ILL IS Ġ= Ġ 1 0 0 0 Ċ private Ġconst Ġval ĠMIN UTE _ M ILL IS Ġ= Ġ 6 0 Ġ* ĠSE COND _ M ILL IS Ċ private Ġconst Ġval ĠHO UR _ M ILL IS Ġ= Ġ 6 0 Ġ* ĠMIN UTE _ M ILL IS Ċ private Ġconst Ġval ĠDAY _ M ILL IS Ġ= Ġ 2 4 Ġ* ĠHO UR _ M ILL IS Ċ Ċ fun ĠList < Article >. to St ories ( q : ĠString ?, Ġentry Id : ĠLong ): ĠList < Story > Ġ= ĊĠĠĠ Ġthis . map Ġ{ ĊĠĠĠĠĠĠĠ ĠStory ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Ġ= Ġit . source ?. name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġit . author , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġit . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġit . description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġit . url , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= Ġit . url To Image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimestamp Ġ= Ġtimestamp ( it . published At ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry Id Ġ= Ġentry Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ fun ĠStory . time Ago (): ĠString Ġ{ ĊĠĠĠ Ġval Ġtime Ġ= Ġtimestamp Ġ?: Ġ 0 ĊĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtime In Millis Ġ= Ġtime ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġnow Ġ= ĠCalendar . getInstance (). time In Millis ĊĠĠĠ Ġif Ġ( time Ġ> Ġnow Ġ|| Ġtime Ġ<= Ġ 0 ) Ġreturn Ġ" Just Ġnow " ĊĊĠĠĠ Ġval Ġdiff Ġ= Ġnow Ġ- Ġtime ĊĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġdiff Ġ< ĠMIN UTE _ M ILL IS Ġ-> Ġ" Just Ġnow " ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 2 Ġ* ĠMIN UTE _ M ILL IS Ġ-> Ġ" A Ġminute Ġago " ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 5 0 Ġ* ĠMIN UTE _ M ILL IS Ġ-> Ġ"${ diff Ġ/ ĠMIN UTE _ M ILL IS } Ġminutes Ġago " ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 9 0 Ġ* ĠMIN UTE _ M ILL IS Ġ-> Ġ" An Ġhour Ġago " ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 2 4 Ġ* ĠHO UR _ M ILL IS Ġ-> Ġ"${ diff Ġ/ ĠHO UR _ M ILL IS } Ġhours Ġago " ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 4 8 Ġ* ĠHO UR _ M ILL IS Ġ-> Ġ" Y esterday Ġat Ġ" Ġ+ ĠString . format ( Locale . getDefault (), Ġ"% 0 2 d ", Ġcalendar . get ( Calendar . HOUR _ OF _ DAY )) Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ":" Ġ+ ĠString . format ( Locale . getDefault (), Ġ"% 0 2 d ", Ġcalendar . get ( Calendar . MINUTE )) ĊĠĠĠĠĠĠĠ Ġdiff Ġ< Ġ 7 Ġ* ĠDAY _ M ILL IS Ġ-> Ġ"${ diff Ġ/ ĠDAY _ M ILL IS } Ġdays Ġago " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĠString . format ( Locale . getDefault (), Ġ"% 0 2 d ", Ġcalendar . get ( Calendar . DAY _ OF _ MONTH )) Ġ+ Ġ" Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get DisplayName ( Calendar . MONTH , ĠCalendar . LONG , ĠLocale . getDefault ()) Ġ+ Ġ" Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar . get ( Calendar . YEAR ) Ġ+ Ġ" Ġ" Ġ+ Ġcalendar . get ( Calendar . HOUR _ OF _ DAY ) Ġ+ Ġ":" Ġ+ Ġcalendar . get ( Calendar . MINUTE ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ private Ġfun Ġtimestamp ( date : ĠString ?): ĠLong Ġ{ ĊĠĠĠ Ġreturn ĠOffset DateTime . parse ( date ). to Epoch Second () Ġ* Ġ 1 0 0 0 Ċ } Ċ