コマネタ帳(旧) by iyoupapa

PCや土いじりやゲームやオモチャ、思いつくまま細切れネタを書き散らかす日記

Creative Commons Licenseiyoupapaが書いたコマネタ帳の文章は「Creative Commons 表示-継承 2.1 日本」ライセンスです。写真については私のFlickrで配布しています。新しい「コマネタ帳」に移転しました。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[プログラミング]TomblooでFlickrのCC情報をつけてポストする

2009/09/19 追記

[プログラミング]TomblooでdeviantARTからCC情報を付けてポストする | コマネタ帳」もご覧ください。

LDR+TomblooでTumblrしているんですが、せっかくCreative Commonsな画像をポストしても適切な情報が付加されないという勿体ない状態に。とりあえず、Flickrからのポストの時はCCライセンスの情報をAPIでもらってクレジットをつけてみるようにしました。せっかくなのでソースを晒しておきますが、ほとんどテストしていませんのでご注意ください。

まずは本体ファイル。tombloo/scriptフォルダに保存します。ファイル名はとりあえずFlickr.cc.jsにしています。本当はID番号とURIの関係は別のAPIで取得するべきなんですがサボってます、すみません。

addAround(
  Tombloo.Service.extractors['Photo - Flickr'], 'extract',
  function(proceed, args, target, methodName) {
    return proceed(args).addCallback(function(ps){
      switch (ps.license) {
      case '1':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/">CC-BY-NC-SA</a>.'
        break;
      case '2':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by-nc/2.0/">CC-BY-NC</a>.'
        break;
      case '3':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by-nc-nd/2.0/">CC-BY-NC-ND</a>.'
        break;
      case '4':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by/2.0/">CC-BY</a>.'
        break;
      case '5':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>.'
        break;
      case '6':
        var dd = ps.date.split('-');
        ps.description = '(c) ' + dd[0] + ' <a href="' + ps.authorUrl + '">' + ps.author + '</a>'
        + ' Licensed under <a href="http://creativecommons.org/licenses/by-nd/2.0/">CC-BY-ND</a>.'
        break;
      }
      return ps;
    });
});

次に31_Tombloo.Service.extractors.jsを変更します。Tomblooを更新すると変更が上書きされるので避けたいのですが、この中で呼んでるgetInfo APIでライセンス情報が取れるので、とりあえずこちらを変更しました。いっそextractメソッド丸ごとFlickr.cc.jsに持ってくればいいのかな?

  {
    name : 'Photo - Flickr',
    ICON : models.Flickr.ICON,
    // 中略

    extract : function(ctx){
      var id = this.getImageId(ctx);
      return new DeferredHash({
        'info'  : Flickr.getInfo(id),
        'sizes' : Flickr.getSizes(id),
      }).addCallback(function(r){
        if(!r.info[0])
          throw new Error(r.info[1].message);
        
        var info = r.info[1];
        var sizes = r.sizes[1];
        
        var title = info.title._content;
        ctx.title = title + ' on Flickr'
        ctx.href  = info.urls.url[0]._content;
        
        return {
          type      : 'photo',
          item      : title,
          itemUrl   : sizes.pop().source,
          author    : info.owner.username,
          authorUrl : ctx.href.extract('^(http://.*?flickr.com/photos/.+?/)'),
          favorite  : {
            name : 'Flickr',
            id   : id,
          },
          // ここから追加
          license   : info.license,
          date      : info.dates.taken,
          // ここまで追加
        }
      });
    },
  },

これでFlickrからポストすると、Descriptionに例えば「(c) 2008 iyoupapa Licensed under CC-BY-SA.」といった文字列が自動で設定されます。表記としてこれで正しいのか、全く自信がないのですが何もないよりいいんじゃないかな。

できればrel="license"とかRDFを認識した方が適用範囲は広くなるんですが、意外と機械的に適用できない(一部分だけに適用、とかReblogは除く、とか)ケースが見受けられるので、比較的確実なFlickrに絞ってみました。RDFの適用範囲とか調べないとダメですね。

あとは過去のポストのライセンスを確認して、CC情報をつけるか削除(orプライベート)するかしないと…手作業じゃ無理なんでなんか作るしかないですね。そこまでするならTumblrヤメレってのは無しの方向で。

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://iyouneta.blog49.fc2.com/tb.php/348-2dabfc99

skin presented by myhurt : BLOG | SKIN

FC2Ad

  
copyright © 2005 コマネタ帳(旧) some rights reserved. Powered by FC2ブログ