|
|
@@ -6,12 +6,12 @@ import Prelude
|
|
|
import Data.Either (Either(..), note)
|
|
|
import Data.Generic.Rep (class Generic)
|
|
|
import Data.List.NonEmpty as NEL
|
|
|
-import Data.Maybe (Maybe(..), fromMaybe)
|
|
|
+import Data.Maybe (Maybe(..))
|
|
|
import Data.Show.Generic (genericShow)
|
|
|
-import Debug (trace, traceM)
|
|
|
import LinkedIn (DetachedNode(..))
|
|
|
import LinkedIn.ArtDecoCard (ArtDecoCardElement(..), ArtDecoCenter(..), ArtDecoCenterContent(..), ArtDecoCenterHeader(..), ArtDecoPvsEntity(..), ArtDecoPvsEntitySubComponent(..))
|
|
|
-import Parsing (runParser)
|
|
|
+import LinkedIn.UIElements.Types (UIElement(..))
|
|
|
+import Parsing (ParseError, runParser)
|
|
|
|
|
|
data WorkExperience = WorkExperience {
|
|
|
position :: String,
|
|
|
@@ -24,7 +24,7 @@ derive instance Generic WorkExperience _
|
|
|
instance Show WorkExperience where
|
|
|
show = genericShow
|
|
|
|
|
|
-fromUI :: ArtDecoCardElement -> Either String WorkExperience
|
|
|
+fromUI ∷ ArtDecoCardElement → Either String WorkExperience
|
|
|
fromUI (ArtDecoCardElement {
|
|
|
pvs_entity: ArtDecoPvsEntity {
|
|
|
center: ArtDecoCenter {
|
|
|
@@ -41,12 +41,22 @@ fromUI (ArtDecoCardElement {
|
|
|
desc = NEL.head subC
|
|
|
|
|
|
wep = ado
|
|
|
- p <- toContent bold
|
|
|
- c <- toContent <$> normal
|
|
|
- in WorkExperience {position: p, company: c, timeSpan: Nothing, description: toContent desc}
|
|
|
-
|
|
|
-toContent ∷ DetachedNode → Maybe String
|
|
|
-toContent (DetachedElement {content}) = Just content
|
|
|
-toContent _ = Nothing
|
|
|
+ p <- toText bold
|
|
|
+ in WorkExperience {
|
|
|
+ position: p,
|
|
|
+ company: normal >>= toText,
|
|
|
+ timeSpan: Nothing,
|
|
|
+ description: toText desc
|
|
|
+ }
|
|
|
|
|
|
-toUIElement el = runParser uiElementP el
|
|
|
+toUIElement ∷ DetachedNode → Either ParseError UIElement
|
|
|
+toUIElement (DetachedElement {content}) = runParser content uiElementP
|
|
|
+toUIElement (DetachedComment str) = runParser str uiElementP
|
|
|
+toUIElement (DetachedText str) = runParser str uiElementP
|
|
|
+
|
|
|
+toText ∷ DetachedNode → Maybe String
|
|
|
+toText el = case toUIElement el of
|
|
|
+ Right (UIPlainText str) -> Just str
|
|
|
+ Right (UIDotSeparated (UIPlainText str) _) -> Just str
|
|
|
+ Right (UIDotSeparated _ (UIPlainText str)) -> Just str
|
|
|
+ _ -> Nothing
|