Panoramio Widget API

2012年2月29日水曜日

「Just MyStage」が終了します

今日のメールより引用
 Just MyStageでは、2013年3月末日まで無償でご利用いただけるサービスを
 実施して参りましたが、誠に勝手ながら【2012年6月末日】をもちまして
 Just MyStageのサービスを終了させていただき、
 新サービスに移行することになりました。



あと1年ほど使えるはずが、早めの終了になりました。年頭にGoogle App Enginに移行しておいて良かったです。 

2012年2月21日火曜日

金環日食(2012/05/21)

夕方のニュースで言っていたが、日本の大部分の地域で見ることが出来るらしい。残念ながら九州での北限地は熊本よりも南みたい。ちょっと検索して見ると下記のサイトがヒット。福岡では環にはならないものの、結構欠けるみたいだ。欠け始め(6:15)→食の最大(7:25)→欠け終わり(8:45)

天気は晴れの特異日らしいので、見れる可能性は大。観測用のメガネは増産中…

2012年2月19日日曜日

MyPanoV2にユーザーセレクトボックスを追加


ユーザーIDの入力欄の上にプリセットユーザー用のセレクトボックスを追加しました。ユーザーIDは引数で指定も可能なのですが、ちょっと見たい時の為に事前に登録したユーザーの名前で使えるように改造です。と言ってもほとんどPGPシリーズからの転用なので楽勝です。

引数、ブックマークレットとプリセットと起動方法の使い分けが可能です。

WS000024

WS000025

上の画像の様にユーザー名を選ぶと下の入力欄にユーザーIDが入ります。その後はオーダーのラジオボタンを選んでEnterをクリックします。プリセットユーザーは「日本の写真」メンバーから無断借用です。(^_-)-☆

※Javascript単独でコンボボックスが使えるようにならないかな。

2012年2月18日土曜日

MyPanoV2用のブックマークレット

PanoramioのユーザーページもしくはフォトページからMyPanoV2を開くためのブックマークレットです。
昔の日本語フォーラムでどなたかが投稿されたものを一部修正して使ってます。※修正と言っても、単にオープンするファイルのリンクを書き換えているだけです。

オリジナルはどなたが書かれたのか忘れたので検索してみましたが、古い記事はもう読めないようです。
ブックマークレットはgoonfootさんの投稿でした。  元記事へのリンク

javascript:(
function(){
    loc=location;
    if(loc.hostname=='www.panoramio.com'){
        if(loc.pathname.match(/user/)){
            _uid=loc.pathname.match(/user\/(\d+)/)[1];
        }else%20if(loc.pathname.match(/photo/)){
            _uid=document.getElementById('author').getElementsByTagName('a')[0].getAttribute('href').match(/user\/(\d+)\?/)[1];
        }
        if(_uid){
            window.open('http://junk0128-tools.appspot.com/mypanov2/index.html?user='+_uid+'&order=0');
        }
    }
}
)();

コメントを貰った時に、その方のユーザーページを開き、最新の写真や人気上位の写真を見て、コメントを返す時に使うとちょっと便利です。

MyPanoV2の中身

MyPanoV2の内部プログラムを単独使用すると下記の様に人気順の写真を表示することが可能です。
Panoramio Data APIとWidget APIを使っていますが、人気順は面倒なので10位までしか表示しません。


p.s.[2013/02/25]
MyPanoramio Junk0128: MyPanoV2をバージョンアップ」人気順は100枚まで表示に変更

MyPanoV2

MyPanoramioPhotoでは日付順に見ることが出来なくなっているので、日付順で昇順と降順に見ることが出来るようにしてみました。おまけで人気順も10位まで見ることが出来ます。表示形式はPGPシリーズと同じです。

MyPanoV2

オプション指定は次の通り ?user=1597930&order=0

n=0:新しい順、n=1:古い順、n=2:人気順10位まで

p.s.[2013/02/25]
MyPanoramio Junk0128: MyPanoV2をバージョンアップ」人気順は100枚まで表示に変更

2012年2月13日月曜日

SyntaxHighlighter for Windows Live Writer

やっぱり前のがいいのかなと、試して見るとエラーは出るものの使えるようです。wlwのプレビューではハイライトしていませんが、投稿するとちゃんと見えます。貼り付けた後でも再編集可能だし、長い行の折り返し表示も、これの方が見栄えがいい。「ブロックを閉じた状態で表示」も出来るけど、表示行数が指定出来るともっといいな。

