del.icio.us からはてなブックマークへミラー
こちらのスクリプトを利用して del.icio.us のエントリーをはてなブックマークにミラーリングさせてみた。500エントリー以上あるために最初のミラーリングの途中でどちらかのサーバとコネクションに失敗してしまう。そこで、日付範囲を指定してミラーリングできるようにちょっとスクリプトをいじってみた。python は触ったことなかったけど、ちょっと面白いな。
はてなブックマークは del.icio.us よりもサーバが安定しているのでバックアップと、はてなブックマーク界隈の人のウォッチング用。機能的にはまだまだどちらも発展途上だけど、del.icio.us の方がまだ魅力的。
以下、スクリプトの変更箇所。mode を range にする。その場しのぎの Hack であれだけど、このスクリプトでは20日前のポストから100日前のポストまでを登録するようになっている。
def postHatenaBookmark(self,mode='lastday',commentType='extended'): """ postHatenaBookmark(mode,commentType) mode:インポートするdel.icio.usのブックマークを登録した期間 all--すべてのdel.icio.usのブックマークをはてなブックマークにインポート それ以外 -- 前日に登録したdel.icio.usのブックマークをはてなブックマークにインポート commentType:コメントのタイプ tag_extend -- [tag1][tag2]....+コメント tag -- [tag1][tag2].... それ以外--- コメント """ if mode == 'all': posts = self.posts_all() elif mode == 'lastday': posts = self.getYesterdayData() if mode == 'range': for i in range(20, 100): date = datetime.date.today() td = datetime.timedelta(i) date = date - td; print "i, date = %d, %s\n" % (i, date.strftime("%Y%m%d")) posts = self.posts_get(date.strftime("%Y%m%d")); self.post(posts, commentType) else: self.post(posts, commentType) def post(self, posts, commentType): for post in posts: #コメントをcommmentType別に取得 if commentType == 'tag_extended': #タグ+コメント comment = "[%s] %s" % (']['.join(post['tags'].split()),post['extended']) elif commentType == 'tag': #タグのみ comment = "[%s]" % ']['.join(post['tags'].split()) else: #コメントのみ comment = post['extended'] url = post['url'].encode('utf-8') if DEBUG: print "comment:%s\nurl: %s" % (comment,url) print hatenaBookmark.postData(url,comment.encode('utf-8'))