Skip to content

Commit 414de95

Browse files
committed
(#598) Implement %or command
1 parent 047ee9f commit 414de95

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/Bot/CustomCommand.hs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,11 +171,14 @@ updateCustomCommand builtinCommands =
171171
(Nothing, Nothing) ->
172172
replyToSender sender [qms|Command '{name}' does not exist|]
173173

174+
evalExpr :: M.Map T.Text T.Text -> Expr -> T.Text
175+
evalExpr _ (TextExpr t) = t
176+
evalExpr vars (FunCallExpr "or" args) =
177+
fromMaybe "" $ listToMaybe $ dropWhile T.null $ map (evalExpr vars) args
178+
evalExpr vars (FunCallExpr funame _) = fromMaybe "" $ M.lookup funame vars
179+
174180
expandVars :: M.Map T.Text T.Text -> [Expr] -> T.Text
175-
expandVars _ [] = ""
176-
expandVars vars (TextExpr t:rest) = t <> expandVars vars rest
177-
expandVars vars (FunCallExpr funame _:rest) =
178-
(fromMaybe "" $ M.lookup funame vars) <> expandVars vars rest
181+
expandVars vars = T.concat . map (evalExpr vars)
179182

180183
-- TODO(#598): reimplement expandCustomCommandVars with Bot.Expr when it's ready
181184
expandCustomCommandVars ::

0 commit comments

Comments
 (0)