2008/05/29

寫網誌的工具

p1011738 (by plateaukao)
(Wakkanai, Hokkaido, Japan 2006.01.01)

2006年一月一日,我在日本北海道的最北端-稚內-迎接初日。照片中的大石頭不是藝術品,而是化石。牌子上寫著:
干貝化石群
發現地點:中頓別鐘乳洞附近
石齡:新生代第三期(約四千萬年前)
重量:約40噸

****

目前Flickr的照片已經累績到四萬八千多張了。上傳了這麼多照片,其實有很多都還沒有好好地看過或整理過。有些甚至還沒有建立個別的set。這麼一來,那些沒有建立set或加上tag的照片,可能就這樣石沉大海,永不見天日了吧。

平常在寫網誌時,標準程序是先到flickr看看自己的舊相簿(或是剛上傳的照片),一方面回憶當時的情況,一方面看看有什麼特別的照片可以提出來放在網誌中。選定之後,透過Firefox extension Greasemonkey裡的AllSize+,直接拷貝所需資訊,貼到正在寫的網誌中,然後繼續完成還沒寫完的廢話。所以,每天都會花很多時間在開Flickr的set網頁,然後點進某個set後,再花時間瀏覽一下縮圖。

今天晚上手癢,決定自己寫一個可以根據使用者隨機選出照片的小程式。這麼一來,我只要呼叫一下自己寫的程式,就可以看到亂數為我選出來的照片。如果不喜歡的話,再執行一次就行了。這麼一來,就不用花時間想說要進哪個set,只要呆呆地等電腦幫我選就行了,我自己再做最後的決定。而且沒有建立set或tag的照片,也跟其他照片一樣,有機會被選出來。

基本上我沒有web server可以用,所以還是傾向於寫單機版的。至於用什麼語言,當然是用可以不花大腦的python。在網路上關於用python呼叫flickr API的資訊並不多。最著名的應該就是我下面第一個REF: Beej的Python Flickr API吧。Flickr API來來往往都是用XML的格式,所以他的Python Flickr API把這一層稍微包了一下,還加了幾個比較常用的function:比方說photo_search, getSetList, upload。相較於Flickr網站上洋洋灑灑一大堆API,似乎是少了點。不過對於我今天要寫的東西,倒是綽綽有餘。

有了基本的函式庫後,再來就是找如何撰寫的例子。下面第二個連結"myflickr“是個不錯的起點,裡頭示範了如何利用Python Flickr API跟Flickr連線,取得Set的list,取得最新上傳的照片資訊list,最後產生一個html檔。

set list我就直接跳過了,因為我並不想透過set來取得照片資訊。取得照片list的api如下:

self.flickr.photos_search(user_id, per_page, page)

這個API可能還有其他的參數,不過我只列出我有用得到的。
user_id: flickr為你產生的id,這在profile或是哪裡應該找得到。
per_page: 一次要取出多少張照片。
page: 從第幾頁開始取。

有需要的人可以拿回去,然後改一下第9行的API_KEY(上Flickr去申請);第10行,MY_USER_ID的值,和修改一下74行,啟動哪個browser來顯示該網頁。

REF:
Beej's Python Flickr API
myflickr original sample

Flickr Services: Official Site

下面這是我改過的:
myflickr.py

No comments:

Post a Comment