花了點時間, 弄了個 MyBlogLog 的 cache, 測了一天, 看來還可以, 當然還有很大的改善空間. 其實我對 perl 不熟, 所以程式的完整性應該是不怎麼樣 ... 不過至少已經可以 work 了 ^_^
稱為半手工版的原因是, 因為很多東西還是得手工處理, 請原諒這個星期天還得加班的師程工, 最近沒有很多時間玩這些.
環境需求:
- Perl, 版本需求不知, 我是用 5.8.8
- wget, 版本需求不知, 我是用 1.10.2
- UNIX: 我是在 Linux 上寫的, 搬到別的系統的話不知道會怎樣, 目前還沒測試過
安裝步驟 (for Perl 程式):
- 下載 mybloglog.pl 並存放到某個目錄.
- 修改 mybloglog.pl, 有 5 個變數要指定:
* 指定 $cache_dir: 這個目錄是用來存放 download 下來的 avatar 以及產生的 mybloglog.php 的目錄. 請指定一個從根目錄開始的絕對路徑.
* 指定 $www_dir: 這個目錄是在 web server 上要存取 $cache_dir 的路徑, 請指定一個從 Apache 的 DocumentRoot 開始的相對目錄路徑.
* 指定 $mblID: 這個是你在 MyBlogLog 上的 ID, 長得類似 2007022422374540.
* 指定 $www_dir: 這個目錄是在 web server 上要存取 $cache_dir 的路徑.
* 指定 $c_rows: 這個是 avatar 的個數, 最大是 10, 目前會少一個, 請看後面已知問題
- 設定 cronjob 自動執行該 perl 程式
安裝步驟 (for Blog 系統):
- 修改 theme, 第一行請自行修改路徑, 重點就是要把上面 perl 產生的 mybloglog.php 給 include 進來. 第二行則是 MyBlogLog 提供的 track 程式碼.
<?php include("/....../mybloglog.php"); ?>
<script type='text/javascript' src='http://track3.mybloglog.com/js/jsserv.php?mblID=2007************'>
</script>
已知問題:
- 因為沒有 cookie 的關係, 抓到的 avatar 會少一個. 目前我是直接在程式裡跳過第一個抓到的 avatar. wget 可以帶 cookie, 會在後續版本加上去.
- 抓下來的圖檔不會刪除, 因此會愈放愈多 (其實我在 63,64 行有放 rm 指令, 只是怕出問題刪錯了, 所以 remark 起來, 需要的可以自己打開)
- Hide 的功能目前沒有實做, 目前也沒有計畫做 (因為還沒有概念怎麼弄那個 javascript)
- 我是在 Linux 平台上測試, 沒有在 Windows 上測過, 不確定會有什麼問題, 目前想到的是, /tmp 在 windows 上不能用吧.
- ...... 應該還有很多我沒注意到的問題吧 ......
Demo:
請看本頁右下角的 MyBlogLog
下載:
Please click here to download MyBlogLog Cache 0.1
[download#2#image#nohits]
其他:
- 除了 CoolCode 外, 有沒有別的好用的, 可以用來顯示 source code 的 plugin ? 因為發現程式碼太長在 IE6 會亂掉.
- 不知道 Perl 有沒有內建類似 wget 的 package? 如果有的話, 就不用呼叫 wget 了
- Perl 該如何檢查檔案是否已經存在, 如果有的話, 若檔案已經存在, 就可以不用重複 download 了. (當然, 還是得定期重抓, 免得沒更新到)
- 在 Perl 裡面, 路徑的處理, 對於 UNIX 和 Winodws 是否有不同?
回應
[部落格加速]
[部落格加速] 優化MyBlogLog 最新進度 - 0.2版釋出...
丹尼老大在今天發表了 MyBlogLog Cache 0.2
這次的更新版本讓使用上的便利性提高了.....