refactored so the data model lives in its own module
This commit is contained in:
79
models/entry.py
Normal file
79
models/entry.py
Normal file
@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env python
|
||||
#coding: utf-8
|
||||
|
||||
#from sqlalchemy import create_engine, Table, Column, Integer, Text, String, Boolean, DateTime, MetaData, ForeignKey, desc
|
||||
from sqlalchemy import Column, Integer, ForeignKey, String, Text, DateTime
|
||||
#from sqlalchemy.orm import sessionmaker, relation, backref
|
||||
from sqlalchemy.orm import relation, backref
|
||||
#from sqlalchemy.ext.declarative import declarative_base
|
||||
#from datetime import datetime, timedelta
|
||||
from datetime import datetime
|
||||
from time import mktime
|
||||
#import feedparser
|
||||
#import re
|
||||
#import sys
|
||||
#import urllib
|
||||
#import urllib2
|
||||
#import hn
|
||||
#import html2text
|
||||
#import ConfigParser
|
||||
#import pprint
|
||||
#from optparse import OptionParser
|
||||
#from cStringIO import StringIO
|
||||
#from email.mime.multipart import MIMEMultipart
|
||||
#from email.mime.text import MIMEText
|
||||
#from email.header import Header
|
||||
#from email import Charset
|
||||
#from email.generator import Generator
|
||||
#import smtplib
|
||||
|
||||
from models import Base
|
||||
|
||||
class Entry(Base):
|
||||
__tablename__ = 'entry'
|
||||
|
||||
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)
|
||||
content = Column(Text)
|
||||
author = Column(String(255))
|
||||
enclosures = Column(Text)
|
||||
|
||||
resolvedlink = Column(String(255))
|
||||
fullpage = Column(Text)
|
||||
readability = Column(Text)
|
||||
updated = Column(DateTime)
|
||||
firstfetched = Column(DateTime)
|
||||
lastfetched = Column(DateTime)
|
||||
sent = Column(DateTime)
|
||||
|
||||
def __init__(self, entry):
|
||||
self.update(entry)
|
||||
self.firstfetched = datetime.now()
|
||||
|
||||
def __repr__(self):
|
||||
return "<Entry('%s','%s','%s')>" % (self.title, "", "")
|
||||
|
||||
def update(self, entry):
|
||||
if entry.has_key('title'):
|
||||
self.title = entry.get('title')
|
||||
if entry.has_key('link'):
|
||||
self.link = entry.get('link')
|
||||
if entry.has_key('summary'):
|
||||
self.summary = entry.get('summary')
|
||||
if entry.has_key('content'):
|
||||
self.content = entry.get('content')[0].value
|
||||
if entry.has_key('author'):
|
||||
self.author = entry.get('author')
|
||||
if entry.has_key('updated_parsed'):
|
||||
updated_parsed = entry.get('updated_parsed')
|
||||
self.updated = datetime.fromtimestamp(mktime(updated_parsed))
|
||||
if entry.has_key('enclosures') and len(entry.get('enclosures')) > 0:
|
||||
print 'enclosures';
|
||||
pp=pprint.PrettyPrinter(depth=4)
|
||||
pp.pprint(entry.get('enclosures'))
|
||||
#self.enclosures = entry.get('enclosures')
|
||||
self.lastfetched = datetime.now()
|
Reference in New Issue
Block a user