refactoring of data model
This commit is contained in:
@ -2,7 +2,6 @@
|
||||
#coding: utf-8
|
||||
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, Text, DateTime
|
||||
from sqlalchemy.orm import relation, backref
|
||||
from datetime import datetime
|
||||
from time import mktime
|
||||
import pprint
|
||||
@ -14,7 +13,6 @@ class Entry(Base):
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
feed_id = Column(Integer, ForeignKey('feed.id'))
|
||||
feed = relation("Feed", backref=backref('entry'))
|
||||
title = Column(String(255))
|
||||
link = Column(String(255))
|
||||
summary = Column(Text)
|
||||
@ -34,8 +32,14 @@ class Entry(Base):
|
||||
self.update(entry)
|
||||
self.firstfetched = datetime.now()
|
||||
|
||||
def __unicode__(self):
|
||||
return u'%d -> %s' % (self.id, self.title)
|
||||
|
||||
def __str__(self):
|
||||
return unicode(self).encode('utf-8')
|
||||
|
||||
def __repr__(self):
|
||||
return "<Entry('%s','%s','%s')>" % (self.title, "", "")
|
||||
return "<Entry('%d','%s')>" % (self.id, self.title)
|
||||
|
||||
def update(self, entry):
|
||||
if entry.has_key('title'):
|
||||
|
@ -2,9 +2,11 @@
|
||||
#coding: utf-8
|
||||
|
||||
from sqlalchemy import Column, Integer, String, Boolean, Enum
|
||||
from sqlalchemy.orm import relationship, backref
|
||||
|
||||
from models import Base
|
||||
|
||||
|
||||
class Feed(Base):
|
||||
__tablename__ = 'feed'
|
||||
|
||||
@ -19,6 +21,8 @@ class Feed(Base):
|
||||
html2textcontent = Column(Boolean)
|
||||
html2textignoreimages = Column(Boolean)
|
||||
enabled = Column(Boolean)
|
||||
entries = relationship("Entry", backref=backref('feed'), cascade='all, delete, delete-orphan')
|
||||
feedinfo = relationship("Feedinfo", backref=backref('feed'), cascade='all, delete, delete-orphan', uselist=False)
|
||||
|
||||
def __init__(self, url, daily, readability, fullpage, enabled, html2textcontent):
|
||||
self.url = url
|
||||
@ -36,7 +40,7 @@ class Feed(Base):
|
||||
else:
|
||||
title = '<unknown>'
|
||||
last = '<never>'
|
||||
entries = len(self.entry)
|
||||
entries = len(self.entries)
|
||||
url = self.url
|
||||
return u'%3d %s (%d entries, last fetched %s)\n %s' % (id, title, entries, last, url)
|
||||
|
||||
@ -45,3 +49,7 @@ class Feed(Base):
|
||||
|
||||
def __repr__(self):
|
||||
return "<Feed('%d','%s')>" % (self.id, self.url)
|
||||
|
||||
def reset(self):
|
||||
self.entries[:] = []
|
||||
self.feedinfo = None
|
||||
|
@ -2,7 +2,6 @@
|
||||
#coding: utf-8
|
||||
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, DateTime
|
||||
from sqlalchemy.orm import relation, backref
|
||||
from datetime import datetime, timedelta
|
||||
from random import randint
|
||||
|
||||
@ -13,7 +12,6 @@ class Feedinfo(Base):
|
||||
|
||||
id = Column(Integer, primary_key=True)
|
||||
feed_id = Column(Integer, ForeignKey('feed.id'))
|
||||
feed = relation("Feed", backref=backref('feedinfo', uselist=False))
|
||||
title = Column(String(255))
|
||||
link = Column(String(255))
|
||||
subtitle = Column(String(255))
|
||||
|
Reference in New Issue
Block a user