エラーは「問題が発生しました:Object reference not set to an instance of an object.
Unexpected Error Occurred An unexpected error has occurred within the application.」
エラーは無視して、「レポートを送信しない」とするとそのまま使える。エラーが出ている時は右のサイドバーのセレクトボックスが空、エラーが出ない時は「XML/HTML」が表示されるみたい。

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>Panoramio Data API</title>
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
<script type="text/javascript" src="js/javascript.js" charset="utf-8"></script>
</head>
<body>
<button id='prev' type='button' tabindex='1' accesskey="P">Prev</button>
<span id='number'>0</span>
<button id='next' type='button' tabindex='2' accesskey="N">Next</button>
<span>Data API test [<a href='http://www.panoramio.com/user/1597930'> junk0128 </a>]</span>
<div id='photos'></div>
<div id='caption'></div>
<div id='copyright'></div>
</body>
</html>




↓これは「ブロックを閉じた状態で表示」の場合です。


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>Panoramio Data API</title>
<meta http-equiv="content-script-type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
<script type="text/javascript" src="js/javascript.js" charset="utf-8"></script>
</head>
<body>
<button id='prev' type='button' tabindex='1' accesskey="P">Prev</button>
<span id='number'>0</span>
<button id='next' type='button' tabindex='2' accesskey="N">Next</button>
<span>Data API test [<a href='http://www.panoramio.com/user/1597930'> junk0128 </a>]</span>
<div id='photos'></div>
<div id='caption'></div>
<div id='copyright'></div>
</body>
</html>

Code Snippet plugin for Windows Live Writer

以前に使っていたのを別のPCに導入したら、エラー発生し原因を調べるのが面倒なので新しいのを探してみました。表題のものにしようかと思ったら、XPマシンではエラー発生で使えない。エラーの内容は「Microsoft.mshtml」が見つからないでした。「Microsoft.mshtml」の機能を使ったアプリが使えないと、ネットで検索するとあちこちのブログにいっぱい書いてあります。

  • 開発環境には入っているが、配布のアプリには同梱されていない。
  • アプリに同梱しようとしたら、7.8MBとでかいので配布しづらい。
  • Windows OfficeやVisual Studioなどがインストールされていれば導入済みで使用可能
  • Microsoft.mshtml.dllを同梱したアプリはいくつかある
  • Microsoft.mshtml.dllをコピーするだけでは駄目で、GAC登録が必要
  • GACってどうやれば出来るの?

GACって何だろうと更に検索して見ると、DOS時代のパスを通してやるみたいにどこからでも参照可能にすることらしい。「GAC登録方法」で検索して下記を見つけた。ファイルをエクスプローラでドロップすれば可能みたい。詳しくは下記を読んでください。

@IT:インサイド .NET Framework [改訂版]第3回 アセンブリのロード:

  1. 「ファイル名を指定して実行」に「%Systemroot%\assembly」を貼り付け
  2. アセンブリの名前を一覧表示する窓が開く
  3. 別窓でエクスプローラを開き、そこから「Microsoft.mshtml.dll」を上記の窓にドラッグ アンド ドロップ

これで使えるようになりました。

   1: <?xml version="1.0" encoding="UTF-8"?>
   2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   3: <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
   4: <head>
   5:     <title>Panoramio Data API</title>
   6:     <meta http-equiv="content-script-type" content="text/javascript" />
   7:     <meta http-equiv="Content-Style-Type" content="text/css" />
   8:     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
   9:     <link rel="stylesheet" type="text/css" href="css/stylesheet.css" />
  10:     <script type="text/javascript" src="js/javascript.js" charset="utf-8"></script>
  11: </head>
  12: <body>
  13:     <button id='prev' type='button' tabindex='1' accesskey="P">Prev</button>
  14:     <span id='number'>0</span>
  15:     <button id='next' type='button' tabindex='2' accesskey="N">Next</button>
  16:     <span>Data API test [<a href='http://www.panoramio.com/user/1597930'> junk0128 </a>]</span>
  17:     <div id='photos'></div>
  18:     <div id='caption'></div>
  19:     <div id='copyright'></div>
  20: </body>
  21: </html>

