Pyon's Diary
成る可くJIS X 0213:2004對應MSフォント(5.0)、IPAフォント(003.02)で御覽下さい
2006-11-18 舊 平成拾捌年長月廿捌日 (土・晴) [長年日記]
TOP 頁を模樣替へした。
今迄 TOP 頁に載せてゐたブックマークリストは手で更新してゐたのだが、其れではとても面倒臭いので del.icio.us に登録して有るものを引いて來る樣に變更した。
只ブックマークを持つて來るだけでは詰まら無いので、フォームで選擇したタグに紐附けられたブックマークだけを持つて來る樣にした。然し JavaScript では別サイトのデータを取得する事は出來無いので、間に CGI スクリプトを一枚咬ませて以下の樣な構成にした。
TOP 頁 -> mydelicious.js -> mydelicious.py -> del.icio.us
mydelicious.js は prototype.js (1.4.0) を利用して、select フォームで選擇する度に mydelicious.py にリクエストを發行し、mydelicious.py から JSON 形式で戻つて來たデータを解析して ol リストで表示する。
mydelicious.py は mydelicious.js からリクエストを受取つて、指定されたタグに紐附けられたブックマークを delicious.py (0.2.5) を利用して取得し、其れを JSON 形式に變換して mydelicious.js に返す。
處で以前に del.icio.us API が變更された所爲で delicious.py (0.2.5) が動か無かつたので、以下の樣に修正した。
@@ -81,7 +81,7 @@
dws_hostname = 'http://del.icio.us/'
dws_realm = 'del.icio.us API'
-dws_api = 'http://del.icio.us/api/'
+dws_api = 'https://api.del.icio.us/v1/'
user_agent = 'delicious.py/%(version)s %(contact)s' % {'version':version, 'contact':contact}
limittime = dict(calls = 1, time = 1)
@@ -148,8 +148,9 @@
if 1: print "TIMELIMIT BLOCKED"
self.timel.pop(0)
if debug: httplib.HTTPConnection.debuglevel = 1
- authinfo = urllib2.HTTPBasicAuthHandler()
- authinfo.add_password(dws_realm, dws_hostname, self.user, self.passwd)
+ pwmgr = urllib2.HTTPPasswordMgr()
+ pwmgr.add_password(dws_realm, dws_api, self.user, self.passwd)
+ authinfo = urllib2.HTTPBasicAuthHandler(pwmgr)
opener = urllib2.build_opener(authinfo, DefaultErrorHandler())
request = urllib2.Request(dws_api + request_url + params)
if use_request_url_as_is: request = urllib2.Request(request_url)
可成り重いけど、其れは次の課題とする。
參考頁。
- 11.5 urllib2 -- URL を開くための擴張可能なライブラリ -- delicious.py 0.2.3 で Baisc Authorization でエラーが出たので其れを解決する爲。
- del.icio.us/help/api -- del.icio.us API の使ひ方を知る爲。
- delicious.py 0.2.3
- prototype.js v1.4.0 の使ひ方 -- prototype.js, Ajax.Request の使ひ方を知る爲。
- 第二章 JavaScript 凾數の基本を知る -- JavaScript でメソッド(凾數)のオーバーロードをする方法を知る爲。
- HTML 辭典 -- onchange 屬性 -- select フォームで選擇値を變更した時にイベントを發生させる方法を知る爲。
追記。
IE で覧たら select フォームに option タグがきちんと設定されてゐ無かつた。どうしたものかと検索したら Micorsoft のサイトに解決方法が載つてゐたので其れを参考に修正したら、IE, Firefox の両方で上手く行つた。
[ツッコミを入れる]
[]