package Ġpw . aru . commands . image board Ċ Ċ import Ġcom . me wn a . cat nip . entity . message . Message Ċ import Ġcom . me wn a . cat nip . rest . Response Exception Ċ import Ġnet . kode h awa . lib . image boards . Default Image Board s .* Ċ import Ġnet . kode h awa . lib . image boards . Image Board Ċ import Ġnet . kode h awa . lib . image boards . entities . Rating Ċ import Ġnet . kode h awa . lib . image boards . entities . Rating .* Ċ import Ġnet . kode h awa . lib . image boards . entities . exceptions . Query FailedException Ċ import Ġpw . aru . bot . Command Registry Ċ import Ġpw . aru . bot . categories . Category . IMAGE BOARD Ċ import Ġpw . aru . bot . commands . Command Provider Ċ import Ġpw . aru . bot . commands . IC ommand Ċ import Ġpw . aru . bot . commands . IC ommand Provider Ċ import Ġpw . aru . bot . commands . context . Command Context Ċ import Ġpw . aru . bot . commands . help .* Ċ import Ġpw . aru . bot . parser . parse And Create Ċ import Ġpw . aru . bot . parser . try Take Int Ċ import Ġpw . aru . commands . image board . Image board Command . Type . RANDOM _ IMAGE Ċ import Ġpw . aru . commands . image board . Image board Command . Type . SEARCH _ RESULT Ċ import Ġpw . aru . db . A ru DB Ċ import Ġpw . aru . db . entities . guild . Guild Settings Ċ import Ġpw . aru . db . entities . user . User Settings Ċ import Ġpw . aru . utils . extensions . lib . description Ċ import Ġpw . aru . utils . st yling Ċ import Ġpw . aru . utils . text . DIS AP POINT ED Ċ import Ġpw . aru . utils . text . ERROR Ċ import Ġpw . aru . utils . text . T AL K ING Ċ import Ġpw . aru . utils . text . WARNING Ċ import Ġjava . net . Socket TimeoutException Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ Ċ @ Command Provider Ċ class ĠImage board Commands ( private Ġval Ġdb : ĠA ru DB ) Ġ: ĠICommand Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġprovide ( r : ĠCommand Registry ) Ġ{ ĊĠĠĠĠĠĠĠ ĠImage board Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" rule 3 4 ", Ġ" r 3 4 "), Ġ" Rule 3 4 ", Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ġ= ĠRULE 3 4 , Ġn sf w Only Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ). register ( r ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġwe Ġgot Ġb anned Ġfrom Ġe 6 2 1 Ġbecause Ġwe Ġdon 't Ġhave Ġrate limit . ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠR ATE LIMIT ĠIMAGE BO AR DS ĊĠĠĠĠĠĠĠ Ġ// Image board Command ( ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ ĠlistOf (" e 6 2 1 "), Ġ" e 6 2 1 ", Ġdb , ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġboard Ġ= ĠE 6 2 1 , Ġn sf w Only Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// ). register ( r ) ĊĊĠĠĠĠĠĠĠ ĠImage board Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" y and ere "), Ġ" Y ande . re ", Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ġ= ĠY AND ERE , Ġn sf w Only Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ). register ( r ) ĊĊĠĠĠĠĠĠĠ ĠImage board Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" kon ach an "), Ġ" Kon ach an ", Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ġ= ĠK ON ACH AN ĊĠĠĠĠĠĠĠ Ġ). register ( r ) ĊĊĠĠĠĠĠĠĠ ĠImage board Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" dan bo oru "), Ġ" Dan bo oru ", Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ġ= ĠDAN BO OR U ĊĠĠĠĠĠĠĠ Ġ). register ( r ) ĊĊĠĠĠĠĠĠĠ ĠImage board Command ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" safe bo oru "), Ġ" Safe bo oru ", Ġdb , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġboard Ġ= ĠSA FE BO OR U ĊĠĠĠĠĠĠĠ Ġ). register ( r ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠImage board Command ( ĊĠĠĠ Ġprivate Ġval Ġcommand Names : ĠList < String >, ĊĠĠĠ Ġprivate Ġval Ġname : ĠString , ĊĠĠĠ Ġprivate Ġval Ġdb : ĠA ru DB , ĊĠĠĠ Ġprivate Ġval Ġboard : ĠImage Board <* >, ĊĠĠĠ Ġprivate Ġval Ġn sf w Only : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠICommand , ĠICommand . Help Dialog Provider , ĠICommand . ExceptionHandler Ġ{ ĊĠĠĠ Ġoverride Ġval Ġcategory Ġ= ĠIMAGE BOARD ĊĠĠĠ Ġoverride Ġfun Ġn sf w () Ġ= Ġn sf w Only ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠImage Board . throw Exception On EOF Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġboard Cmd s Ġ+= Ġcommand Names . first () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Image board Command [$ name ]" ĊĊĠĠĠ Ġoverride Ġfun ĠCommand Context . call () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ns fw Only Ġ&& Ġ! require NS FW ()) Ġreturn ĊĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġparse able () ĊĊĠĠĠĠĠĠĠ Ġval Ġ( r , Ġp ) Ġ= Ġargs . parse And Create < Pair < Rating ?, ĠInt >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrating Ġ= Ġoption ("-- rating ", Ġ"- r ") Ġ{ Ġratings [ take String ()] Ġ?: Ġreturn Help () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġoption ("-- page ", Ġ"- p ") Ġ{ Ġtry Take Int () Ġ?: Ġreturn Help () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreator Ġ{ Ġ( rating . or Null ) Ġto Ġ( page . or Null Ġ?: Ġ 0 ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtags Ġ= Ġargs . take All Strings () ĊĊĠĠĠĠĠĠĠ Ġval Ġf bi Detector Ġ= Ġtags . any ( fb i :: contains ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrating Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġf bi Detector Ġ-> Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ== Ġnull Ġ&& Ġ! ns fw Only Ġ-> ĠSA FE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ WARNING ĠQuestion able / Explicit ĠL ol icon / Shot acon Ġimages Ġis Ġexpress ly Ġby ĠDiscord .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ** Not ĠAllowed ĠTags **: Ġ${ tags . filter ( fb i :: contains ). join ToString (" `, Ġ` ", Ġ"` ", Ġ"` ") }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n ** Detected ĠRating **: Ġ${ ( r Ġ?: ĠEX PL IC IT ). short Name }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ( channel . ns fw ()) Ġr Ġelse ĠSA FE ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġif Ġ( tags . isNotEmpty ()) ĠSEARCH _ RESULT Ġelse ĠR AN DOM _ IMAGE ĊĊĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSEARCH _ RESULT Ġ-> Ġboard . search ( p , Ġ 5 0 , Ġtags . join ToString (" Ġ"), Ġrating ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR AN DOM _ IMAGE Ġ-> Ġboard [ p , Ġ 5 0 , Ġrating ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. blocking () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( rating ?. equals ( it . rating ) Ġ?: Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġit . url Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ( it . tags . none ( fb i :: contains ) Ġ|| Ġit . rating Ġ== ĠSA FE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġvalid Extensions . any Ġ{ Ġext Ġ-> Ġit . url . endsWith ( ext ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sh uffled () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĠĠĠĠĠĠĠ Ġ}. get OrNull () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( image Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith M DC (" image " Ġto Ġimage . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Embed Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstyling ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. author ("$ name Ġ| Ġ${ type . title }", Ġimage . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply All () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshow Info Ġ= ĠUser Settings ( db , Ġauthor . id As Long ()). show Image board Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠGuild Settings ( db , Ġguild . id As Long ()). show Image board Info ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( show Info ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Tags Ġ= Ġimage . tags . sorted (). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" None ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= ĠAtomicInteger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// initial Ġsize Ġto Ġaccount Ġfor Ġthe Ġdescription ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 4 0 Ġ+ Ġimage . width . toString (). length Ġ+ Ġimage . height . toString (). length Ġ+ Ġimage . rating . long Name . capitalize (). length Ġ+ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtags Taken Ġ= Ġit . take While Ġ{ Ġtag Ġ-> Ġcount . add AndGet ( tag . length Ġ+ Ġ 3 ) Ġ< Ġ 1 8 0 0 Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tags Taken . size Ġ!= Ġit . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtags Taken . join ToString (" `, Ġ` ", Ġ"` ", Ġ" `, Ġ${ it . size Ġ- Ġtags Taken . size } Ġmore Ġ... ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . join ToString (" `, Ġ` ", Ġ"` ", Ġ"` ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** ${ image . width }** x ** ${ image . height }** Ġ| Ġ** ${ image . rating . long Name . capitalize ()} ** ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** Tags **: Ġ$ img Tags ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** Image ** :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage ( image . url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. when Complete ( handling Exceptions ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ ERROR ĠNo Ġimages Ġfound .\ n \ n $ T AL K ING ĠDid Ġyou Ġuse Ġthe Ġright Ġtag ? ĠTags Ġare Ġimage board - depend ant Ġand Ġmight Ġbe Ġdifferent ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( message : ĠMessage , Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġis ĠRuntimeException Ġ&& Ġt . cause Ġis ĠSocket TimeoutException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReport ed ĠError ID : ĠRE # Br 4 F AL 3 E AA I ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠImage board Ġrequest Ġtimes Ġout ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sendMessage ("$ DIS AP POINT ED ĠWe 're Ġhaving Ġissues Ġwith Ġ$ name . ĠSeems Ġthat Ġwe Ġcan 't Ġconnect Ġto Ġit . ĠPlease , Ġtry Ġagain Ġlater .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġis ĠResponse Exception Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠError ĠMessage : Ġ 4 8 5 5 9 3 4 2 5 6 0 5 9 5 1 5 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBad Ġimage Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sendMessage ("$ DIS AP POINT ED ĠWe 're Ġhaving Ġissues Ġwith Ġ$ name . ĠThe Ġimage Ġthat ĠI Ġgot Ġwas Ġinvalid . ĠPlease , Ġtry Ġagain Ġlater .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġis ĠQuery FailedException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReport ed ĠError ID : ĠQ FE # Br 4 Ek Zs AAAA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠQuery Ġfails ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . channel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sendMessage ("$ DIS AP POINT ED ĠWe 're Ġhaving Ġissues Ġwith Ġ$ name . ĠDid Ġyou Ġput Ġmore Ġtags Ġon Ġit Ġthan Ġthe Ġallowed Ġby Ġthe Ġimage board ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow Ġt ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġcmd Ġ= Ġcommand Names . first () ĊĊĠĠĠ Ġoverride Ġval Ġhelp Handler Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHelp ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Description ( command Names , Ġ"$ name ĠImage board "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDescription ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Search Ġand Ġget Ġrandom Ġimages Ġfrom Ġthe Ġ$ name Ġimage board .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ns fw Only ) Ġ" This Ġcommand Ġcan Ġ** only ** Ġbe Ġused Ġon Ġ** NS FW ** Ġchannels !" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ"** Question able / Explicit ** Ġimages Ġcan Ġ** only ** Ġbe Ġviewed Ġon Ġ** NS FW ** Ġchannels !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Usage ( cmd , Ġ" Gets Ġa Ġrandom Ġimage Ġfrom Ġ$ name ."), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Usage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ cmd Ġ< tags ... >", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Se ar ches Ġ$ name Ġfor Ġa Ġimage Ġwith Ġthe Ġspecified Ġtags . ĠThe Ġtags Ġ** must ** Ġbe Ġseparated Ġby Ġ** spaces ** ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNote ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** Magic ĠPrefix es **: ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Usage ("$ cmd Ġ-- page Ġ< number > Ġ< ... >", Ġ" Gets Ġa Ġrandom Ġimage Ġfrom Ġ$ name Ġon Ġthe Ġspecified Ġpage ."), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Usage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ cmd Ġ-- rating Ġ< safe / question able / explicit > Ġ< ... >", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Gets Ġa Ġrandom Ġimage Ġfrom Ġ$ name Ġon Ġthe Ġspecified Ġpage ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSee Also . of List ( board Cmd s . filter Not ( cmd :: equals ). sorted ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġregister ( registry : ĠCommand Registry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġregistry . register ( command Names , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġboard Cmd s Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġval Ġvalid Extensions Ġ= ĠlistOf (". jpg ", Ġ". jpeg ", Ġ". png ", Ġ". gif ", Ġ". webp ") ĊĊĠĠĠĠĠĠĠ Ġval Ġratings Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" safe ", Ġ" s ") Ġto ĠSA FE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" question able ", Ġ" q ") Ġto ĠQ UEST ION ABLE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" explicit ", Ġ" e ") Ġto ĠEX PL IC IT ĊĠĠĠĠĠĠĠ Ġ). flatMap Ġ{ Ġ( k , Ġv ) Ġ-> Ġk . map Ġ{ Ġit Ġto Ġv Ġ} Ġ}. toMap () ĊĊĠĠĠĠĠĠĠ Ġval Ġf bi Ġ= ĠlistOf (" lo li ", Ġ" shot a ", Ġ" lo lic on ", Ġ" shot acon ", Ġ" child ", Ġ" young ", Ġ" yo un ger ", Ġ" under age ", Ġ" under _ age ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠType ( val Ġtitle : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSEARCH _ RESULT (" Search ĠResult "), ĊĠĠĠĠĠĠĠ ĠR AN DOM _ IMAGE (" Random ĠImage ") ĊĠĠĠ Ġ} Ċ }