CmdUtils.CreateCommand({
name: 'comics.com',
description: (
'Opens all the latest strips on '+
'<a href="http://comics.com">comics.com</a> in a new tab.'),
author: {name: 'satyr', email: 'murky.satyr@gmail.com'},
license: 'MIT',
icon: 'http://assets.comics.com/img/v1/favicon.ico',
argument: CmdUtils.NounType('cmc type', ['Comics', 'Editorials'], '^'),
execute: function cmc_execute(args){
var {proto} = this;
proto._type = args.object.text;
$.ajax(proto);
},
preview: function cmc_preview(pb, args){
pb.innerHTML = this.description.replace(/\bstrips\b/,
args.object.text.bold());
},
url: 'http://comics.com/',
success: function cmca_success(h){
eval(/\bvar CMC\b[^]+?(?=<\/script>)/(h) +'');
var me = this, durl = (
'data:text/html,<!--comics-->'+
(<head><title>{this._type} - {this.name}</title><base
href={this.url} target="_blank"/><link
rel="icon" href={this.icon}/></head>)),
tab = Application.activeWindow.open(Utils.uri(durl));
tab.events.addListener('load', function onload(){
tab.events.removeListener('load', onload);
var doc = tab.document;
for each(let [o] in CMC[me._type]){
$.ajax({
p: doc.body.appendChild(doc.createElement('p')),
url: me.url + o.URL,
title: o.Comic,
desc: o.Description.replace(/<br[^>]*>/g, '\n'),
success: me._set,
error: me.error,
});
}
});
},
error: Utils.log,
_set: function cmc__set(h){
var src = /\bhttp:\/\/assets\.comics\.com\/dyn\/str_\S+?\.full\.gif/(h);
this.p.innerHTML = (
(<a href={this.url} title={this.desc}>{this.title}</a>) +
(<br/>) +
(<img src={src}/>));
},
});