使えるようにはなったものの、行番号を付けるとソースのコピーがしづらい。前のが良かったかも??

2012年2月12日日曜日

WLW Post Download Plugin

WLWでブログの古い記事を再編集する際に使うと便利なプラグインです。

参照先:How to edit old postings with the WLW

WLWで古い記事を再編集するには下書きや最近登録した記事を開かなければなりません。wlwでは過去50個の記事は割りと簡単に開けるけど、それよりも古いと面倒なのです。そこで使うと便利なプラグインがこれです。修正したい記事をブラウザで開き、ロケーションバーの「http://www.・・・・」の部分を「wlw://www.・・・」と書き換えてやると、その記事をwlwに取り込むことが出来るんです。

手動でも書き換えは出来るのですが、面倒なので下記の様なブックマークレットをブックマークに登録しておくと更に便利に使えます。修正したい記事をブラウザで開いておいて、下記のブックマークを呼び出すだけです。FirefoxとChromeで動作確認しています。※「プログラムを起動」や「外部プロトコルリクエスト」が表示されますが、「ok」なり、「今後は同様に処理する」なりにチェックすればいいです。

javascript:(function(){url=location.href;window.open(url.replace('http','wlw'));})();











image image




p.s.(2012/03/28)

blogspot.comからblogspot.jpへリダイレクトするようになったので、jpをcomに書き換えないと動作しなくなりました。bookmarkletで同時に書き換えれば動作します。


p.s.良く忘れてるのでメモ


wlw本体をアップデートすると、プラグインが使えなくなるので、再インストールしてください。下記の画面でリペアを行えば良いです。WLWDownloader


20140326183500

2012年2月11日土曜日

Panoramio API使用の確認方法

 

  • Panoramio APIを使っているかどうかの判断方法
    確認するサイトで自分の写真を表示させておき、Panoramioでタイトルを書き換える。
    確認するサイトをリロードする。APIを使っているなら、すぐに変更が反映されるはず。
    難点は自分の写真を探すのが面倒なこと。

 

  • viewphoto APIを使用、タイトルはすぐに反映される
  • worldatlaspedia APIを使っていない。タイトルがすぐに変わらない

Googleサイト

junk0128

以前から遊んでいたGoogleサイトにPanoramioのコンテンツを埋め込んでみました。ガジェットを使うと外部サイトをIframeで埋め込むことが可能です。しかし、IE8では下記のセキュリティの警告が出ます。
※httpsのページにhttpのページをIframeで挿入しているため
セキュリティ設定で、「混在したコンテンツを表示する」を有効に変更すればこの警告は出なくなります。もしくは毎回「いいえ」を選んでも表示可能。

WS000070 WS000069

Iframeの挿入は編集画面で「挿入」→「その他のガジェット」で「include gadget」を検索

2012年2月7日火曜日

pgpcwinnersデータ更新(2011/12/01受賞者)

2月3日に発表されたコンテスト入賞作品をデータに追加しました。受賞者の皆様、入賞おめでとうございます。下記で入賞作品を見ることが出来ます。手動モード設定なので、写真の上にマウスポインターを置いて操作してください。

2012年2月1日水曜日

PGP_slideshow.gadgetの移動

去年の8月に作成したので、すっかり忘れてます。本体のアプリをGoogle App Engineに移したので、ガジェットもリンク先を変更しました。どこのファイルを変えるのかが、思い出せなかったのでファイルの構成を記します。このアプリはPanoramioのグループ写真をスライドショーで見せるツールをガジェット化したものです。ツール本体は今年Google App Engineに移動させました。※justmystageのファイルは未だ残してありますが、現時点では来年の3月で契約終了予定です。

  • PGP_slideshow.gadget
    • 1597930.jpg     96 x 96 のアイコン(だるまさん) ガジェットの詳細で使用
    • camera.png     64 x 64 のアイコン(カメラ) ガジェットのアイコン
    • gadget.xml
    • index.html
    • settings.html
    • <js>     javascriptのホルダー
      • index.js
      • settings.js

