aboutsummaryrefslogtreecommitdiffstats
path: root/src/Lib.hs
blob: 821a49b600f3546c58f6e480ca67af54468bc58e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
{-# LANGUAGE OverloadedStrings #-}

module Lib
    ( someFunc
    ) where

import Database.SQLite.Simple

import Bot (Bot(runBot))
import CliOptions (Options(language), parseOptions)
-- import IRC (connectIRC)
import Message
-- import Plugin
import Plugin.Base (Plugin)
import PluginList as PL (plugins)
-- TODO: tmp test
import Control.Monad.Reader (runReaderT)
import CliOptions (Options(..))
import Plugin.Help as Help (help)
import I18n (Locale(EN))
import Plugin (performPlugin)
import qualified Data.Text.IO as TIO

someFunc :: IO ()
someFunc = do
    -- options <- parseOptions
    -- halp <- runReaderT (runBot Help.help) Options
    --     { slackApiToken = "booya"
    --     , language = EN
    --     }
    -- case performPlugin halp "hello" of
    --     Left s -> TIO.putStrLn s
    --     Right s -> TIO.putStrLn s

    -- halp <- performPlugin Help.help "_msg"
    hilp <- runReaderT
        (runBot
            (performPlugin Help.help Message
                { text = "_msg"
                , channel = "#?"
                , nick = "zyx"
                }))
        Options
            { slackApiToken = "booya"
            , language = EN
            }
    case hilp of
        Left x -> TIO.putStrLn x
        Right x -> TIO.putStrLn x

    -- connectIRC "irc.freenode.net" 6697 "test-bot-7890asdf"

initializePlugins :: Options -> [IO Plugin]
initializePlugins options =
    map
        (\p -> runReaderT (runBot p) options)
        plugins