home *** CD-ROM | disk | FTP | other *** search
- #!/usr/local/bin/python
- import sys
- import rfc822
- import string
- import posix
-
- # Names MUST be in lower case in order to match
- phonebookfile = "/usr/local/src/GSM/phonebook"
-
- # Pager queuing program
- qpage="/usr/local/bin/qpage";
-
- def readbook(fname):
- fh = open(fname);
- lines = fh.readlines();
- book = {};
- for line in lines:
- parts = string.split(line);
- if len(parts) > 1:
- book[string.lower(parts[0])] = parts[1];
- return book;
-
- phonebook = readbook(phonebookfile);
-
- # Get rid of the first line
- sys.stdin.readline();
-
- ms = rfc822.Message(sys.stdin);
-
- fromreal, fromaddr = ms.getaddr("From");
- subject = ms.getheader("Subject");
-
- pagernumbers = [];
-
- user = string.lower(sys.argv[1]);
- if phonebook.has_key(user):
- pagernumbers.append(phonebook[user]);
-
- if (fromreal == None or fromreal == ""):
- pagestr = "From: " + fromaddr;
- else:
- pagestr = "From: " + fromreal;
-
- if (subject):
- pagestr = pagestr + " Subject: " + subject;
-
- lines = sys.stdin.readlines();
-
- for line in lines:
- if (len(pagestr) > 159):
- break;
- pagestr = pagestr + " " + string.strip(line);
-
- if (len(pagestr) > 159):
- pagestr = pagestr[0:156] + "..."
-
- for number in pagernumbers:
- command = qpage+" "+number+" '"+pagestr+"'";
- posix.system(command);
-