datasheet added to bom

This commit is contained in:
King Kévin 2014-05-03 01:30:55 +02:00
parent 57ba627955
commit 03636b8964
1 changed files with 9 additions and 5 deletions

View File

@ -151,7 +151,8 @@ def bom2(schematic, attributes)
# generate bom2
list = `gnetlist -g bom2 -Oattribs=#{attributes*','} -q -o - #{schematic}`
list.encode!("UTF-8","ISO-8859-1")
list.gsub!(/(\d[Mkmµ]?)\?/,'\1Ω')
list.gsub!(/(\d[Mkmµ]?)\?/,'\1Ω') # UTF-8 characters like Ω are replaced with ? by gnetlist
list.gsub!(/(https?:\/\/[^:]*):/,'"\1":') # ':' (like in links) are not protected
# parse bom2
csv = CSV.parse(list,{:col_sep => ":"})
csv[1..-1].each do |row|
@ -215,10 +216,11 @@ def octopart(seller,sku)
return to_return
end
DIGIKEY_URL = "http://www.digikey.de/product-detail/en/all/"
def scrape_digikey(sku)
to_return = {stock: nil, currency: "EUR", prices: []}
# get page
url = "http://www.digikey.de/product-detail/en/all/#{sku}/"
url = DIGIKEY_URL+sku
doc = Nokogiri::HTML(open(URI.escape(url)))
# get stock
stock_doc = doc.xpath('//td[@id="quantityavailable"]')[0]
@ -235,10 +237,11 @@ def scrape_digikey(sku)
return to_return
end
FARNELL_URL = "http://de.farnell.com/"
def scrape_farnell(sku)
to_return = {stock: nil, currency: "EUR", prices: []}
# get page
url = "http://de.farnell.com/#{sku}"
url = FARNELL_URL+sku
doc = Nokogiri::HTML(open(URI.escape(url)))
# get stock
stock_doc = doc.xpath('//td[@class="prodDetailAvailability"]')[0]
@ -260,10 +263,11 @@ def scrape_farnell(sku)
return to_return
end
MOUSER_URL = "http://www.mouser.com/Search/ProductDetail.aspx?R=0virtualkey0virtualkey"
def scrape_mouser(sku)
to_return = {stock: nil, currency: "EUR", prices: []}
# get page
url = "http://www.mouser.com/Search/ProductDetail.aspx?R=0virtualkey0virtualkey#{sku}"
url = MOUSER_URL+sku
doc = Nokogiri::HTML(open(URI.escape(url),:allow_redirections => :all))
# get stock
stock_doc = doc.xpath('//table[contains(@id,"availability")]/tr/td')[0]
@ -363,7 +367,7 @@ end
desc "generate BOM file from schematic"
targets.each do |target|
file "#{target[:name]}_bom.csv" => target[:sch] do |t|
attributes = ["category","device","value","description","manufacturer","manufacturer-id","digikey-id","farnell-id","mouser-id"]
attributes = ["category","device","value","description","manufacturer","manufacturer-id","datasheet","digikey-id","farnell-id","mouser-id"]
bom_data = bom2(t.prerequisites[0],attributes)
CSV.open(t.name, "wb") do |csv|
all_attributes = ["refdes","qty"]+attributes