|
|
@@ -2,7 +2,6 @@ module LinkedIn.ArtDeco where
|
|
|
|
|
|
import Prelude
|
|
|
|
|
|
-import Data.Either (Either(..), hush)
|
|
|
import Data.Foldable (class Foldable, foldMap, foldlDefault, foldrDefault)
|
|
|
import Data.Generic.Rep (class Generic)
|
|
|
import Data.List (List)
|
|
|
@@ -11,10 +10,7 @@ import Data.List.NonEmpty as NEL
|
|
|
import Data.Maybe (Maybe)
|
|
|
import Data.Show.Generic (genericShow)
|
|
|
import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
|
|
|
-import LinkedIn (DetachedNode)
|
|
|
import LinkedIn.QueryRunner (QueryRunner, ignoreNotFound, queryAll, queryOne)
|
|
|
-import LinkedIn.Types (Parser)
|
|
|
-import LinkedIn.Utils (queryAndDetachMany, queryAndDetachOne, queryManyAndParse, queryOneAndParse)
|
|
|
import Web.DOM (Node)
|
|
|
|
|
|
|
|
|
@@ -138,39 +134,17 @@ instance Traversable ArtDecoPvsEntity where
|
|
|
|
|
|
traverse = \x -> traverseDefault x
|
|
|
|
|
|
-parseArtDecoPvsEntitySubComponent ∷ Parser (ArtDecoPvsEntitySubComponent DetachedNode)
|
|
|
-parseArtDecoPvsEntitySubComponent n = do
|
|
|
- content <- queryAndDetachOne "span[aria-hidden=true]" n
|
|
|
- pure $ Right $ ArtDecoPvsEntitySubComponent $ hush content
|
|
|
-
|
|
|
queryArtDecoPvsEntitySubComponent ∷ QueryRunner (ArtDecoPvsEntitySubComponent Node)
|
|
|
queryArtDecoPvsEntitySubComponent n = do
|
|
|
content <- ignoreNotFound $ queryOne "span[aria-hidden=true]" n
|
|
|
pure $ ArtDecoPvsEntitySubComponent content
|
|
|
|
|
|
-parseArtDecoCenterContent ∷ Parser (ArtDecoCenterContent DetachedNode)
|
|
|
-parseArtDecoCenterContent n = do
|
|
|
- list <- queryManyAndParse ":scope > ul > li" parseArtDecoPvsEntitySubComponent n
|
|
|
- pure $ ado
|
|
|
- l <- list
|
|
|
- in ArtDecoCenterContent l
|
|
|
-
|
|
|
queryArtDecoCenterContent ∷ QueryRunner (ArtDecoCenterContent Node)
|
|
|
queryArtDecoCenterContent n = do
|
|
|
list <- queryAll ":scope > ul > li" n
|
|
|
sc <- traverse queryArtDecoPvsEntitySubComponent list
|
|
|
pure $ ArtDecoCenterContent sc
|
|
|
|
|
|
-parseArtDecoCenterHeader :: Parser (ArtDecoCenterHeader DetachedNode)
|
|
|
-parseArtDecoCenterHeader n = do
|
|
|
- bold <- queryAndDetachOne ":scope div.t-bold > span[aria-hidden=true]" n
|
|
|
- normal <- queryAndDetachOne ":scope span.t-normal:not(t-black--light) > span[aria-hidden=true]" n
|
|
|
- light <- queryAndDetachMany ":scope span.t-black--light > span[aria-hidden=true]" n
|
|
|
-
|
|
|
- pure $ ado
|
|
|
- b <- bold
|
|
|
- in ArtDecoCenterHeader {bold: b, normal: hush normal, light: hush light}
|
|
|
-
|
|
|
queryArtDecoCenterHeader ∷ QueryRunner (ArtDecoCenterHeader Node)
|
|
|
queryArtDecoCenterHeader n = do
|
|
|
bold <- queryOne ":scope div.t-bold > span[aria-hidden=true]" n
|
|
|
@@ -183,16 +157,6 @@ queryArtDecoCenterHeader n = do
|
|
|
|
|
|
pure $ ArtDecoCenterHeader {bold, normal, light}
|
|
|
|
|
|
-parseArtDecoCenter :: Parser (ArtDecoCenter DetachedNode)
|
|
|
-parseArtDecoCenter n = do
|
|
|
- header <- queryOneAndParse ":scope > div" parseArtDecoCenterHeader n
|
|
|
- content <- queryOneAndParse ":scope > div.pvs-entity__sub-components" parseArtDecoCenterContent n
|
|
|
-
|
|
|
- pure $ ado
|
|
|
- h <- header
|
|
|
- c <- content
|
|
|
- in ArtDecoCenter {header: h, content: c}
|
|
|
-
|
|
|
queryArtDecoCenter ∷ QueryRunner (ArtDecoCenter Node)
|
|
|
queryArtDecoCenter n = do
|
|
|
header <- queryOne ":scope > div" n
|
|
|
@@ -202,14 +166,6 @@ queryArtDecoCenter n = do
|
|
|
|
|
|
pure $ ArtDecoCenter {header: h, content: c}
|
|
|
|
|
|
-parseArtDecoPvsEntity :: Parser (ArtDecoPvsEntity DetachedNode)
|
|
|
-parseArtDecoPvsEntity n = do
|
|
|
- center <- queryOneAndParse ":scope > div.display-flex" parseArtDecoCenter n
|
|
|
-
|
|
|
- pure $ ado
|
|
|
- c <- center
|
|
|
- in ArtDecoPvsEntity {side: unit, center: c}
|
|
|
-
|
|
|
queryArtDecoPvsEntity ∷ QueryRunner (ArtDecoPvsEntity Node)
|
|
|
queryArtDecoPvsEntity n = do
|
|
|
center <- queryOne ":scope > div.display-flex" n
|