Commit 25fc4df9 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[searx] some more work on triggerSearxSearch

parent 50d10679
Pipeline #2210 failed with stage
in 10 minutes and 21 seconds
...@@ -23,8 +23,14 @@ import Gargantext.Core.Utils.Prefix (unPrefix) ...@@ -23,8 +23,14 @@ import Gargantext.Core.Utils.Prefix (unPrefix)
import Gargantext.Database.Action.Flow.Types (FlowCmdM) import Gargantext.Database.Action.Flow.Types (FlowCmdM)
import Gargantext.Database.Admin.Types.Node (CorpusId) import Gargantext.Database.Admin.Types.Node (CorpusId)
import Gargantext.Database.Prelude (hasConfig) import Gargantext.Database.Prelude (hasConfig)
import Gargantext.Database.Query.Table.Node (defaultList)
langToSearx :: Lang -> Text
langToSearx EN = "en-US"
langToSearx FR = "fr-FR"
langToSearx All = "en-US"
data SearxResult = SearxResult data SearxResult = SearxResult
{ _sr_url :: Text { _sr_url :: Text
, _sr_title :: Text , _sr_title :: Text
...@@ -76,26 +82,28 @@ fetchSearxPage (FetchSearxParams { _fsp_language ...@@ -76,26 +82,28 @@ fetchSearxPage (FetchSearxParams { _fsp_language
, ("categories", "news") -- https://gitlab.iscpif.fr/gargantext/haskell-gargantext/issues/70#note_3976 , ("categories", "news") -- https://gitlab.iscpif.fr/gargantext/haskell-gargantext/issues/70#note_3976
, ("pageno", encodeUtf8 $ T.pack $ show _fsp_pageno) , ("pageno", encodeUtf8 $ T.pack $ show _fsp_pageno)
--, ("time_range", "None") --, ("time_range", "None")
, ("language", encodeUtf8 $ T.pack $ show _fsp_language) , ("language", encodeUtf8 $ langToSearx _fsp_language)
, ("format", "json") , ("format", "json")
] req ] req
res <- httpLbs request _fsp_manager res <- httpLbs request _fsp_manager
let dec = Aeson.eitherDecode $ responseBody res :: (Either Prelude.String SearxResponse) let dec = Aeson.eitherDecode $ responseBody res :: (Either Prelude.String SearxResponse)
pure dec pure dec
-- TODO Make an async task out of this?
triggerSearxSearch :: (MonadBase IO m, FlowCmdM env err m) triggerSearxSearch :: (MonadBase IO m, FlowCmdM env err m)
=> CorpusId => CorpusId
-> API.Query -> API.Query
-> Lang -> Lang
-> m () -> m ()
triggerSearxSearch cId q l = do
triggerSearxSearch cid q l = do printDebug "[triggerSearxSearch] cId" cId
printDebug "[triggerSearxSearch] cid" cid
printDebug "[triggerSearxSearch] q" q printDebug "[triggerSearxSearch] q" q
printDebug "[triggerSearxSearch] l" l printDebug "[triggerSearxSearch] l" l
cfg <- view hasConfig cfg <- view hasConfig
let surl = _gc_frame_searx_url cfg let surl = _gc_frame_searx_url cfg
printDebug "[triggerSearxSearch] surl" surl printDebug "[triggerSearxSearch] surl" surl
listId <- defaultList cId
printDebug "[triggerSearxSearch] listId" listId
manager <- liftBase $ newManager tlsManagerSettings manager <- liftBase $ newManager tlsManagerSettings
res <- liftBase $ fetchSearxPage $ FetchSearxParams { _fsp_language = l res <- liftBase $ fetchSearxPage $ FetchSearxParams { _fsp_language = l
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment