package Ġa ik is ib . mirror Ċ Ċ import Ġa ik is ib . model . Original Description Ċ import Ġa ik is ib . url . Url Can onic ol izer Ċ import Ġio . ktor . http . ContentType Ċ import Ġmu . K Logging Ċ import Ġorg . js oup . J soup Ċ import Ġorg . js oup . nodes . Document Ċ import Ġjava . net . URI Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . io . path . read Text Ċ Ċ interface ĠLink Extractor Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐĺ Ð· Ð² Ð» ÐµÐº Ð°ÐµÑĤ ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ ĠÐ¸Ð· ĠÐ¾ ÑĢÐ¸ Ð³ Ð¸Ð½ Ð°Ð»ÑĮ Ð½Ð¾Ð³Ð¾ ĠÐ´ Ð¾Ðº ÑĥÐ¼ÐµÐ½ÑĤ Ð° . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġoriginal Description ĊĠĠĠĠ Ġ* Ġ@ return ĠÐ¾ÑĤ Ð¾Ð±ÑĢÐ°Ð¶ ÐµÐ½Ð¸Ðµ ĠÑĤÐµÐº ÑģÑĤ Ð¾Ð² ÑĭÑħ ĠÑģ ÑģÑĭ Ð» Ð¾Ðº ĠÐ½Ð° ĠÑĢÐ°Ð· ÑĢ ÐµÑĪ Ñĳ Ð½ Ð½ÑĭÐµ ĠÐ² ĠÐº Ð°Ð½ Ð¾Ð½ Ð¸ÑĩÐµÑģ ÐºÐ¸ Ðµ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġextract Links ( original Description : ĠOriginal Description ): ĠMap < String , ĠURI > Ċ } Ċ Ċ internal Ġclass ĠLink Extractor Impl ( ĊĠĠĠ Ġuri Can onic ol izer : ĠUrl Can onic ol izer , ĊĠĠĠ Ġignored Prefixes : ĠSet < String >, ĊĠĠĠ Ġignored Suffix es : ĠSet < String >, Ċ ) Ġ: ĠLink Extractor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdeleg ates : ĠMap < ContentType , ĠLink Extractor > Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠ ĠContentType . Text . Html Ġto ĠHtml Link Extractor ( uri Can onic ol izer , Ġignored Prefixes , Ġignored Suffix es ), ĊĠĠĠĠĠĠĠ ĠContentType . Text . CSS Ġto ĠCss Link Extractor ( uri Can onic ol izer , Ġignored Prefixes , Ġignored Suffix es ), ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Suppress (" Too Generic Exception Ca ught ", Ġ" Sw allowed Exception ") Ġ// ĠÐ¸ Ñģ ÐºÐ»ÑİÑĩ ÐµÐ½Ð¸Ñı ĠÐ· Ð´ ÐµÑģ ÑĮ ĠÐ¾Ð± ÑĢÐ°Ð ± Ð°ÑĤ ÑĭÐ² Ð° ÑİÑĤÑģÑı ĠÐ° Ð´ ÐµÐº Ð² Ð°ÑĤ Ð½Ð¾ ĊĠĠĠ Ġoverride Ġfun Ġextract Links ( original Description : ĠOriginal Description ): ĠMap < String , ĠURI > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdelegate Ġ= Ġdeleg ates [ original Description . type ] Ġ?: Ġreturn Ġempty Map () ĊĠĠĠĠĠĠĠ Ġreturn Ġdelegate . extract Links ( original Description ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ċ } Ċ Ċ @ Suppress (" Un necessary Abstract Class ") Ċ private Ġabstract Ġclass ĠLink Extractor Base ( ĊĠĠĠ Ġprivate Ġval Ġuri Can onic ol izer : ĠUrl Can onic ol izer , ĊĠĠĠ Ġignored Prefixes : ĠSet < String >, ĊĠĠĠ Ġignored Suffix es : ĠSet < String >, Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġignored Prefixes Ġ= Ġignored Prefixes Ġ+ ĠIG NO RED _ PROTOCOL _ PREFIX ES ĊĠĠĠ Ġprivate Ġval Ġignored Suffix es Ġ= Ġignored Suffix es . map Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠÐ³ Ð°ÑĢ Ð°Ð½ ÑĤÐ¸ ÑĢÑĥ ÐµÐ¼ , ĠÑĩÑĤÐ¾ ĠÑĢÐ°Ñģ ÑĪÐ¸ ÑĢ ÐµÐ½Ð¸Ðµ ĠÐ½Ð° Ñĩ Ð¸ Ð½Ð° ÐµÑĤÑģÑı ĠÑģ ĠÑĤ Ð¾Ñĩ ÐºÐ¸ ĊĠĠĠĠĠĠĠ Ġ"." Ġ+ Ġit . remove Prefix (".") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠÐ¸ Ñģ ÐºÐ»ÑİÑĩ ÐµÐ½Ð¸Ñı ĠÐ· Ð´ ÐµÑģ ÑĮ ĠÐ¾Ð± ÑĢÐ°Ð ± Ð°ÑĤ ÑĭÐ² Ð° ÑİÑĤÑģÑı ĠÐ° Ð´ ÐµÐº Ð² Ð°ÑĤ Ð½Ð¾ ĊĠĠĠ Ġ@ Suppress (" Too Generic Exception Ca ught ", Ġ" Sw allowed Exception ", Ġ" Return Count ") ĊĠĠĠ Ġfun ĠMutable Map < String , ĠURI >. maybe Add ( page Uri : ĠURI , Ġhref : ĠString , Ġfrom : ĠPath ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( href . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( ignored Prefixes . any Ġ{ Ġprefix Ġ-> Ġhref . startsWith ( prefix ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( ignored Suffix es . any Ġ{ Ġsuffix Ġ-> Ġhref . endsWith ( suffix ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġcanonical Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri Can onic ol izer . canonical ize ( page Uri , Ġhref ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" I AE ĠÐ´Ð»Ñı ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ Ġ'$ href ' ĠÐ½Ð° ĠÑģÑĤÑĢ Ð°Ð½Ð¸ Ñĩ ÐºÐµ Ġ$ from " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn Ġ{ Ġ" N PE ĠÐ´Ð»Ñı ĠÑģ ÑģÑĭ Ð» ÐºÐ¸ Ġ'$ href ' ĠÐ½Ð° ĠÑģÑĤÑĢ Ð°Ð½Ð¸ Ñĩ ÐºÐµ Ġ$ from " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġthis [ href ] Ġ= Ġcanonical ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Logging () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠIG NO RED _ PROTOCOL _ PREFIX ES Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" data :", Ġ// ĠÐ² ÑģÑĤ ÑĢÐ¾ ÐµÐ½ Ð½ÑĭÐµ ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" tel :", Ġ// ĠÐ½ Ð¾Ð¼ ÐµÑĢ ĠÑĤ ÐµÐ» Ðµ ÑĦ Ð¾Ð½ Ð° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" javascript :", Ġ// ĠÐ² ÑģÑĤ ÑĢÐ¾ ÐµÐ½ Ð½ÑĭÐ¹ Ġjavascript ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠHtml Link Extractor ( ĊĠĠĠ Ġuri Can onic ol izer : ĠUrl Can onic ol izer , ĊĠĠĠ Ġignored Prefixes : ĠSet < String >, ĊĠĠĠ Ġignored Suffix es : ĠSet < String >, Ċ ) Ġ: ĠLink Extractor Base ( uri Can onic ol izer , Ġignored Prefixes , Ġignored Suffix es ), ĠLink Extractor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġextract Links ( original Description : ĠOriginal Description ): ĠMap < String , ĠURI > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable Map Of < String , ĠURI >() ĊĠĠĠĠĠĠĠ Ġval Ġremote Uri Ġ= Ġoriginal Description . remote Uri ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġoriginal Description . local Path ĊĠĠĠĠĠĠĠ Ġval Ġdoc : ĠDocument Ġ= ĠJ soup . parse ( from . read Text ()) ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" a "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhref Ġ= Ġit . attr (" href ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġhref , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Thumb Ġ= Ġit . attr (" data - thumb ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġdata Thumb , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" link "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhref Ġ= Ġit . attr (" href ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġhref , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" script "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= Ġit . attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġsrc , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠÐ²Ñĭ ÑĤ Ð°Ñģ ÐºÐ¸ Ð² Ð°ÐµÐ¼ ĠÐºÐ¾Ð½ ÑĤ ÐµÐ½ÑĤ ĠSlider Ġre volution : ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" rs - slide "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Thumb Ġ= Ġit . attr (" data - thumb ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġdata Thumb , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" img "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= Ġit . attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġsrc , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ²Ñĭ ÑĤ Ð°Ñģ ÐºÐ¸ Ð² Ð°ÐµÐ¼ ĠÐºÐ¾Ð½ ÑĤ ÐµÐ½ÑĤ ĠSlider Ġre volution : ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Lazy load Ġ= Ġit . attr (" data - lazy load ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġdata Lazy load , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠÐ²Ñĭ ÑĤ Ð°Ñģ ÐºÐ¸ Ð² Ð°ÐµÐ¼ ĠÐºÐ¾Ð½ ÑĤ ÐµÐ½ÑĤ ĠÑģÑĤÑĢ Ð°Ð½Ð¸ Ñĩ ÐºÐ¸ Ġ" Ð¾ ĠÐ½Ð° Ñģ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc set Ġ= Ġit . attr (" src set ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! src set . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc set . split To Sequence (',') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput . trim (). split (' Ġ' )[ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġinput , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" video "). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= Ġit . attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġsrc , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ< meta Ġname =" ms application - Tile Image " Ġcontent ĊĠĠĠĠĠĠĠ Ġdoc . getElementsBy Tag (" meta ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . attr (" name ") Ġ== Ġ" ms application - Tile Image " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġit . attr (" content ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġcontent , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġ< div Ġclass =" sc _ parallax _ content " Ġstyle =" background - image : url ( https :// a ik is ib . ru / w ĊĠĠĠĠĠĠĠ Ġdoc . all Elements ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss Style Ġ= Ġit . attr (" style ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss Style . extract Links (). forEach Ġ{ Ġlink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġlink , Ġfrom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠCss Link Extractor ( ĊĠĠĠ Ġuri Can onic ol izer : ĠUrl Can onic ol izer , ĊĠĠĠ Ġignored Prefixes : ĠSet < String >, ĊĠĠĠ Ġignored Suffix es : ĠSet < String >, Ċ ) Ġ: ĠLink Extractor Base ( uri Can onic ol izer , Ġignored Prefixes , Ġignored Suffix es ), ĠLink Extractor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġextract Links ( original Description : ĠOriginal Description ): ĠMap < String , ĠURI > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable Map Of < String , ĠURI >() ĊĠĠĠĠĠĠĠ Ġval Ġremote Uri Ġ= Ġoriginal Description . remote Uri ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġoriginal Description . local Path ĊĠĠĠĠĠĠĠ Ġval Ġcss Style Ġ= Ġfrom . read Text () ĊĠĠĠĠĠĠĠ Ġcss Style . extract Links (). forEach Ġ{ Ġlink Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( remote Uri , Ġlink , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġfun ĠString ?. extract Links () Ġ= ĊĠĠĠ Ġif Ġ( isNull Or Blank ()) ĊĠĠĠĠĠĠĠ Ġsequence Of () ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġurl Regex . findAll ( this ). as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . group Values . as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. drop ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . isNotBlank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter NotNull () Ċ Ċ private Ġval Ġurl Regex Ġ= ĠRegex (""" url \ (( ?: ' ([^ '] ++) ' |" ([^ "] ++) " | ([^ )] ++ )) \) """) Ċ Ċ /** Ċ Ġ* ĠÐĺ Ð· ĠJson ĠÐ¼Ð¾Ð¶Ð½Ð¾ Ġ( Ð¿ ÑĢÐ¸ ĠÐ¶ ÐµÐ» Ð°Ð½Ð¸ Ð¸ ) ĠÐº ÑĥÑĩ Ñĥ ĠÐ¼ ÑĥÑģ Ð¾ÑĢ Ð° ĠÐ²Ñĭ ÑĤÐ° Ñī Ð¸ÑĤÑĮ ĠÐ½Ð° ÑĢÑĥ Ð¶ Ñĥ . Ċ Ġ* ĠÐĴ Ñģ Ñĳ ĠÑĢÐ°Ð±Ð¾ÑĤ Ð°ÐµÑĤ ĠÐ±ÐµÐ· ĠÐ½ ÐµÐ³Ð¾ . ĠÐļ Ð¾Ð¼ Ð¼ ÐµÐ½ÑĤ Ð¸ ÑĢÑĥ Ñİ ĠÑįÑĤ Ð¾ÑĤ ĠÐºÐ»Ð°ÑģÑģ . Ċ Ġ*/ Ċ @ Suppress (" unused ") Ċ private Ġclass ĠJson Link Extractor ( ĊĠĠĠ Ġuri Can onic ol izer : ĠUrl Can onic ol izer , ĊĠĠĠ Ġignored Prefixes : ĠSet < String >, ĊĠĠĠ Ġignored Suffix es : ĠSet < String >, ĊĠĠĠ Ġroot Main : ĠURI , Ċ ) Ġ: ĠLink Extractor Base ( uri Can onic ol izer , Ġignored Prefixes , Ġignored Suffix es ), ĠLink Extractor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġroot Main Prefix Regex : ĠRegex ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Main Prefix Ġ= Ġroot Main . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove Suffix ("/") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("/", Ġ"\\ /") ĊĠĠĠĠĠĠĠ Ġroot Main Prefix Regex Ġ= ĠRegex (""" (\ Q $ root Main Prefix \ E [^ ") <' Ġ] ++) """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġextract Links ( original Description : ĠOriginal Description ): ĠMap < String , ĠURI > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable Map Of < String , ĠURI >() ĊĠĠĠĠĠĠĠ Ġval Ġfrom Ġ= Ġoriginal Description . local Path ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġfrom . read Text () ĊĠĠĠĠĠĠĠ Ġfor Ġ( m Ġin Ġroot Main Prefix Regex . findAll ( text )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġm . group Values [ 1 ]. replace ("\\ /", Ġ"/") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. remove Suffix ("\\ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . maybe Add ( original Description . remote Uri , Ġlink , Ġfrom ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