/[qa]/trunk/pts/www/bin/common.py
ViewVC logotype

Contents of /trunk/pts/www/bin/common.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 344 - (hide annotations) (download) (as text)
Mon Aug 12 17:20:36 2002 UTC (10 years, 9 months ago) by hertzog
File MIME type: text/x-python
File size: 2119 byte(s)
* Added the PTS web interface.
1 hertzog 344 # vim: expandtab
2    
3     import os, os.path, re, rfc822, email.Utils
4    
5     def save_msg_in_dir(msg, dir, nb=20):
6     """Add the message in the directory.
7     Keep only the nb last messages."""
8     if not os.path.isdir(dir):
9     os.makedirs(dir)
10     if os.path.isfile("%s/%d.txt" % (dir, nb)):
11     os.unlink("%s/%d.txt" % (dir, nb))
12     for i in range(nb - 1, 0, -1):
13     if os.path.isfile("%s/%d.txt" % (dir, i)):
14     os.rename("%s/%d.txt" % (dir, i), "%s/%d.txt" % (dir, i+1))
15     f = open("%s/1.txt" % dir, "w")
16     f.write(msg.as_string())
17     f.close()
18    
19     def generate_html_msg(src, dst, nb=20):
20     """Convert all message in src directory
21     in HTML messages in dst directory"""
22     # Clean old attachments first
23     os.system("find %s -maxdepth 1 -type f -not -name '*.html' | xargs -r rm -f" % dst)
24     # Regenerate HTML messages
25     for i in range(nb):
26     if os.path.isfile("%s/%d.txt" % (src, i + 1)):
27     os.system("cd %s; /usr/bin/mhonarc -single %s/%d.txt > %d.html" % (dst, src, i+1, i+1))
28    
29     def extract_info(msg):
30     """Extract pseudo-header informations in a dictionnary"""
31     info = {}
32     if msg.is_multipart():
33     for part in msg.walk():
34     if part.get_type("text/plain") == "text/plain":
35     body = part.get_payload(None, 1)
36     break
37     else:
38     body = msg.get_payload(None, 1)
39     lines = body.split("\n", 3)
40     for i in range(3):
41     res = re.match(r"^(\w+): (\S+)(.*)", lines[i])
42     if res:
43     field = res.group(1).lower()
44     info[field] = res.group(2)
45     if field == "subject":
46     info[field] = info[field] + res.group(3)
47     else:
48     break
49     if not info.has_key("subject"):
50     info["subject"] = email.Utils.decode(msg.get("subject"))
51     if msg.has_key("X-PTS-Url"):
52     info["url"] = msg.get("X-PTS-Url")
53     if msg.has_key("X-PTS-Package"):
54     info["package"] = msg.get("X-PTS-Package")
55     if msg.has_key("date"):
56     t = rfc822.parsedate(msg["date"])
57     if t:
58     info["date"] = "%04d-%02d-%02d" % (t[0:3])
59     return info
60    

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.5