summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/asdf.js84
-rw-r--r--js/gallery.js33
2 files changed, 117 insertions, 0 deletions
diff --git a/js/asdf.js b/js/asdf.js
new file mode 100644
index 0000000..0e173a1
--- /dev/null
+++ b/js/asdf.js
@@ -0,0 +1,84 @@
+//
+// asdf .. asdf.us/im search api
+
+var asdf = { fetching: false }
+asdf.random = function (e){
+ status("fetching random photoblasts")
+ e && e.preventDefault();
+ opt = {};
+ opt.data = { random: 1 };
+ opt.success = gallery.load;
+ asdf.fetch(opt);
+}
+
+asdf.fetch = function (opt){
+ if (asdf.fetching) return;
+ asdf.fetching = true;
+ var params = {random:1};
+ $.ajax({
+ 'url': "http://asdf.us/cgi-bin/im/list",
+ 'data': params,
+ 'dataType': "jsonp",
+ 'success': function(urls){
+ console.log(urls);
+ asdf.fetching = false;
+ opt.success && opt.success(urls)
+ },
+ 'error': opt.error || function(err){
+ console.log(err);
+ }
+ });
+}
+
+
+//
+// dumpfm .. dump.fm/search api
+
+var dumpfm = {}
+dumpfm.search = function (e){
+ e && e.preventDefault();
+
+ var term = $("#dumpfm-search-query").val().toLowerCase()
+ var rawTokens = term.split(" ")
+ var tokens = []
+ rawTokens.forEach(function(t){ if (t.length > 2) tokens.push(t) })
+ if (tokens.length == 0 || tokens[0] == "undefined") {
+ status("search query too small")
+ } else {
+ status("searching for '"+tokens.join(" and ")+"'")
+ dumpfm.fetch({
+ query: tokens.join("+"),
+ success: gallery.load
+ })
+ }
+};
+
+dumpfm.fetch = function(opt){
+ if (dumpfm.fetching) return;
+ dumpfm.fetching = true;
+ var params = {};
+ $.ajax({
+ 'url': "http://dump.fm/cmd/search/" + opt.query,
+ 'data': params,
+ 'dataType': "jsonp",
+ 'success': function(urls){
+ dumpfm.fetching = false;
+ for (var i = 0, len = urls.length; i < len; i++) {
+ var url = urls[i].url;
+ console.log(url)
+ if (url.match(/\/^\d+\//)) {
+ url = "http://dump.fm/images/" + url;
+ }
+ else {
+ url = "http://" + url;
+ }
+ urls[i].url = url;
+ }
+ opt.success && opt.success(urls)
+ },
+ 'error': opt.error || function(err){
+ console.log(err);
+ }
+ });
+}
+
diff --git a/js/gallery.js b/js/gallery.js
new file mode 100644
index 0000000..9b2372d
--- /dev/null
+++ b/js/gallery.js
@@ -0,0 +1,33 @@
+//
+// gallery .. the most basic image picker
+
+var gallery = {}
+
+gallery.init = function(){
+ gallery.bind()
+}
+
+gallery.bind = function(){
+ $("#gallery-random").click(asdf.random)
+ $("#gallery-search").submit(dumpfm.search)
+ $(document).on("click", "#gallery-images img", gallery.choose)
+ status("ready")
+}
+
+gallery.load = function(ims){
+ status("loading " + ims.length + " images");
+ $("#gallery-images").empty();
+ for (var i = 0; i < ims.length; i++) {
+ gallery.image(ims[i]);
+ }
+}
+
+gallery.image = function(im){
+ var img = new Image ();
+ img.onload = function(){
+ $("#gallery-images").append(img);
+ }
+ try { img.src = im.url; }
+ catch(e){ return; }
+ if (img.complete) img.onload();
+}