TurboGearsでなんか作ってて、とりあえずテスト用になんかデータをモデルに突っ込んでおきたい場合
で対話的にモデルを操作できるのが便利。あとはtg-admin toolsでcatwarkとか。
単純なモデルの場合はこれで十分だったりするんだけど、ちょっと複雑になるとスクリプトから操作したい。
コネクションの書き方が違うみたいなので、少し悩んだ挙句、
from turbogears import update_config
update_config(configfile="dev.cfg",modulename="myapp.config")
from myapp.model import *
とやるといいらしいことがわかった。普通にSQLObjectだと下のように書くようだ。
from sqlobject import *
connection_string = 'sqlite:///home/kzfm/myapp/devdata.sqlite'
connection = connectionForURI(connection_string)
sqlhub.processConnection = connection
これで、feedparserを使ってRSSをとってきてテストデータを作ってみた。
from turbogears import update_config
update_config(configfile="dev.cfg",modulename="pectin.config")
from pectin.model import *
import feedparser
rss_sites = ['/index.rss10', \
'http://kzfm.vox.com/library/posts/atom.xml']
for rss in rss_sites:
f = feedparser.parse(rss)
newfeed = Feed(url=rss,link=f.feed.link, \
title=f.feed.title,description=f.feed.subtitle)
for e in f.entries:
newentry = Entry(read=False, link=e.link, title=e.title, \
content=e.content[0].value ,feed=newfeed)
hub.commit()
なんかeがエラーキャッチみたいだけどentryってことで。あと、feedparserはatomとかrssとか考えなくてもいいみたいで便利。
ちなみに、今はイントラで使う用にちょっとしたRSSリーダーを作ろうとしている。会社ではfeed on feeds使ってるんだけど、LDRに慣れてしまうと、ストレスが溜まりまくってどうしようもない。せめて、キー操作が欲しいのそれぐらいやれそうな簡易なやつを作ってみることにした。
ではじめて使ったRSSリーダーであるglucoseにちなんでペクチンという名前にしてみた。
ベタすぎ。