Vous ne pouvez pas sélectionner plus de 25 sujets
Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
|
- {-# LANGUAGE OverloadedStrings #-}
- module IrcBot.MessageParser where
-
- import Data.List
- import Data.Maybe
- import IrcBot.RandomFileFinder
- import IrcBot.RemoteUploader
-
- getNthElementFromString :: String -> Int -> Char
- getNthElementFromString stringData step = stringData !! step
-
-
-
-
- slice :: Int -> Int -> String -> String
- slice start end = take (end-start-1) . drop (start+1)
-
-
- parseMessageMeta :: String -> String
- parseMessageMeta messageMeta = do
- let startEndIndexes = elemIndices ':' messageMeta
- if length startEndIndexes >= 2 then do
- let startIndex = startEndIndexes !! 0
- let endIndex = startEndIndexes !! 1
- slice (startIndex) (endIndex) messageMeta
- else ""
-
-
- parseMessageTargetFromMeta :: [String] -> String
- parseMessageTargetFromMeta messageMetaArray = do
-
- if (length messageMetaArray) >= 3
- then
- messageMetaArray !! 2
- else
- ""
-
- -- :YOUR_NICK!~YOUR_NICK@YOUR_IP PRIVMSG #91623_my_test_channel :TEXT MESSAGE
-
-
- parseMessageType :: [String] -> String
- parseMessageType messageMetaArray = do
- if(length messageMetaArray) >= 3
- then
- messageMetaArray !! 1
- else
- ""
-
-
- targetDeterminer :: String -> String -> String
- targetDeterminer nickName channelName = do
- if (length channelName) > 1 then channelName else nickName
-
- parseNick :: String -> String
-
- parseNick dataString =
- do
- let startIndex = elemIndex ':' dataString
- let endIndex = elemIndex '!' dataString
- if startIndex /= Nothing && endIndex /= Nothing
- then
- slice (fromJust startIndex) (fromJust endIndex) dataString
- else ""
-
-
- parseChannelName :: String -> String
-
- parseChannelName dataString =
- do
- let startIndex = elemIndex '#' dataString
- let dropppedString = drop (fromJust startIndex) dataString
- let endIndex = elemIndex ' ' dropppedString
- if startIndex /= Nothing && endIndex /= Nothing
- then
- take (fromJust endIndex) dropppedString
- else ""
-
-
- parseMessageText :: String -> String
- parseMessageText dataString =
- do
- (drop 1 (unwords (drop 3 (words dataString))))
-
-
-
-
- basicRandomImplementation :: String -> IO String
-
- basicRandomImplementation basicInput = do
-
- let parameters = (words basicInput)
- print ".random parameters: "
- print parameters
- if length parameters > 1 then
- do
- let directoryName = parameters !! 1
- getRandomFile directoryName >>= \randomFileName -> uploadLocalFile randomFileName
- else
- getRandomFile "maidos" >>= \randomFileName -> uploadLocalFile randomFileName
|