首页 > 弄了一个新闻阅读器可是无法运行,python3.3报错但是不提示错在哪,求解

弄了一个新闻阅读器可是无法运行,python3.3报错但是不提示错在哪,求解

>>from nntplib import NNTP
from time import strftime,time,localtime
from email import message_from_string
from urllib.request import urlopen
import textwrap
import re
day=24*60*60
def wrap(string,max=70):
    return '\n'.join(textwrap.wrap(string))+'\n'
class NewsAgent:
    def _init_(self):
	self.sources = []
	self.destinations = []
    def addSource(self,source):
	self.sourcess.append(source)
    def addDestination(self,dest):
        self.destinations.append(dest)
    def distribute(self):
        items = []
        for source in self.sources:
            items.extend(source.getItems())
        for dest in self.destinations:
            dest.receiveItems(item)
class NewsItem:
    def _init_(self,title,body):
        self.title = title
        self.body = body
class NNTPSource
    def _init_(self,servername,group,window);
        self.servername = servername
        self.group = group
        self.window = window
    def getItems(self)
        start = local(time() - self.window*day)
        date = strftime('%y%m%d',start)
        hour = strftime('%H%M%S',start)

        server = NNTP(self.servername)

        ids = server.newnews(self.group,date,hour)[1]

        for id in ids:
            lines = server.article(id)[3]
            message = massage_from_string('\n'.join(lines))

            titile = message['subject']
            body = message.get_payload()
            if message.is_multipart():
                body = body[0]

            yield NewsItem(title,body)
        server.quit()
class SimpleWebSource
    def _init_(self,url,titilePattern,bodyPattern):
         self.url = url
        self.titlePattern = re.compile(titlePattern)
        self.bodypattern = re.compile(body)
    def getItems(self):
        text = urlopen(self.url).read()
        titles = self.titilePattern.findall(text)
        bodies = self.bodyPattern.findall(text)
        for title,body in zip(titles,bodies):
            yield NewsItem(titile,wrap(body))
class PlainDestination:
    def receiveItems(self,items):
        for item in items:
            print item.title
            print '-'*len(item.title)
            print item.body
class HTMLDestination:
    def _init_(self,filename):
        self.filename = filename
    def receiveItems(self,items):
        out = open(self.filename,'w')
            print >> out,"""
            <html>
             <head>
              <title>Today's News</title>
             </head>
             <body>
             <h1>Today's News</h1>
            """
            print >> out, '<ul>'
            id = 0
            for item in items:
                id += 1
                print >> out, '<li><a href="#%i">%s</a></li>'%(id.item.title)
            print >> out, '</ul>'

            id = 0
            for item in items:
                id += 1
                print >> out, '<h2><a name="%i">%s</a></h2>'%(id.item.title)
                print >> out, '<pre>%s</pre>'%item.body

            print >> out,"""
             </body>
             </html>
             """
    def runDefaultSetip()
        agent = NewsAgent()
        163_url = 'http://www.163.com/rss'
        163_title = r'(?s)a href="[^"]*">\s*<b>\s*(.*?)\s*</b>'
        163_body = r'(?s)</a>\s*<br />\s*(.*?)\s*<'
        163 = SimpleWebSource(163_url,163_title,163_body)

        agent.addSource(163)

        clpa_server = 'news.foo.bar'
        clpa_group = 'comp.lang.python.announce'
        clpa_window = 1
        clpa = NNTPSSource(clpa_server,clpa_group,clpa_window)

        agent.addSource(clpa)

        agent.addDestination(PlainDestination())
        agent.addDestination(HTMLDestination('news.html'))

        agent.distribute()
    if _name_ == '_main_': runDefaultSetup()

没有报错信息唉

【热门文章】
【热门文章】