module MediaWiki.API.Query.Info where
import MediaWiki.API.Types
import MediaWiki.API.Utils
data InfoRequest
= InfoRequest
{ inProps :: [String]
, inTokens :: [String]
}
instance APIRequest InfoRequest where
queryKind _ = QProp "info"
showReq r =
[ opt1 "inprop" (inProps r)
, opt1 "intoken" (inTokens r)
]
emptyInfoRequest :: InfoRequest
emptyInfoRequest = InfoRequest
{ inProps = []
, inTokens = []
}
data InfoResponse
= InfoResponse
{ infPages :: [InfoPage]
}
data InfoPage
= InfoPage
{ infPage :: PageTitle
, infTouched :: TimeString
, infLastRevId :: RevID
, infCounter :: Integer
, infLength :: Integer
, infIsRedirect :: Bool
, infIsNew :: Bool
, infEditTok :: Maybe Token
, infDeleteTok :: Maybe Token
, infProtectTok :: Maybe Token
, infMoveTok :: Maybe Token
, infProtection :: [PageRestriction]
}
emptyInfoResponse :: InfoResponse
emptyInfoResponse =
InfoResponse{ infPages= []
}
emptyInfoPage :: InfoPage
emptyInfoPage =
InfoPage
{ infPage = emptyPageTitle
, infTouched = ""
, infLastRevId = ""
, infCounter = 0
, infLength = 0
, infIsRedirect = False
, infIsNew = False
, infEditTok = Nothing
, infDeleteTok = Nothing
, infProtectTok = Nothing
, infMoveTok = Nothing
, infProtection = []
}
data PageRestriction
= PageRestriction
{ prPageId :: PageID
, prSource :: PageName
, prType :: String
, prLevel :: Integer
, prExpiry :: TimeString
, prCascade :: Bool
}