★最初はgadget.xml

   1: <?xml version="1.0" encoding="utf-8" ?>
   2: <gadget>
   3:     <name>PGP_slideshow</name>
   4:     <namespace>PGP_slideshow.gadgets</namespace>
   5:     <version>1.0.0.3</version>
   6:     <author name="junk0128">
   7:         <info url="http://junk0128-tools.appspot.com/pgp_slideshow/readme.html" />
   8:         <logo src="1597930.jpg" />
   9:     </author>
  10:     <copyright>©2011</copyright>
  11:     <description>This is a program that displays the Panoramio group photos. </description>
  12:     <icons>
  13:         <icon height="48" width="48" src="camera.png" />
  14:     </icons>
  15:     <hosts>
  16:         <host name="sidebar">
  17:             <base type="HTML" apiVersion="1.0.0" src="index.html" />
  18:             <permissions>full</permissions>
  19:             <platform minPlatformVersion="1.0" />
  20:         </host>
  21:     </hosts>
  22: </gadget>


3~11行目はガジェットウインドウでアイコンを選択し、「詳細表示を表示する」クリックで表示されます。13行目はガジェットウインドウでのアイコンです。今回の様にリンク先が変わる時は7行目の修正が必要です。



★index.html 今回は修正不要


★settings.html 今回は修正不要


★settings.js 今回は修正不要


★index.js





   1: /*************************************************************************
   2:  *
   3:  *    Panoramio Group Photos
   4:  *
   5:  ************************************************************************/
   6: var groupId = "";
   7: var defaultId = 6209;
   8: var delay = 10;    // default time [Sec]
   9:  
  10: // Enable the gadget settings functionality. 
  11: System.Gadget.settingsUI = "settings.html";
  12: // Delegate for when the Settings dialog is closed.
  13: System.Gadget.onSettingsClosed = SettingsClosed;
  14: // Delegate for when the Settings dialog is instantiated.
  15: System.Gadget.onShowSettings = SettingsShow;
  16:  
  17: // --------------------------------------------------------------------
  18: // Initialize the gadget.
  19: window.onload = function(){
  20:     groupId = System.Gadget.Settings.readString("groupId");
  21:     if (String(groupId) == "") {
  22:         groupId = defaultId;
  23:     }
  24:     insertFrame(groupId);
  25: }
  26: // --------------------------------------------------------------------
  27: function insertFrame(id){
  28:     var str = '<iframe src="http://junk0128-tools.appspot.com/pgp_slideshow/index.html';
  29:     str += '?group=' + id;
  30:     str += '&auto=ON&width=300&height=244&deley=' + delay + '" ';
  31:     str += 'frameborder="0" width="300" height="250" scrolling="no" marginwidth="0" marginheight="0">';
  32:     pgp_slideshow.innerHTML = str;
  33: }
  34: // --------------------------------------------------------------------
  35: function SetContentText(){    }
  36: // --------------------------------------------------------------------
  37: // Set the text of the gadget based on the user input; 
  38: // execute this function at startup and after settings changes.
  39: // txtGadget = control for displaying user input.
  40: function _SetContentText(strFeedback){    }
  41: // --------------------------------------------------------------------
  42: // Handle the Settings dialog closed event.
  43: // event = System.Gadget.Settings.ClosingEvent argument.
  44: function SettingsClosed(event){
  45:     // User hit OK on the settings page.
  46:     if (event.closeAction == event.Action.commit) {
  47:         groupId = System.Gadget.Settings.readString("groupId");
  48:         if (groupId == "") {
  49:             groupId = defaultId;
  50:         }
  51:     insertFrame(groupId);
  52:     }
  53:     // User hit Cancel on the settings page.
  54:     else if (event.closeAction == event.Action.cancel){
  55:         insertFrame(groupId);
  56:     }
  57: }
  58: // --------------------------------------------------------------------
  59: // Handle the Settings dialog show event.
  60: function SettingsShow(){
  61: //    SetContentText("Settings opening.");
  62: }


28行目のリンク先を変更
var str = '<iframe src="http://junk0128-tools.appspot.com/pgp_slideshow/index.html';



7行目は初期設定のグループ番号を変更するときに変更が必要
var defaultId = 6209;



同様なアプリとして、ユーザー指定のスライドショーとPGPCコンテスト入賞作品のスライドショーがあります。これらはすべて、junk0128-toolsにあります。但しガジェット化のファイルは置いていません。必要な方はPanoramioのPMで連絡をお願いします。但しWindows 7 Pro(64bit)以外での動作確認はしていません。



このガジェットは2012/01/28のMy desktopの動画で見ることが出来ます。