summaryrefslogtreecommitdiff
path: root/digikey_scraping/digikey.coffee
blob: f1a9580224e8ec83cac16ca3582a06795842d6a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
webpage = require('webpage')
server =  require('webserver').create()
query_parse = /search\/([^&]+)/

url = 'http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name='

service = server.listen 8086, (request, response) ->
	page = webpage.create()

	search = query_parse.exec request.url

	unless search? and search[1]?
		console.log "Invalid URL: "+request.url
		response.statusCode = 404
		response.write "try search/componentname"
		response.close()
		return

	console.log search[1]

	thisUrl = url + search[1]
	tries = 0
	page.open thisUrl, (status) ->
		if status != "success"
			response.statusCode = 503
			response.write "MORT ET DESOLATION"
			response.close()
		else
			if page.evaluate(-> typeof test == "function")
				page.evaluate -> test()
				console.log "TRYING AGAIN (try " + (tries += 1) + ")"
			else
				response.statusCode = 200
				response.write page.content
				response.close()