[dak/master] Display Changed-By or FTP Team member in RSS feed (Closes: #840919)
Signed-off-by: Luca Falavigna <dktrkranz@debian.org>
---
tools/queue_rss.py | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/tools/queue_rss.py b/tools/queue_rss.py
index 88a43804..fab7cb83 100755
--- a/tools/queue_rss.py
+++ b/tools/queue_rss.py
@@ -69,7 +69,7 @@ def parse_changes(fname):
m = Changes(open(fname))
wanted_fields = set(['Source', 'Version', 'Architecture', 'Distribution',
- 'Date', 'Maintainer', 'Description', 'Changes'])
+ 'Date', 'Changed-By', 'Description', 'Changes'])
if not set(m.keys()).issuperset(wanted_fields):
return None
@@ -100,7 +100,7 @@ def parse_leave_reason(fname):
Return a dictionary {filename: reason}"""
- reason_re = re.compile(".+\|process-new\|.+\|NEW (ACCEPT|REJECT): (\S+)")
+ reason_re = re.compile(".+\|process-new\|(.+)\|NEW (ACCEPT|REJECT)\|(\S+)")
try:
f = open(fname)
@@ -112,7 +112,7 @@ def parse_leave_reason(fname):
for l in f.readlines():
m = reason_re.search(l)
if m:
- res[m.group(2)] = m.group(1)
+ res[m.group(3)] = (m.group(2), m.group(1))
f.close()
return res
@@ -126,7 +126,7 @@ def add_rss_item(status, msg, direction):
feed = status.feed_out
if msg.has_key('Leave-Reason'):
title = "%s %s left NEW (%s)" % (msg['Source'], msg['Version'],
- msg['Leave-Reason'])
+ msg['Leave-Reason'][0])
else:
title = "%s %s left NEW" % (msg['Source'], msg['Version'])
@@ -143,8 +143,11 @@ def add_rss_item(status, msg, direction):
(msg['Source'], msg['Version'])
guid = msg['Checksums-Sha256'][0]['sha256']
- maintainer = parseaddr(msg['Maintainer'])
- author = "%s (%s)" % (maintainer[1], maintainer[0])
+ if msg.has_key('Processed-By'):
+ author = msg['Processed-By']
+ else:
+ changedby = parseaddr(msg['Changed-By'])
+ author = "%s (%s)" % (changedby[1], changedby[0])
feed.items.insert(0,
PyRSS2Gen.RSSItem(
@@ -176,7 +179,8 @@ def update_feeds(curqueue, status, settings):
if leave_reason is None:
leave_reason = parse_leave_reason(reason_log)
if leave_reason and leave_reason.has_key(name):
- parsed['Leave-Reason'] = leave_reason[name]
+ parsed['Leave-Reason'] = leave_reason[name][0]
+ parsed['Processed-By'] = leave_reason[name][1] + "@debian.org"
add_rss_item(status, parsed, "out")
@@ -216,7 +220,7 @@ if __name__ == "__main__":
status.feed_in.write_xml(file(feed_in_file, "w+"), "utf-8")
status.feed_out.write_xml(file(feed_out_file, "w+"), "utf-8")
except IOError as why:
- sys.stderr.write("Unable to write feeds: %s\n", why)
+ sys.stderr.write("Unable to write feeds: %s\n" % why)
sys.exit(1)
status.queue = current_queue
@@ -224,7 +228,7 @@ if __name__ == "__main__":
try:
cPickle.dump(status, open(status_db, "w+"))
except IOError as why:
- sys.stderr.write("Unable to save status: %s\n", why)
+ sys.stderr.write("Unable to save status: %s\n" % why)
sys.exit(1)
# vim:et:ts=4
--
2.11.0
Reply to: