Skip to content

Instantly share code, notes, and snippets.

@Erhannis
Last active August 16, 2023 23:34
Show Gist options
  • Save Erhannis/e122b5da057341ea9f30e96b1c356d5d to your computer and use it in GitHub Desktop.
Save Erhannis/e122b5da057341ea9f30e96b1c356d5d to your computer and use it in GitHub Desktop.
Copy JLCPCB/LCSC part info into format you can paste into KiCAD part info 4 rows
/*
// Bookmarklet
javascript:a1%20%3D%20document.evaluate%28%22%2F%2Fdl%5Bcontains%28.%2C%20%27MFR.Part%20%23%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0Aa2%20%3D%20a1.iterateNext%28%29%3B%0A%0Aif%20%28a2%20%3D%3D%20null%29%20%7B%0A%20%20a1%20%3D%20document.evaluate%28%22%2F%2Ftr%5Bcontains%28.%2C%20%27Mfr.%20Part%20%23%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0A%20%20a2%20%3D%20a1.iterateNext%28%29%3B%0A%7D%0A%0Ab1%20%3D%20document.evaluate%28%22%2F%2Fdl%5Bcontains%28.%2C%20%27JLCPCB%20Part%20%23%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0Ab2%20%3D%20b1.iterateNext%28%29%3B%0A%0Aif%20%28b2%20%3D%3D%20null%29%20%7B%0A%20%20b1%20%3D%20document.evaluate%28%22%2F%2Ftr%5Bcontains%28.%2C%20%27LCSC%20Part%20%23%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0A%20%20b2%20%3D%20b1.iterateNext%28%29%3B%0A%7D%0A%0Ac1%20%3D%20document.evaluate%28%22%2F%2Fdl%5Bcontains%28.%2C%20%27Description%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0Ac2%20%3D%20c1.iterateNext%28%29%3B%0A%0Aif%20%28c2%20%3D%3D%20null%29%20%7B%0A%20%20c1%20%3D%20document.evaluate%28%22%2F%2Ftr%5Bcontains%28.%2C%20%27Description%27%29%5D%22%2C%20document%2C%20null%2C%20XPathResult.ANY_TYPE%2C%20null%20%29%3B%0A%20%20c2%20%3D%20c1.iterateNext%28%29%3B%0A%7D%0A%0Anavigator.clipboard.writeText%28%22MFR%5Ct%22%2Ba2.childNodes%5B2%5D.textContent.trim%28%29%2B%22%5Cn%22%2B%22LCSC%5Ct%22%2Bb2.childNodes%5B2%5D.textContent.trim%28%29%2B%22%5Cn%22%2B%22Description%5Ct%22%2Bc2.childNodes%5B2%5D.textContent.trim%28%29%2B%22%5Cn%22%2B%22URL%5Ct%22%2Bwindow.location%29%3B
*/
// Source:
a1 = document.evaluate("//dl[contains(., 'MFR.Part #')]", document, null, XPathResult.ANY_TYPE, null );
a2 = a1.iterateNext();
if (a2 == null) {
a1 = document.evaluate("//tr[contains(., 'Mfr. Part #')]", document, null, XPathResult.ANY_TYPE, null );
a2 = a1.iterateNext();
}
b1 = document.evaluate("//dl[contains(., 'JLCPCB Part #')]", document, null, XPathResult.ANY_TYPE, null );
b2 = b1.iterateNext();
if (b2 == null) {
b1 = document.evaluate("//tr[contains(., 'LCSC Part #')]", document, null, XPathResult.ANY_TYPE, null );
b2 = b1.iterateNext();
}
c1 = document.evaluate("//dl[contains(., 'Description')]", document, null, XPathResult.ANY_TYPE, null );
c2 = c1.iterateNext();
if (c2 == null) {
c1 = document.evaluate("//tr[contains(., 'Description')]", document, null, XPathResult.ANY_TYPE, null );
c2 = c1.iterateNext();
}
navigator.clipboard.writeText("MFR\t"+a2.childNodes[2].textContent.trim()+"\n"+"LCSC\t"+b2.childNodes[2].textContent.trim()+"\n"+"Description\t"+c2.childNodes[2].textContent.trim()+"\n"+"URL\t"+window.location);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment