|
@@ -134,42 +134,51 @@ instance Traversable ArtDecoPvsEntity where
|
|
|
|
|
|
|
|
traverse = \x -> traverseDefault x
|
|
traverse = \x -> traverseDefault x
|
|
|
|
|
|
|
|
-queryArtDecoPvsEntitySubComponent ∷ QueryRunner (ArtDecoPvsEntitySubComponent Node)
|
|
|
|
|
-queryArtDecoPvsEntitySubComponent n = do
|
|
|
|
|
- content <- ignoreNotFound $ queryOne "span[aria-hidden=true]" n
|
|
|
|
|
- pure $ ArtDecoPvsEntitySubComponent content
|
|
|
|
|
-
|
|
|
|
|
-queryArtDecoCenterContent ∷ QueryRunner (ArtDecoCenterContent Node)
|
|
|
|
|
-queryArtDecoCenterContent n = do
|
|
|
|
|
- list <- queryAll ":scope > ul > li" n
|
|
|
|
|
- sc <- traverse queryArtDecoPvsEntitySubComponent list
|
|
|
|
|
|
|
+queryArtDecoPvsEntitySubComponents ∷ String -> QueryRunner (NonEmptyList (ArtDecoPvsEntitySubComponent Node))
|
|
|
|
|
+queryArtDecoPvsEntitySubComponents selector n = do
|
|
|
|
|
+ roots <- queryAll selector n
|
|
|
|
|
+ traverse queryComponent roots
|
|
|
|
|
+
|
|
|
|
|
+ where
|
|
|
|
|
+ queryComponent n' = do
|
|
|
|
|
+ content <- ignoreNotFound $ queryOne "span[aria-hidden=true]" n'
|
|
|
|
|
+ pure $ ArtDecoPvsEntitySubComponent content
|
|
|
|
|
+
|
|
|
|
|
+queryArtDecoCenterContent ∷ String -> QueryRunner (ArtDecoCenterContent Node)
|
|
|
|
|
+queryArtDecoCenterContent selector n = do
|
|
|
|
|
+ content <- queryOne selector n
|
|
|
|
|
+
|
|
|
|
|
+ sc <- queryArtDecoPvsEntitySubComponents ":scope > ul > li" content
|
|
|
|
|
+
|
|
|
pure $ ArtDecoCenterContent sc
|
|
pure $ ArtDecoCenterContent sc
|
|
|
|
|
|
|
|
-queryArtDecoCenterHeader ∷ QueryRunner (ArtDecoCenterHeader Node)
|
|
|
|
|
-queryArtDecoCenterHeader n = do
|
|
|
|
|
- bold <- queryOne ":scope div.t-bold > span[aria-hidden=true]" n
|
|
|
|
|
|
|
+queryArtDecoCenterHeader ∷ String -> QueryRunner (ArtDecoCenterHeader Node)
|
|
|
|
|
+queryArtDecoCenterHeader selector n = do
|
|
|
|
|
+ header <- queryOne selector n
|
|
|
|
|
+
|
|
|
|
|
+ bold <- queryOne ":scope div.t-bold > span[aria-hidden=true]" header
|
|
|
normal <-
|
|
normal <-
|
|
|
ignoreNotFound $
|
|
ignoreNotFound $
|
|
|
- queryOne ":scope span.t-normal:not(t-black--light) > span[aria-hidden=true]" n
|
|
|
|
|
|
|
+ queryOne ":scope span.t-normal:not(t-black--light) > span[aria-hidden=true]" header
|
|
|
light <-
|
|
light <-
|
|
|
ignoreNotFound $
|
|
ignoreNotFound $
|
|
|
- queryAll ":scope span.t-black--light > span[aria-hidden=true]" n
|
|
|
|
|
|
|
+ queryAll ":scope span.t-black--light > span[aria-hidden=true]" header
|
|
|
|
|
|
|
|
pure $ ArtDecoCenterHeader {bold, normal, light}
|
|
pure $ ArtDecoCenterHeader {bold, normal, light}
|
|
|
|
|
|
|
|
-queryArtDecoCenter ∷ QueryRunner (ArtDecoCenter Node)
|
|
|
|
|
-queryArtDecoCenter n = do
|
|
|
|
|
- header <- queryOne ":scope > div" n
|
|
|
|
|
- h <- queryArtDecoCenterHeader header
|
|
|
|
|
- content <- queryOne ":scope > div.pvs-entity__sub-components" n
|
|
|
|
|
- c <- queryArtDecoCenterContent content
|
|
|
|
|
|
|
+queryArtDecoCenter ∷ String -> QueryRunner (ArtDecoCenter Node)
|
|
|
|
|
+queryArtDecoCenter selector n = do
|
|
|
|
|
+ root <- queryOne selector n
|
|
|
|
|
+
|
|
|
|
|
+ h <- queryArtDecoCenterHeader ":scope > div" root
|
|
|
|
|
+ c <- queryArtDecoCenterContent ":scope > div.pvs-entity__sub-components" root
|
|
|
|
|
|
|
|
pure $ ArtDecoCenter {header: h, content: c}
|
|
pure $ ArtDecoCenter {header: h, content: c}
|
|
|
|
|
|
|
|
-queryArtDecoPvsEntity ∷ QueryRunner (ArtDecoPvsEntity Node)
|
|
|
|
|
-queryArtDecoPvsEntity n = do
|
|
|
|
|
- center <- queryOne ":scope > div.display-flex" n
|
|
|
|
|
- c <- queryArtDecoCenter center
|
|
|
|
|
|
|
+queryArtDecoPvsEntity ∷ String -> QueryRunner (ArtDecoPvsEntity Node)
|
|
|
|
|
+queryArtDecoPvsEntity selector n = do
|
|
|
|
|
+ root <- queryOne selector n
|
|
|
|
|
+ c <- queryArtDecoCenter ":scope > div.display-flex" root
|
|
|
|
|
|
|
|
pure $ ArtDecoPvsEntity {side: unit, center: c}
|
|
pure $ ArtDecoPvsEntity {side: unit, center: c}
|
|
|
|
|
|