Найти - Пользователи
Полная версия: "Сделай сам" RSS-читалку
Начало » Python для экспертов » "Сделай сам" RSS-читалку
1
cleg
Решил я стало быть для своих нужд, а так же в целях изучаний Пайтона сделать 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
возникает несколько вопросов
1. такая обработка эксепшена как у меня - это приемлемо или это полная кака допускать которйю нельзя? (добиться обработки modified или etag уверенной - я не смог)
2. как лучше обеспечить всему этому “веб-интерфейс” - прикрутить Django/TG или сделать “руками” - найдя шаблонный движок и т.п.
3. в каком формате вообще задается datetime???
cleg
уже переписываю. с удовольствием бы посмотрел исходники, но увы доступа в SVN нету :-(
cleg
j2a
спасибо :/
pythonwin
cleg
from sqlobject import * from datastruct import *
cleg
from sqlobject import *
лучше вместо импортирования всего из пакета sqlobject, лучше напиши
sqlobject.main.SQLObject

##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
dvs
cleg, можно ещё посмотреть исходники feedjack http://www.feedjack.org/download/Feedjack-0.9.9.tar.gz
cleg
pythonwin
import sqlobject ## хотя не понимаю зачем он здесь…
“останки” :-)

pythonwin
from datastruct import * ## это что за модуль?
а это просто первый модуль, в котором структура данных описана :-)

dvs
спасибо :-) видимо “сделай сам” у меня уже не выйдет :-)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB