Просмотр исходного кода

Replace subQueryMany query with subQueryMany

jherve 1 год назад
Родитель
Сommit
920351f994

+ 6 - 1
src/LinkedIn/CanBeQueried.purs

@@ -2,7 +2,9 @@ module LinkedIn.CanBeQueried where
 
 
 import Prelude
 import Prelude
 
 
-import LinkedIn.QueryRunner (QueryRunner', queryOne)
+import Data.List.Types (NonEmptyList)
+import Data.Traversable (traverse)
+import LinkedIn.QueryRunner (QueryRunner', queryAll, queryOne)
 import LinkedIn.Queryable (class Queryable)
 import LinkedIn.Queryable (class Queryable)
 import Web.DOM (Node)
 import Web.DOM (Node)
 
 
@@ -11,3 +13,6 @@ class Queryable root <= CanBeQueried root t where
 
 
 subQueryOne ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → QueryRunner' q (t Node)
 subQueryOne ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → QueryRunner' q (t Node)
 subQueryOne selector n = query =<< queryOne selector n
 subQueryOne selector n = query =<< queryOne selector n
+
+subQueryMany ∷ ∀ q t. CanBeQueried Node t ⇒ Queryable q ⇒ String → QueryRunner' q (NonEmptyList (t Node))
+subQueryMany selector n = traverse query =<< queryAll selector n

+ 2 - 3
src/LinkedIn/Page/Projects.purs

@@ -7,11 +7,10 @@ import Data.Generic.Rep (class Generic)
 import Data.List.Types (NonEmptyList)
 import Data.List.Types (NonEmptyList)
 import Data.Show.Generic (genericShow)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
-import LinkedIn.CanBeQueried (class CanBeQueried, query)
+import LinkedIn.CanBeQueried (class CanBeQueried, subQueryMany)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Profile.Project as PP
 import LinkedIn.Profile.Project as PP
-import LinkedIn.QueryRunner (subQueryMany)
 import LinkedIn.UI.Components.ArtDecoCard (ArtDecoCardElement)
 import LinkedIn.UI.Components.ArtDecoCard (ArtDecoCardElement)
 import Web.DOM (Document)
 import Web.DOM (Document)
 
 
@@ -38,7 +37,7 @@ instance Traversable ProjectsPage where
 
 
 instance CanBeQueried Document ProjectsPage where
 instance CanBeQueried Document ProjectsPage where
   query n = do
   query n = do
-    cards <- subQueryMany query "section.artdeco-card > div ~ div > div > div > ul > li" n
+    cards <- subQueryMany "section.artdeco-card > div ~ div > div > div > ul > li" n
     pure $ ProjectsPage cards
     pure $ ProjectsPage cards
 
 
 instance Extractible ProjectsPage where
 instance Extractible ProjectsPage where

+ 2 - 3
src/LinkedIn/Page/Skills.purs

@@ -7,11 +7,10 @@ import Data.Generic.Rep (class Generic)
 import Data.List.Types (NonEmptyList)
 import Data.List.Types (NonEmptyList)
 import Data.Show.Generic (genericShow)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
-import LinkedIn.CanBeQueried (class CanBeQueried, query)
+import LinkedIn.CanBeQueried (class CanBeQueried, subQueryMany)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Profile.Skill as PS
 import LinkedIn.Profile.Skill as PS
-import LinkedIn.QueryRunner (subQueryMany)
 import LinkedIn.UI.Components.ArtDecoTab (ArtDecoTabElement)
 import LinkedIn.UI.Components.ArtDecoTab (ArtDecoTabElement)
 import Web.DOM (Document)
 import Web.DOM (Document)
 
 
@@ -38,7 +37,7 @@ instance Traversable SkillsPage where
 
 
 instance CanBeQueried Document SkillsPage where
 instance CanBeQueried Document SkillsPage where
   query n = do
   query n = do
-    tabs <- subQueryMany query "div.artdeco-tabs > div > div > div > div > ul > li" n
+    tabs <- subQueryMany "div.artdeco-tabs > div > div > div > div > ul > li" n
     pure $ SkillsPage tabs
     pure $ SkillsPage tabs
 
 
 instance Extractible SkillsPage where
 instance Extractible SkillsPage where

+ 2 - 3
src/LinkedIn/Page/WorkExperiences.purs

@@ -7,11 +7,10 @@ import Data.Generic.Rep (class Generic)
 import Data.List.Types (NonEmptyList)
 import Data.List.Types (NonEmptyList)
 import Data.Show.Generic (genericShow)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
 import Data.Traversable (class Traversable, sequence, traverse, traverseDefault)
-import LinkedIn.CanBeQueried (class CanBeQueried, query)
+import LinkedIn.CanBeQueried (class CanBeQueried, subQueryMany)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Extractible (class Extractible)
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Output.Types (Output(..))
 import LinkedIn.Profile.WorkExperience as PWE
 import LinkedIn.Profile.WorkExperience as PWE
-import LinkedIn.QueryRunner (subQueryMany)
 import LinkedIn.UI.Components.ArtDecoCard (ArtDecoCardElement)
 import LinkedIn.UI.Components.ArtDecoCard (ArtDecoCardElement)
 import Web.DOM (Document)
 import Web.DOM (Document)
 
 
@@ -38,7 +37,7 @@ instance Traversable WorkExperiencesPage where
 
 
 instance CanBeQueried Document WorkExperiencesPage where
 instance CanBeQueried Document WorkExperiencesPage where
   query n = do
   query n = do
-    cards <- subQueryMany query "section.artdeco-card > div ~ div > div > div > ul > li" n
+    cards <- subQueryMany "section.artdeco-card > div ~ div > div > div > ul > li" n
     pure $ WorkExperiencesPage cards
     pure $ WorkExperiencesPage cards
 
 
 instance Extractible WorkExperiencesPage where
 instance Extractible WorkExperiencesPage where

+ 0 - 4
src/LinkedIn/QueryRunner.purs

@@ -11,7 +11,6 @@ import Data.Generic.Rep (class Generic)
 import Data.List.Types (NonEmptyList)
 import Data.List.Types (NonEmptyList)
 import Data.Maybe (Maybe(..))
 import Data.Maybe (Maybe(..))
 import Data.Show.Generic (genericShow)
 import Data.Show.Generic (genericShow)
-import Data.Traversable (traverse)
 import Effect (Effect)
 import Effect (Effect)
 import LinkedIn.Queryable (class Queryable, getChildrenArray, queryAllNodes, queryOneNode, toNode)
 import LinkedIn.Queryable (class Queryable, getChildrenArray, queryAllNodes, queryOneNode, toNode)
 import Web.DOM (Node)
 import Web.DOM (Node)
@@ -80,6 +79,3 @@ queryAll ∷ forall q. Queryable q => String → QueryRunner' q (NonEmptyList No
 queryAll selector node = ExceptT $ do
 queryAll selector node = ExceptT $ do
   maybeNodes <- queryAllNodes selector node
   maybeNodes <- queryAllNodes selector node
   pure $ note (QNodeListNotFoundError selector) maybeNodes
   pure $ note (QNodeListNotFoundError selector) maybeNodes
-
-subQueryMany ∷ ∀ a q. Queryable q ⇒ QueryRunner a → String → QueryRunner' q (NonEmptyList a)
-subQueryMany query selector n = traverse query =<< queryAll selector n

+ 3 - 3
src/LinkedIn/UI/Components/ArtDeco.purs

@@ -11,8 +11,8 @@ import Data.Maybe (Maybe)
 import Data.Show.Generic (genericShow)
 import Data.Show.Generic (genericShow)
 import Data.Traversable (class Traversable, sequence, traverseDefault)
 import Data.Traversable (class Traversable, sequence, traverseDefault)
 import Data.Tuple (Tuple(..))
 import Data.Tuple (Tuple(..))
-import LinkedIn.CanBeQueried (class CanBeQueried, query, subQueryOne)
-import LinkedIn.QueryRunner (ignoreNotFound, queryAll, queryOne, subQueryMany)
+import LinkedIn.CanBeQueried (class CanBeQueried, subQueryMany, subQueryOne)
+import LinkedIn.QueryRunner (ignoreNotFound, queryAll, queryOne)
 import LinkedIn.Queryable (class Queryable)
 import LinkedIn.Queryable (class Queryable)
 import Type.Proxy (Proxy(..))
 import Type.Proxy (Proxy(..))
 
 
@@ -83,7 +83,7 @@ instance Traversable ArtDecoCenterContent where
 
 
 instance Queryable q => CanBeQueried q ArtDecoCenterContent where
 instance Queryable q => CanBeQueried q ArtDecoCenterContent where
   query n = do
   query n = do
-    sc <- subQueryMany query ":scope > ul > li" n
+    sc <- subQueryMany ":scope > ul > li" n
     pure $ ArtDecoCenterContent sc
     pure $ ArtDecoCenterContent sc
 
 
 derive instance Generic (ArtDecoCenterHeader a) _
 derive instance Generic (ArtDecoCenterHeader a) _