package Ġcom . cu up a . mail processor . services . extract ors Ċ Ċ import Ġorg . apache . t ika . T ika Ċ import Ġjava . io . ByteArray InputStream Ċ Ċ object ĠExtract ors Ġ{ ĊĊĠĠĠ Ġfun Ġget ( content : ĠByteArray ): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Pdf ( content ) Ġ-> ĠPdf Extractor (). extract ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Email ( content ) Ġ-> ĠEmail Extractor ( t ika ). extract ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠlistOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Email ( contentType : ĠString ) Ġ= ĠcontentType Ġ== Ġr fc 8 2 2 ĊĊĠĠĠ Ġfun Ġis Zip ( contentType : ĠString ) Ġ= ĠcontentType Ġ== Ġapplication _ zip ĊĊĠĠĠ Ġfun Ġis Pdf ( file Content : ĠByteArray ) Ġ= Ġfile Content . size Ġ> Ġ 4 Ġ&& Ġis Pdf Header Valid ( file Content ) ĊĊĠĠĠ Ġ// Ġheader Ġ% PDF - ĊĠĠĠ Ġprivate Ġfun Ġis Pdf Header Valid ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Content : ĠByteArray ): ĠBoolean Ġ= Ġfile Content [ 0 ]. toInt () Ġ== Ġ 0 x 2 5 Ġ&& Ġfile Content [ 1 ]. toInt () Ġ== Ġ 0 x 5 0 Ġ&& Ġfile Content [ 2 ]. toInt () Ġ== Ġ 0 x 4 4 Ġ&& Ġfile Content [ 3 ]. toInt () Ġ== Ġ 0 x 4 6 Ġ&& Ġfile Content [ 4 ]. toInt () Ġ== Ġ 0 x 2 D ĊĊĠĠĠ Ġfun Ġis Email ( content : ĠByteArray ): ĠBoolean Ġ= Ġis Email ( t ika . detect ( ByteArray InputStream ( content ))) ĊĊĠĠĠ Ġfun Ġis Zip ( content : ĠByteArray ) Ġ= Ġis Zip ( t ika . detect ( ByteArray InputStream ( content ))) ĊĊĠĠĠ Ġprivate Ġval Ġt ika Ġ= ĠT ika () ĊĊĠĠĠ Ġprivate Ġconst Ġval Ġr fc 8 2 2 Ġ= Ġ" message / rfc 8 2 2 " ĊĊĠĠĠ Ġprivate Ġconst Ġval Ġapplication _ zip Ġ= Ġ" application / zip " Ċ }