From 8829a743db3ec88182f3034d077971ba5c2a5cbf Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 29 Dec 2013 18:26:12 -0500 Subject: dither picker --- js/asdf.js | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ js/gallery.js | 33 +++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 js/asdf.js create mode 100644 js/gallery.js (limited to 'js') 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(); +} -- cgit v1.2.3-70-g09d2