aboutsummaryrefslogtreecommitdiffstats
path: root/Mailman/Archiver
diff options
context:
space:
mode:
authorbwarsaw <>2003-12-24 17:09:30 +0000
committerbwarsaw <>2003-12-24 17:09:30 +0000
commit8b2cb37d61dc71c95c6bab860ef6b2da98516cfd (patch)
tree8941ce64714d3ab9372585d27d7284d95ae6358e /Mailman/Archiver
parent443295a032807d94f71d0b4dcb2108cd1b58745f (diff)
downloadmailman2-8b2cb37d61dc71c95c6bab860ef6b2da98516cfd.tar.gz
mailman2-8b2cb37d61dc71c95c6bab860ef6b2da98516cfd.tar.xz
mailman2-8b2cb37d61dc71c95c6bab860ef6b2da98516cfd.zip
finished_update_article(): Richard Barrett's fix to reduce Pipermail
archive bloat by deleting the html_body attribute on Article objects. Closes SF bug #835332. This is a stub in the base class. _update_thread_index(): Call finished_update_article() when done. store_article(): squirrel away the html_body value when pickling the article. This only reduces bloat on new articles. See bin/rb-archfix to clean up older archives.
Diffstat (limited to 'Mailman/Archiver')
-rw-r--r--Mailman/Archiver/pipermail.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/Mailman/Archiver/pipermail.py b/Mailman/Archiver/pipermail.py
index 210030ed..ec8e46f6 100644
--- a/Mailman/Archiver/pipermail.py
+++ b/Mailman/Archiver/pipermail.py
@@ -126,9 +126,13 @@ class Database(DatabaseInterface):
"""Store article without message body to save space"""
# TBD this is not thread safe!
temp = article.body
+ temp2 = article.html_body
article.body = []
+ del article.html_body
self.articleIndex[article.msgid] = pickle.dumps(article)
article.body = temp
+ article.html_body = temp2
+
# The Article class encapsulates a single posting. The attributes
# are:
@@ -239,6 +243,9 @@ class Article:
def __repr__(self):
return '<Article ID = '+repr(self.msgid)+'>'
+ def finished_update_article(self):
+ pass
+
# Pipermail formatter class
class T:
@@ -486,6 +493,8 @@ class T:
self.update_article(arcdir, a1, L[0], L[2])
else:
del self.database.changed[key]
+ if L[0]:
+ L[0].finished_update_article()
L = L[1:] # Rotate the list
if msgid is None:
L.append(msgid)