Форум сайта python.su
Решил я стало быть для своих нужд, а так же в целях изучаний Пайтона сделать RSS-читалку.
Заодно и с библиотеками разберусь, и делу опять-таки польза.
От сначала что за 3 часа разборок с либами вышло.
структура данных:
from sqlobject import *
from datetime import datetime
sqlhub.processConnection = connectionForURI('sqlite:/C|/projects/test.sqldb')
class FeedsList(SQLObject):
feed_name = StringCol()
feed_url = StringCol()
lastmod = DateTimeCol()
class FeedEntry(SQLObject):
feed_id = ForeignKey('FeedsList')
post_title=UnicodeCol()
post_summary = UnicodeCol()
post_url = UnicodeCol(unique=True)
post_date = DateTimeCol(default=datetime.now())
if __name__== "__main__":
FeedsList.createTable(ifNotExists = True)
FeedEntry.createTable(ifNotExists = True)
import feedparser
from sqlobject import *
from datastruct import *
from datetime import datetime
from pysqlite2.dbapi2 import IntegrityError
for feed in FeedsList.select():
my_pars = feedparser.parse(feed.feed_url)
print feed.feed_name
count = 0
for entry in my_pars.entries:
try:
FeedEntry(feed_id=feed.id, post_title=entry.title,
post_summary=entry.description, post_url=entry.link)
count = count + 1
except IntegrityError:
pass
print count
Офлайн
уже переписываю. с удовольствием бы посмотрел исходники, но увы доступа в SVN нету :-(
Офлайн
Офлайн
j2a
спасибо :/
Офлайн
cleg
from sqlobject import * from datastruct import *
clegлучше вместо импортирования всего из пакета sqlobject, лучше напиши
from sqlobject import *
##from sqlobject import * ##from sqlobject.col import BLOBCol, UnicodeCol, IntCol, TimeCol, DateTimeCol, ForeignKey, StringCol, PickleCol import sqlobject from datetime import datetime sqlhub.processConnection = connectionForURI('sqlite:/C|/projects/test.sqldb') class FeedsList(sqlobject.main.SQLObject): feed_name = sqlobject.col.StringCol() feed_url = sqlobject.col.StringCol() lastmod = sqlobject.col.DateTimeCol() class FeedEntry(sqlobject.main.SQLObject): feed_id = sqlobject.col.ForeignKey('FeedsList') post_title=sqlobject.col.UnicodeCol() post_summary = sqlobject.col.UnicodeCol() post_url = sqlobject.col.UnicodeCol(unique=True) post_date = sqlobject.col.DateTimeCol(default=datetime.now()) if __name__== "__main__": FeedsList.createTable(ifNotExists = True) FeedEntry.createTable(ifNotExists = True) import feedparser ##from sqlobject import * import sqlobject ## хотя не понимаю зачем он здесь... from datastruct import * ## это что за модуль? from datetime import datetime from pysqlite2.dbapi2 import IntegrityError for feed in FeedsList.select(): my_pars = feedparser.parse(feed.feed_url) print feed.feed_name count = 0 for entry in my_pars.entries: try: FeedEntry(feed_id=feed.id, post_title=entry.title, post_summary=entry.description, post_url=entry.link) count = count + 1 except IntegrityError: pass print count
Офлайн
cleg, можно ещё посмотреть исходники feedjack http://www.feedjack.org/download/Feedjack-0.9.9.tar.gz
Офлайн
pythonwin“останки” :-)
import sqlobject ## хотя не понимаю зачем он здесь…
pythonwinа это просто первый модуль, в котором структура данных описана :-)
from datastruct import * ## это что за модуль?
Офлайн