;var ShaderAPI = {} ShaderAPI.limit = 24 // info - fetch a single shader // id: shader id ShaderAPI.info = function(id, cb){ ShaderAPI.fetch({ f: "info", id: id }, cb) } // all - fetch all shaders ShaderAPI.all = function(cb){ ShaderAPI.fetch({ f: "all" }, cb) } // range - fetch a pageful of results // limit: number of shaders to fetch // offset: number of results to skip ShaderAPI.range = function(limit, offset, cb){ ShaderAPI.fetch({ f: "range", limit: limit || ShaderAPI.limit, last: offset }, cb) } // latest - get the latest N shaders // limit: number of shaders to fetch ShaderAPI.latest = function(limit, cb){ ShaderAPI.fetch({ f: "range", limit: limit || ShaderAPI.limit }, cb) } // page - get a page of N results // page: page number, start counting at 1 // limit: number of shaders to fetch ShaderAPI.page = function(page, limit, cb){ ShaderAPI.fetch({ f: "range", last: (page-1) * limit, limit: limit || ShaderAPI.limit }, cb) } // history - get all previous versions of a shader // id: shader id ShaderAPI.history = function(id, cb){ ShaderAPI.fetch({ f: "history", id: id }, cb) } // username - get all ids by a user ShaderAPI.username = function(username, cb){ ShaderAPI.fetch({ f: "username", username: username }, cb) } // list_users - list all users ShaderAPI.list_users = function(list_users, cb){ ShaderAPI.fetch({ f: "list_users" }, cb) } // originals - get the earliest version of all named shaders ShaderAPI.originals = function(cb){ ShaderAPI.fetch({ f: "originals" }, cb) } // fetch - AJAX wrapper ShaderAPI.fetch = function(params, cb){ $.ajax({ url: "http://asdf.us/cgi-bin/im/shader/view", data: params, dataType: "jsonp", success: function(data){ if (data.SUCCESS) { cb(null, data.data) } else if (data.ERROR) { cb(data.ERROR, data.data) } } }) }