satyr (owner)

Revisions

gist: 163600 Download_button fork
public
Description:
Opens all the latest strips on http://comics.com in a new tab.
Public Clone URL: git://gist.github.com/163600.git
Embed All Files: show embed
comics.com.ubiq.js #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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}/>));
  },
});