From bd33b778f17e5751a14160baeae6cdcd41ce1ca7 Mon Sep 17 00:00:00 2001
From: Trygve Laugstøl <trygvis@inamo.no>
Date: Thu, 15 Aug 2019 12:01:17 +0200
Subject: datasheet: wip

---
 src/ee/digikey/__init__.py     |  9 ++++++---
 src/ee/digikey/search_parts.py | 11 ++++++++---
 2 files changed, 14 insertions(+), 6 deletions(-)

(limited to 'src/ee/digikey')

diff --git a/src/ee/digikey/__init__.py b/src/ee/digikey/__init__.py
index 15eb5e6..b46ba85 100644
--- a/src/ee/digikey/__init__.py
+++ b/src/ee/digikey/__init__.py
@@ -126,8 +126,9 @@ class PriceBreak(object):
 
 
 class Document(object):
-    def __init__(self, kind: str, title: str, url: str):
-        self.kind = kind
+    def __init__(self, section: str, classes: List[str], title: str, url: str):
+        self.section = section
+        self.classes = classes
         self.title = title
         self.url = url
 
@@ -464,7 +465,9 @@ class DigikeyParser(object):
                 if href.startswith("//"):
                     href = "https:" + href
 
-                docs.append(Document(kind, title, href))
+                classes = [cls[3:].lower() for cls in a.get("class", "").split(" ") if cls.startswith("lnk")]
+
+                docs.append(Document(kind, classes, title, href))
 
         return docs
 
diff --git a/src/ee/digikey/search_parts.py b/src/ee/digikey/search_parts.py
index a1236bb..c0da731 100644
--- a/src/ee/digikey/search_parts.py
+++ b/src/ee/digikey/search_parts.py
@@ -6,7 +6,7 @@ from ee.db import ObjDb
 from ee.digikey import Digikey, DigikeyParser, DigikeyClient, SearchResponseTypes, DigikeyProduct, DigikeyStore
 from ee.part import PartDb, load_db, save_db, Part
 from ee.tools import mk_parents
-from ee.xml import types
+from ee.xml import types, uris
 from ee.xml.uris import make_digikey_fact_key
 
 __all__ = ["search_parts"]
@@ -157,8 +157,13 @@ def resolved(supplier, p: DigikeyProduct) -> Part:
         part.get_links().append(types.Link(url=p.url, relation="canonical", media_type="text/html"))
 
     for d in p.documents:
-        title = "{}: {}".format(d.kind, d.title)
-        part.get_links().append(types.Link(url=d.url, relation="http://purl.org/ee/link-relation#documentation",
+        title = "{}: {}".format(d.section, d.title)
+        relations = ["http://purl.org/ee/link-relation#documentation"]
+
+        if "datasheet" in d.classes:
+            relations.append(uris.make_link_rel("datasheet"))
+
+        part.get_links().append(types.Link(url=d.url, relation=" ".join(relations),
                                            media_type="text/html", title=title))
 
     part.add_spn(p.part_number)
-- 
cgit v1.2.3