summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digikey.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/digikey.js b/digikey.js
new file mode 100644
index 0000000..9f4a571
--- /dev/null
+++ b/digikey.js
@@ -0,0 +1,49 @@
+// Generated by CoffeeScript 1.3.3
+(function() {
+ var query_parse, server, service, url, webpage;
+
+ 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, function(request, response) {
+ var page, search, thisUrl, tries;
+ page = webpage.create();
+ search = query_parse.exec(request.url);
+ if (!((search != null) && (search[1] != null))) {
+ 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;
+ return page.open(thisUrl, function(status) {
+ if (status !== "success") {
+ response.statusCode = 503;
+ response.write("MORT ET DESOLATION");
+ return response.close();
+ } else {
+ if (page.evaluate(function() {
+ return typeof test === "function";
+ })) {
+ page.evaluate(function() {
+ return test();
+ });
+ return console.log("TRYING AGAIN (try " + (tries += 1) + ")");
+ } else {
+ response.statusCode = 200;
+ response.write(page.content);
+ return response.close();
+ }
+ }
+ });
+ });
+
+}).call(this);