기본적으로 Google 캘린더 및 거의 모든 캘린더 응용 프로그램에서 사용되는 iCalendar 형식을 구문 분석해야합니다.iCalendar 형식 구문 분석
나는이 패키지 iCalendar Hackage
을 발견하지만 누군가가 내가 뭘 잘못 말해 줄 수 있다면, 그것은 좋은 것입니다,이 패키지에있는 parseICalendar
함수를 사용하는 방법을 알아낼 수 없습니다.
주로 나는 유형에 대한 인수를 구성하는 방법을 알아낼 수 없습니다 내 노력
parseICalendar :: DecodingFunctions
-> FilePath --^Used in error messages.
-> ByteString
-> Either String ([VCalendar], [String])
DecodingFunctions
module CalendarReader
(getCalendar
, getSummary
) where
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.ByteString.Lazy as B -- package "bytestring"
import qualified Text.ICalendar as ICal -- package "iCalendar"
import qualified Data.Map as Map -- package "containers"
import Network.HTTP.Simple -- package "http-conduit"
import qualified Time -- local module
import Constants
getCalendar :: IO B.ByteString
getCalendar = do
request <- parseRequest $ "GET" ++ calendarURL
response <- httpLBS request
return $ getResponseBody response
getSummary :: B.ByteString -> Time.DateTime -> Int -> String
getSummary cal dateTime dayOffset = summary
where
summary = "Event Summary"
((ICal.VCalendar { ICal.vcEvents = vcEvents' }), _) = ICal.parseICalendar ?missingArgument? logFile cal
그래,이 작품. def에 대해 Data.default를 가져와야한다는 것을 알았지 만 나는 여분의 시간이 필요했다. – BinaryHexer