package Ġdev . n athan pb . dog o . utils ._ static Ċ Ċ import Ġnet . dv 8 tion . j da . core . Embed Builder Ċ import Ġorg . json . JSONObject Ċ import Ġorg . js oup . J soup Ċ import Ġjava . net . URL Ċ Ċ /* Ċ Copyright Ġ 2 0 1 9 ĠN athan ĠB omb ana Ċ Ċ Licensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ you Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ You Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat ĊĊĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ċ Unless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ distributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ WITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ See Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ limitations Ġunder Ġthe ĠLicense . Ċ */ Ċ Ċ // todo ĠIMPORT ANT Ġredo Ġthat Ġf uck ing Ġclass Ġbecause Ġits Ġbad - done Ġas Ġf uck Ġand ĠI 'm Ġnot Ġplanning Ġto Ġmaintain Ġthis Ġsh it Ġon ĠD ogo Ġ=) Ċ Ċ /** Ċ Ġ* ĠUtility Ġmethods Ġabout ĠFacebook Ċ Ġ* Ċ Ġ* Ġ@ author ĠN athan PB Ċ Ġ* Ġ@ since Ġ 3 . 1 . 0 Ċ Ġ*/ Ċ class ĠFacebook Utils Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠFetch Ġthe Ġlatest Ġpost Ġfrom Ġa Ġpage . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ pag ename ] Ġthe Ġpage Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa Ġ[ JSONObject ] Ġwith Ġdata Ġabout Ġthe Ġlatest Ġpost . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetLast Post ( pag ename : ĠString ) Ġ: ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠJSONObject (). also Ġ{ Ġjson Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Ġ= ĠJ soup . parse ( URL (" https :// facebook . com /$ pag ename "), Ġ 1 2 0 0 0 ). getElementsBy Class ("_ 1 dw g "). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put (" text ", Ġpost . getElementsBy AttributeValue (" data - ad - preview ", Ġ" message "). text ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ){} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelements Ġ= Ġpost . getElementsBy Tag (" img ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( elements . size Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put (" preview ", Ġelements [ 1 ]. attr (" src ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ){} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put (" permalink ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// facebook . com /"+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup . parse ( URL (" https :// facebook . com /$ pag ename "), Ġ 1 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getElementsBy Class ("_ 1 dw g "). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getElementsBy Class (" fsm "). first (). children ()[ 0 ]. attr (" href ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ){} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Profile Ġhttps :// facebook . com /$ pag ename Ġcould Ġnot Ġbe Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġprofile Ġpicture Ġfrom Ġa Ġpage . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġmethod Ġto Ġobtain Ġthe Ġpicture Ġis Ġfetching Ġit Ġfrom Ġthe Ġlatest Ġpost . ĠSo Ġthe Ġpage Ġmust Ġhave Ġat Ġleast Ġone Ġpost . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ pag ename ] Ġthe Ġpage Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġprofile Ġpicture . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġget Profile Pic ( pag ename : ĠString ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup . parse ( URL (" https :// facebook . com /$ pag ename "), Ġ 1 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getElementsBy Class ("_ 5 x ib ")[ 0 ]. attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Profile Ġhttps :// facebook . com /$ pag ename Ġcould Ġnot Ġbe Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġpage Ġname Ġpage . ĊĠĠĠĠĠĠĠĠ Ġ* ĠThe Ġmethod Ġto Ġobtain Ġthe Ġname Ġis Ġfetching Ġit Ġfrom Ġthe Ġlatest Ġpost . ĠSo Ġthe Ġpage Ġmust Ġhave Ġat Ġleast Ġone Ġpost . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ pag ename ] Ġthe Ġpage Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġpage Ġname . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetName ( pag ename : ĠString ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJ soup . parse ( URL (" https :// facebook . com /$ pag ename "), Ġ 1 2 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getElementsBy Class (" fw b ")[ 0 ]. text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Profile Ġhttps :// facebook . com /$ pag ename Ġcould Ġnot Ġbe Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBuilds Ġa Ġembed Ġrepresentation Ġof Ġthe Ġlatest Ġpost Ġfrom Ġa Ġpage . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param [ pag ename ] Ġthe Ġpage Ġid . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġembed Ġrepresentation . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠgetLast Post Embed ( pag ename : ĠString ) Ġ: ĠEmbed Builder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpost Ġ= ĠgetLast Post ( pag ename ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEmbed Builder (). setColor ( Theme Color . PRIMARY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Author ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetName ( pag ename ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost . getString (" permalink "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Profile Pic ( pag ename ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġembed Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( post . keySet (). contains (" text ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed . setDescription ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpost . getString (" text ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . length Ġ> Ġ 1 0 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . substring ( 0 , Ġ 1 0 2 1 )+" ..." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( post . keySet (). contains (" preview ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed . setImage ( post . getString (" preview ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }