cmd

  • OpnePNEにはCMD(小窓)という便利な機能があり、小窓が用意されているサイトであれば、そのURLを日記等に記載するだけで、自動的に画像やサービス、動画が埋め込まれたりする。(Google Map、YouTube、Amazon、kakaku.com、等々)

    最近ではオンラインサービスであるflickrを利用している人も増えているので、flickr用に小窓(cmd)を使いたいという案件や、作りたい場面があるはず。
    小窓の作成は一定のルールさえ分かっていれば、簡単に小窓を作ることが出来る。

    flickrの画像URLには、登録者や状況により
    http://farm1.static.flickr.com
    http://farm2.static.flickr.com
    http://farm3.static.flickr.com
    http://farm4.static.flickr.com
    と4種類で始まっている

    flickr用の小窓を作る場合の問題点は、OpnePNEのCMD(小窓)がサブドメインのワイルドカードに対応していないこと。
    つまり作成するJavascriptは、それぞれ決め打ちのファイル名であることが必要条件となる。

    つまり、上記4つのサブドメインに対応するCMD(小窓)を用意したければ、4つのJavascriptをcmdフォルダに入れておく必要がある。

    farm1.static.flickr.com.js
    farm2.static.flickr.com.js
    farm3.static.flickr.com.js
    farm4.static.flickr.com.js

    一見無駄なようだが、ワイドルカードで探させるよりサーバー負荷を考えると効率的でもある。

    それぞれのサーバー(farm1、farm2、farm3、farm4)用にスクリプトを書いてもいいが、
    今後サブドメインが追加された際に、ファイル名だけ変えてコピーできるようにスクリプトを作っておくと便利。

    そのまま使えるサンプルスクリプトはこれ

    ———————————————————————

    function url2cmd(url){
       var static_flickr_com = url.match(/^http:€/€/farm([0-9]+)€.static€.flickr€.com€/([0-9]+)€/([a-z0-9_]+)€.(jpg|jpeg|png|gif)/);
       if(static_flickr_com){
          var pid1 = RegExp.$1;
          var pid2 = RegExp.$2;
          var pid3 = RegExp.$3;
          var pid4 = RegExp.$4;
          main(pid1,pid2,pid3,pid4);
       }else{
          pne_url2a(url);
       }
    }
    function main(pid1,pid2,pid3,pid4){
       var html = ‘<img src=”http://farm’ + pid1 + ‘.static.flickr.com/’ + pid2 + ‘/’ + pid3 + ‘.’ + pid4 + ‘”>’;
       document.write(html);
    }

    ———————————————————————

    念のため、画像ファイル名をjpg、jpeg、png、gifの4種類に限定しているが、flickr.comを信頼して簡略化しても構わない。

    上記スクリプトを
    farm1.static.flickr.com.js
    farm2.static.flickr.com.js
    farm3.static.flickr.com.js
    farm4.static.flickr.com.js
    の名前でそれぞれ作成し、cmdフォルダにアップする。

    これでflickr.comに対応したCMD(小窓)となる。