| 
 import nntplib
 import socket
 HOST = 'your.nntp.server'
 GRNM = 'comp.lang.python'
 USERNAME = 'Killua'
 PASSWORD = '123456'
 def NNTPClient():
 try:
 n = nntplib.NNTP(HOST)
 except socket.gaierror, e:
 print 'ERROR: cannot connect host "%s"' % HOST
 print '("%s")' % eval(str(e))[1]
 return
 except nntplib.NNTPPermanentError, e:
 print 'ERROR: access denied on "%s"' % HOST
 print '("%s")' % str(e)
 return
 print '>> Connected to host "%s"' % HOST
 try:
 rsp, ct, fst, lst, grp = n.group(GRNM)
 except nntplib.NNTPTemporaryError, e:
 print 'ERROR: cannot load group "%s"' % GRNM
 print '("%s")' % str(e)
 print 'Server may require authentication'
 print 'Uncomment/Edit login lne above'
 n.quit()
 return
 except nntplib.NNTPTemporaryError, e:
 print 'ERROR: group "%s" unavailable' % GRNM
 print '("%s")' % str(e)
 n.quit()
 return
 print '>> Found newgroup "%s"' % GRNM
 rng = '%s-%s' % (lst,lst)
 rsp, frm = n.xhdr('from', rng)
 rsp, sub = n.xhdr('subjec', rng)
 rsp, dat = n.xhdr('date', rng)
 print ''' Found last article(#%s):
 From: %s
 Subject: %s
 Date: %s
 ''' (lst, frm[0][1], sub[0][1], dat[0][1])
 def displayFirst20(data):
 'Display First 20 lines'
 count = 0
 lines = (line.rstrip() for line in data)
 lastBlank = True
 for line in lines:
 if line:
 lower = line.lower()
 if (lower.startswith('>') and /
 not lower.startswith('>>>')) or /
 lower.startswith('|') or /
 lower.startswith('in article') or /
 lower.endswith('writes:') or /
 lower.endswith('wrote:'):
 continue
 if not lastBlank or (lastBlank and line):
 print '%s' % line
 if line:
 count += 1
 lastBlank = False
 else:
 lastBlank = True
 if count == 20:
 break
 def main():
 NNTPClient()
 DisplayFirst20()
 if __name__ == '__main__':
 main()
 
 |