Amazonリンク短縮(クエリ削除)・タグ付与ブックマークレット

## 経緯
- 長大なAmazonリンクがLINEトークを埋めつくした

## 三種類
1. Amazonの__商品ページで押した場合に__余分なクエリを削除（画面遷移）
1. ①に加え、__他サイトで押した場合に__Amazonホームへ移動（画面遷移）
1. ②に加え、__アソシエイトタグ添付の確認__をはさみ、ダイアログでタグ付URLを表示（OKの場合は非遷移）


## コード

##### 1. 商品ページで押した場合に余分なクエリを削除

ブクマ用

```javascript:
javascript:(function(m){m=location.href.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;if(m){window.open('https://amazon.co.jp/dp/'+m[3],'_self');}else{alert('Not available on this page.');}})();
```

全体

```javascript:
javascript:(
  function(m){
    // 今のURLから「/dp/」「/gp/product/」「/gp/aw/d/」「/hz/intuition/」を探し、その後に続く商品ID(10文字)を取得( m[3] )
    m=location.href.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;
    if(m){
      // 商品IDがあった場合：最短URLに結合して画面遷移
      window.open('https://amazon.co.jp/dp/'+m[3],'_self');
    }else{
      // 商品IDがなかった場合：「ここでは使えません」と通知
      alert('Not available on this page.');
    }
  }
)();
```

- - -
##### 2.　他サイトで押した場合にAmazonトップへ移動


ブクマ用

```javascript:
javascript:(function(url,m1,m2){url=location.href;m1=url.match(/^(|w{3}\.|https:\/{2}(w{3}\.)?)amazon\.co\.jp(\/|$)/)??false;m2=url.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;if(m1===false){window.open('https://amazon.co.jp','_self');}else{if(m2){window.open('https://amazon.co.jp/dp/'+m2[3],'_self');}else{alert('Not available on this page.');}}})();
```

全体

```javascript:
javascript:(
  function(url,m1,m2){
    url=location.href;
    // m1: 現在のページがAmazonか否か
    m1=url.match(/^(|w{3}\.|https:\/{2}(w{3}\.)?)amazon\.co\.jp(\/|$)/)??false;
    if(m1===false){
      window.open('https://amazon.co.jp','_self');
    }else{
      // m2: 商品IDを探索
      m2=url.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;
      if(m2){
        window.open('https://amazon.co.jp/dp/'+m2[3],'_self');
      }else{
        alert('Not available on this page.');
      }
    }
  }
)();
```

- - -
##### 3.　タグ付与の確認をはさみ、OKならダイアログでタグ付URLを表示

ブクマ用　　※_「hogemoge-22」(拙タグ)_ の部分を自分のトラッキングIDに修正して下さい

```javascript:
javascript:(function(yourTag,url,m1,m2){yourTag='hogemoge-22';url=location.href;m1=url.match(/^(|w{3}\.|https:\/{2}(w{3}\.)?)amazon\.co\.jp(\/|$)/)??false;if(m1===false){window.open('https://amazon.co.jp','_self');}else{m2=url.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;if(m2){if(confirm('add your tag?')){prompt('The URL is below. Please be careful not to self-purchase.','https://amazon.co.jp/dp/'+m2[3]+'?tag='+yourTag,'_self');}else{window.open('https://amazon.co.jp/dp/'+m2[3],'_self');}}else{alert('Not available on this page.');}}})();
```

全体

```javascript:
javascript:(
  function(yourTag,url,m1,m2){
    yourTag='hogemoge-22';
    url=location.href;
    m1=url.match(/^(|w{3}\.|https:\/{2}(w{3}\.)?)amazon\.co\.jp(\/|$)/)??false;
    if(m1===false){
      window.open('https://amazon.co.jp','_self');
    }else{
      m2=url.match(/\/(dp|hz\/intuition|gp\/(product|aw\/[a-z]))\/(\w{8,12})(\/|\?|$)/)??false;
      if(m2){
        if(confirm('add your tag?')){
          prompt('The URL is below. Please be careful not to self-purchase.','https://amazon.co.jp/dp/'+m2[3]+'?tag='+yourTag,'_self');
        }else{
          window.open('https://amazon.co.jp/dp/'+m2[3],'_self');
        }
      }else{
        alert('Not available on this page.');
      }
    }
  }
)();
```

表示されたURLが自分のIDにきちんと関連付けられているかは、Amazonアソシエイトの[リンク動作確認ツール](https://affiliate.amazon.co.jp/home/tools/linkchecker)で確認してみて下さい（要ログイン）。

:::note warn
自分のタグを付与したAmazonURLにはアクセスしないようご注意下さい
参考：<a href='https://toranosuke.hatenablog.com/entry/2015/10/08/234822'>自己購入を回避する方法</a>
:::

- - -

#### ブックマークレットの利用方法

https://qiita.com/aqril_1132/items/b5f9040ccb8cbc705d04

:::note info
Android版Chromeはブックマークのタップでは動作せず、アドレスバーに「amatan」等の（自分がつけた）ブクマ名を入力し、候補として表示されたものをタップすると動くようです
:::

- - -

もし誤った点や、12文字以上のID、指定したパターン以外の商品ページ等がありましたら、お手数ですがご教示頂ければ幸いです。:santa: