diff options
Diffstat (limited to 'digikey.coffee')
-rw-r--r-- | digikey.coffee | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/digikey.coffee b/digikey.coffee new file mode 100644 index 0000000..b372ca7 --- /dev/null +++ b/digikey.coffee @@ -0,0 +1,37 @@ +#!/home/xilun/phantomjs-1.6.1-linux-x86_64-dynamic/bin/phantomjs + +webpage = require('webpage') +server = require('webserver').create() +query_parse = /search\/([^&]+)/ + +url = 'http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=' + +service = server.listen 8080, (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() |