X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=Rakka.git;a=blobdiff_plain;f=Rakka%2FResource%2FSearch.hs;h=2d076e890556db5da7e04bb29e5aa9f730b92e56;hp=56f99c0118d148bdeb5fb91cd9a7308f14a06891;hb=HEAD;hpb=42f51754dea02201aececaacbf194d714cd58aaf diff --git a/Rakka/Resource/Search.hs b/Rakka/Resource/Search.hs index 56f99c0..2d076e8 100644 --- a/Rakka/Resource/Search.hs +++ b/Rakka/Resource/Search.hs @@ -17,12 +17,14 @@ import Control.Arrow.ArrowTree import Control.Arrow.Unicode import qualified Codec.Binary.UTF8.Generic as UTF8 import Control.Monad.Trans +import qualified Data.ByteString.Char8 as C8 import Data.Maybe import Data.Monoid.Unicode import Data.Text (Text) import qualified Data.Text as T import Data.Time import qualified Data.Time.RFC1123 as RFC1123 +import qualified Data.Time.W3C as W3C import Network.HTTP.Lucu import Network.URI hiding (query, fragment) import Prelude.Unicode @@ -32,7 +34,6 @@ import Rakka.Resource import Rakka.Storage import Rakka.SystemConfig import Rakka.Utils -import Rakka.W3CDateTime import Rakka.Wiki.Engine import System.FilePath import Text.HyperEstraier hiding (getText) @@ -130,7 +131,7 @@ handleSearch env += attr "name" (arr (T.unpack ∘ hpPageName) ⋙ mkText) += attr "lastModified" ( arrIO (utcToLocalZonedTime ∘ hpLastMod) ⋙ - arr formatW3CDateTime + arr W3C.format ⋙ mkText ) @@ -290,7 +291,7 @@ searchResultToXHTML env += sattr "class" "date" += ( getAttrValue "lastModified" ⋙ - arr (zonedTimeToUTC . fromJust . parseW3CDateTime) + arr (zonedTimeToUTC . fromJust . W3C.parse) ⋙ arrIO utcToLocalZonedTime ⋙ @@ -375,15 +376,15 @@ searchResultToXHTML env = arr $ \ (query, (order, section)) -> baseURI { uriPath = uriPath baseURI "search.html" - , uriQuery = '?' : mkQueryString ( [ ("q" , query) - , ("from", show $ section * resultsPerSection) - , ("to" , show $ (section + 1) * resultsPerSection - 1) - ] - ++ - case order of - Just o -> [("order", o)] - Nothing -> [] - ) + , uriQuery = '?' : C8.unpack (mkQueryString ( [ ("q" , T.pack query) + , ("from", T.pack ∘ show $ section ⋅ resultsPerSection ) + , ("to" , T.pack ∘ show $ (section + 1) ⋅ resultsPerSection - 1) + ] + ++ + case order of + Just o -> [("order", T.pack o)] + Nothing -> [] + )) } uriToText :: ArrowXml a => a URI XmlTree