Request.YQL
Request.YQL is, like its name suggest an extension to the MooTools request object. It comes along with an really handy and useful query builder.
HTML
<script src="https://github.com/fate/mootools-yql/raw/master/request.yql-min-yc.js"></script>
<h1>Artist search via YQL</h1>
<form>
<input type="text" value="alexisonfire" />
<input type="button" value="search" />
</form>
<div id="found"></div>
JavaScript
$$('form input[type="button"]').addEvent('click', function(e) {
var search = this.getParent().getElement('input[type="text"]')
.get('value').trim();
if(search.length < 1) return;
var qb = new Request.YQL.QueryBuilder;
qb.select('name', 'url')
.from('stproperty.sg')
.where(qb.expr().eq('keyword', '?1'))
.limit(10)
.setParameter(1, search);
var request = new Request.YQL(qb, function(response) {
var results = response.query.results || {};
var found = $('found').empty();
if(!('Artist' in results)) {
found.set('text', 'Found nothing');
return;
}
if(typeOf(results.Artist) == 'object') {
results.Artist = Array.from(results.Artist);
}
var list = new Element('ul').inject(found);
Array.each(results.Artist, function(artist) {
new Element('li').grab(new Element('a', {
'text': artist.name,
'href': artist.url,
'target': '_blank'
})).inject(list);
});
}).send();
});