def processMessage()

in assets/development/digest/genCVSlog.py [0:0]


def processMessage ( message ):
	headers = parser.parsestr ( message, True )
	if verbose: print >>sys.stderr, "************\nsubject =", headers[ "Subject" ]

	#### if headers["Subject"] and headers[ "Subject" ].find ( "CVS update" ) != -1 :
	#if ( message.find ( "Subject: CVS update" ) != -1 ) or \
	if   headers["Subject"] and headers[ "Subject" ].find ( "CVS update" ) != -1:
		#convert from format : 21 Oct 2003 08:24:30 -0000
		#to the tuple : (2003, 10, 21, 8, 53, 54, 1, 294, 0)
		msgTime = time.strptime ( headers[ "Date" ], "%d %b %Y %H:%M:%S -0000" )
		global oldest
		global youngest

		realMsgTime = time.mktime(msgTime)
		if realMsgTime < oldest or oldest == 0:
			oldest = realMsgTime
		if realMsgTime > youngest or youngest == 0:
			youngest = realMsgTime
		dayOfYear = 300 ### time.strftime ( "%j", msgTime )
		#print "checking this date", msgTime, ": ", sinceDay, "=? ", int(dayOfYear)
		if 1: #int(dayOfYear) >= sinceDay:
		    #print "process this \n", message
		    log = CVSLog2 ( message )
		    if verbose:
		        log.printLog()
		    createAll = False
		    if not logs .has_key ( log.tag ):
		    	logs [ log.tag ] = {}
			createAll = True

		    if summarizeIntegration and log.change=="integrated":
		       log.comment = "<a name='merged_%s'></a><span class='comment'>%s</span>" % \
				( log.mergedBranch, log.mergedBranch )
		       log.comment +=  "[ <a href='%s#%s'>description</a>]" % (
				"http://development.openoffice.org/releases/OOo_2_0_timetable.html", \
				log.mergedBranch, )

		    if not log.user in developers:
		       developers.append ( log.user )

		    if createAll or not logs [ log.tag ].has_key( log.user ):
			logs [ log.tag ][log.user] = {}
			createAll = True
		    if createAll or not logs [ log.tag ][log.user].has_key( log.change ):
			logs [ log.tag ][log.user][log.change] = {}
			createAll = True
		    if createAll or not logs [ log.tag ][log.user][log.change].has_key( log.comment ):
			logs [ log.tag ][log.user][log.change][log.comment] = []
		    if len(log.URLs) :
			#print >>sys.stderr, "files:", log.URLs
			logs [ log.tag ] [ log.user ] [ log.change ] [ log.comment ] += log.URLs
			if log.change=="integrated" or  ( log.change=="modified" and \
		    		( log.comment.find(u"RESYNC:; FILE MERGED") != -1 ) ):
			  pass
			else:
			  for url in log.URLs:
			   match = projectMatch.search ( url )
			   if not projects.has_key ( match.group(1) ):
			     projects[match.group(1)] = []
			   if log.tag in projects[match.group(1)] : pass
			   else:
			    projects[match.group(1)].append ( log.tag )
		    else:
		        if log.change != "removed" and len(log.files) == 0:
			   print >>sys.stderr, "no files and no URLs!!"
			   print >>sys.stderr, "message=", message
			   log.printLog()
			logs [ log.tag ] [ log.user ] [ log.change ] [ log.comment ].append( log.files )