本文作為開發過程中的點滴記錄...
- Google Data API 的版號設定很奇怪:在檔案名稱部份只編到 1.0/2.0/3.0 ,但實際上的版本設定已經到了 1.38 了。這種怪異的版本設定方式導致 Maven 很難對 GData API 的 jar 檔進行版號管理,除非在建立檔案庫時將版本號改成 xxxx-1.0-1.38.jar 這類格式。
- 原本的 SnipSnap 及 WordPress 這兩個 Blogger 系統都會在 RSS 檔中加入一個 <content:encoded /> 元素,但是 Blogger 只有 <description /> 元素。檢視的結果發現部份 BSP 會使用 <description /> 元素放置文章摘要,而 <content:encoded /> 則放置完整內文。
- 順手查了一下各 BSP 的 RSS 檔,Pixnet、Yam 有提供 <content:encoded /> 元素,Wretch 則沒有。另外補充一點是 Wretch 還特地封鎖掉諸如 wget 這類工具讀取 RSS 檔的資格,有點莫名其妙。
- 在設定文章的發表時間時是使用 Entry.setPublished() 這個 method,不過當用來匯入 Blogger 的 RSS 檔時會出現這麼個訊息,但問題是所傳入的日期資訊好歹也是用 GData API 內的工具去 parse 的,結果自己吐出來的東西又不吃?只能說 GData API 真偏食...
Entry.published must have a timezone.
- 後來,我自行填入 TimeZone Offset 值為 0 終於通過前述考驗,不過當文章發佈出來後卻發現,時間一整個莫名其妙的不對... 發佈時間從本來的 +00:00 變成 -07:00 了... 莫名其妙嘛...
- 我已針對漏失 TimeZone 資訊的部份發起了一份 issue ,希望能快點確定是否為 bug !
特殊控制:因為懶的另外處理設定檔,所以某些設定可以掛在 RSS 檔內
- 草稿模式:預設匯入文章時會統一指定成草稿模式,不過如果患心有室肥大症,心臟比較大顆的人,可以在 RSS 檔中加入以下設定。如果是放在 channel 區段中屬於全域設定,放在 item 區段中則限該 item 有效。
<draft>false</draft>
- 替換作業:原本是規劃將不需要、不正確的圖形刪除,但後續為方便處理表情符號所需,改成可執行替換方式辦理。共有三種設定型態:
- <pattern>
<regex><![CDATA[source string]]></regex>
<replacement><![CDATA[replacement string]]></replacement>
</pattern> - <pattern>
<regex><![CDATA[source string]]></regex>
</pattern> - <pattern><![CDATA[source string]]></pattern>
- <pattern>
- 待處理連結:主要是因應連結不正確的情形,此時一律會設定成草稿模式以利後續處理。
<forceDraft><pattern><![CDATA[<img src="http://blog.adahsu.net/ada/[^>]*>]]></pattern></forceDraft>
逆境:基本上 RSS2Blogger 相關功能似乎已備妥,問題是偉大的 Google Data API 有每天 50 筆的限制。而且這個 50 筆限制的解除得等 24 小時候才能解除,等於每 50 篇約需花上 24.5 小時。這表示要把 13xx 筆一般文章搬到 Blogger 就要花上 54 天以上的時間...
有沒有 Blogger 討厭人家把 Blog 搬進 blogspot.com 的八卦啊?