TaberarelooのAmazonチェックを拡大写真に対応させる

iyoupapablog:

Taberarelooamazonから写真をポストしようとしても、URLが画像のものになってしまうようです。こういうサイト毎の処理はTomblooから来ている(筈)ので、AmazonのHTMLとextractors.jsの処理を見比べてパッチしてみました。

拡大された写真の要素の親にid="prodImageCell"はいないので、親の要素を修正します。

***** extractors.js
  327:      check : function(ctx){
  328:-       return Extractors.Amazon.preCheck(ctx) && $X('./ancestor::*[@id="prodImageCell"]', ctx.target)[0];
     :+       return Extractors.Amazon.preCheck(ctx) && ($X('./ancestor::*[@id="main-image-relative-container"]',   ctx.target)[0]
     :+         || $X('./ancestor::*[@id="iv-large-image"]', ctx.target)[0]);
  329:      },

こちらはおまけ。製品写真の代替テキストをタイトルに埋め込むのですが、未定義だとundefinedになってしまうのでチェックを追加します。

***** extractors.js
  313:        ctx.href = this.normalizeUrl(ctx.host, this.getAsin(ctx));
  314:-       ctx.title = 'Amazon: ' + $X('id("prodImage")/@alt', ctx.document)[0] + ': ' + ctx.document.title.split(/[::] */).slice(-2).shift();
     :+       var pi = $X('id("prodImage")/@alt', ctx.document)[0];
     :+       pi = (!! pi) ? pi + ': ' : '';
     :+       ctx.title = 'Amazon: ' + pi + ctx.document.title.split(/[::] */).slice(-2).shift();
  315:  

これは製品写真の大きさを変えてしまうので、それを止めます。

***** extractors.js
  340:          width = '';
  341:-         style.height = 'auto';
  342:-         style.width = 'auto';
  343:        }

少し試験運用して、大丈夫そうなら、GitHubでpull requestしてみようかしら。

Prev