package Ġcom . dob l ack . bot _ library . constructor Ċ Ċ import Ġcom . dob l ack . bot _ library . base . models . Bot Button Ċ import Ġcom . dob l ack . bot _ library . base . models . Image InputStream Ċ import Ġcom . dob l ack . bot _ library . constructor . enums . Button Type Ċ import Ġcom . dob l ack . bot _ library . constructor . enums . Script Combin ations Ċ import Ġcom . dob l ack . bot _ library . constructor . models . Bot Action Data Ċ import Ġcom . dob l ack . bot _ library . constructor . models . Bot Script Model Ċ import Ġjava . util .* Ċ Ċ class ĠScript Executor ( private Ġval Ġconstructor Module : ĠConstructor Module ) Ġ{ ĊĊĠĠĠ Ġfun Ġexecute ( script Model : ĠBot Script Model , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġscript Model . actions . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( Script Combin ations . getById ( it . combin ation Id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text Ġ-> Ġsend Text ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text _ inline Button Ġ-> Ġsend Text Inline Buttons ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text _ inline Button _ image Ġ-> Ġsend Text Inline Buttons Image ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text _ keyboard Button Ġ-> Ġsend Text Keyboard Buttons ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text _ keyboard Button _ image Ġ-> Ġsend Text Keyboard Buttons Image ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . text _ image Ġ-> Ġsend Text Image ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . image Ġ-> Ġsend Image ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . image _ inline Button Ġ-> Ġsend Image Inline Buttons ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . image _ keyboard Button Ġ-> Ġsend Image Keyboard Buttons ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . image Group Ġ-> Ġsend Image Group ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScript Combin ations . do Script Ġ-> Ġdo Script ( it . data , Ġchat Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Script ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . script Id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġscript Ġ= Ġconstructor Module . get Script ( data . script Id ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġexecute ( script , Ġchat Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Image Group ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . images . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . send Images Group InputStream ( get Images ( data . images ), Ġchat Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Image Keyboard Buttons ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . images . isNull OrEmpty () Ġ|| Ġdata . buttons . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . keyboard Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetImage ( data . images . first ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons Ġ= Ġbuttons , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Inline Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Image Inline Buttons ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . images . isNull OrEmpty () Ġ|| Ġdata . buttons . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . inline Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetImage ( data . images . first ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons Ġ= Ġbuttons , ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Image ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . images . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( getImage ( data . images . first ()), Ġchat Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text Image ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . text Ġ== Ġnull Ġ|| Ġdata . images Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġimage InputStream Ġ= ĠImage InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructor Module . get Files Provider (). getImage InputStream ( data . images . first ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . images . first () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( image InputStream , Ġchat Id , Ġdata . text ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text Keyboard Buttons Image ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . buttons Ġ== Ġnull Ġ|| Ġdata . text Ġ== Ġnull Ġ|| Ġdata . images . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . keyboard Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetImage ( data . images . first ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text Keyboard Buttons ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . buttons Ġ== Ġnull Ġ|| Ġdata . text Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . keyboard Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage ( data . text , Ġchat Id , Ġbuttons , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text Inline Buttons Image ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . buttons Ġ== Ġnull Ġ|| Ġdata . text Ġ== Ġnull Ġ|| Ġdata . images . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . inline Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage With Image InputStream ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetImage ( data . images . first ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchat Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . text , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text Inline Buttons ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . buttons Ġ== Ġnull Ġ|| Ġdata . text Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbuttons Ġ= ĠconvertTo Bot Buttons ( data . buttons , ĠButton Type . inline Button ) ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage ( data . text , Ġchat Id , Ġbuttons , Ġtrue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsend Text ( data : ĠBot Action Data , Ġchat Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data . text Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconstructor Module . chat Bot . sendMessage ( data . text , Ġchat Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠconvertTo Bot Buttons ( buttons : ĠList < List < String >>, Ġbutton Type : ĠButton Type ): ĠList < List < Bot Button >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbuttons ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbutton Ġ= Ġconstructor Module . get Button ( it , Ġbutton Type . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( button ?. text Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBot Button ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġbutton . bot Script Id . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġbutton . link ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetImage ( image Name : ĠString ): ĠImage InputStream Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠImage InputStream ( constructor Module . get Files Provider (). getImage InputStream ( image Name ), Ġimage Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Images ( images : ĠList < String >): ĠList < Image InputStream > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġimages . map Ġ{ ĠgetImage ( it ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