Content.purs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. module ExampleWebExt.Content where
  2. import Prelude
  3. import Browser.DOM (getBrowserDom)
  4. import Data.Either (Either(..))
  5. import Effect (Effect)
  6. import Effect.Class.Console (logShow)
  7. import Effect.Console (log)
  8. import LinkedIn.Page.JobOffer as PageJ
  9. import LinkedIn.Page.Projects as PageP
  10. import LinkedIn.Page.Skills as PageS
  11. import LinkedIn.Page.WorkExperiences as PageWE
  12. import LinkedIn.QueryRunner (QueryRunner', runQuery)
  13. import Web.DOM (Document, Node)
  14. main :: Effect Unit
  15. main = do
  16. log "[content] starting up"
  17. dom <- getBrowserDom
  18. runQueryAndExtract PageWE.query PageWE.extract dom
  19. runQueryAndExtract PageP.query PageP.extract dom
  20. runQueryAndExtract PageS.query PageS.extract dom
  21. runQueryAndExtract PageJ.query PageJ.extract dom
  22. runQueryAndExtract ∷
  23. ∀ f1 a.
  24. Show a
  25. ⇒ QueryRunner' Document (f1 Node)
  26. → (f1 Node → Effect (Either String a))
  27. → Document
  28. → Effect Unit
  29. runQueryAndExtract query extract dom = do
  30. n <- runQuery $ query dom
  31. case n of
  32. Left l' -> logShow l'
  33. Right q -> do
  34. extracted <- extract q
  35. logShow extracted