[Ezmlm-cgi-py] CVS: ezmlm-cgi-py wwwlayout.py,NONE,1.1 ezmlm-cgi.py,NONE,1.1 README,1.7,1.8
Status: Alpha
Brought to you by:
serek
From: Sergiusz P. <se...@us...> - 2002-03-16 21:49:21
|
Update of /cvsroot/ezmlm-cgi-py/ezmlm-cgi-py In directory usw-pr-cvs1:/tmp/cvs-serv16301 Modified Files: README Added Files: wwwlayout.py ezmlm-cgi.py Log Message: - hello, world :-) --- NEW FILE: wwwlayout.py --- #!/usr/bin/python # Sergiusz Pawlowicz 2002 - all rights reserved # GPL v. 2 # modules import ConfigParser, form, email # config config_parse = ConfigParser.ConfigParser() config_parse.read('config.py') author_address = config_parse.get('basic', 'author_address') site_name = config_parse.get('basic', 'site_name') copyrights = config_parse.get('basic', 'copyrights') def htmlhead(list_name, charset): # http header print "Content-Type: text/html" # HTML is following print # blank line, end of headers # head stuff print "<html>" print "<head>" print "<meta http-equiv=\"Content-Type\" \ content=\"text/html; charset=%s\">" % (charset) print "<meta name=\"Author\" content=\""+author_address+"\">" print "<link href=\"lists.css\" rel=\"stylesheet\" type=\"text/css\">" print "<TITLE>"+list_name+"</TITLE>" print "</head>" print "<body bgcolor=\"#FAFAF1\" \ text=\"#000000\" alink=\"#006600\" link=\"#006600\" vlink=\"#006600\">" def gora(list_name): print "<table width=\"600\" border=\"0\" \ bordercolor=\"#FFFFCC\" cellspacing=\"2\" cellpadding=\"2\">" print "<tr>" print "<td bordercolor=\"#CCCCCC\" align=\"right\" valign=\"bottom\" width=\"164\">" print "<p class=\"tytul\" align=\"right\">"+list_name+"<br>" print "</td>" print "<td align=\"left\" valign=\"top\" width=\"14\"> </td>" print "<td align=\"left\" valign=\"top\">" print "<p><span class=\"naglowki\">"+site_name+"</span><br>" print "listserver archives</p></td></tr>" def separator(tekst, colspan) : print "<tr align=\"right\" valign=\"top\">" print "<td colspan=\""+colspan+"\" bgcolor=\"#FFFFF9\">" print "<div align=\"center\">" print tekst print "</div></td></tr>" def list_index(script, list_number, date, listname, list_description, counter_subscribers, counter_messages, counter_months) : print "<tr><td colspan=\"2\" width=\"164\" valign=\"top\">" print "<a href=\""+script+"?"+list_number+":dds" print ":0:"+date+"\">"+listname+"</a></td>" print "<p><td>"+list_description print "<br>"+counter_subscribers+" subscribers," print counter_messages+" messages, " print counter_months+" months of active discussion" print "</p></td></tr>" def navi_left(previous_msg, next_msg, script, list_number, sort_by): print "<td colspan=\"2\"><p>" print "[<a href=\""+script+"?"+list_number+":"+sort_by print ":"+previous_msg+":0\">previous</a>] " print "[<a href=\""+script+"?"+list_number+":"+sort_by print ":"+next_msg+":0\">next</a>]</p>" print "</td>" def navi_left_date(date_real, script, list_number, sort_by): print "<td colspan=\"2\"><p>" print "[<a href=\""+script+"?"+list_number+":ddp" print ":0:"+date_real+"\">previous</a>] " print "[<a href=\""+script+"?"+list_number+":ddn" print ":0:"+date_real+"\">next</a>] |" print "[<a href=\""+script+"?"+list_number+":ddp" print ":0:190002\">first</a>] " print "[<a href=\""+script+"?"+list_number+":ddn" print ":0:999911\">last</a>]</p>" print "</td>" def navi_left_thread_by_subject_list(): print "<td colspan=\"2\"><p></td>" def navi_right(by_what, by_what_value, script, list_number): print "<td><div align=\"right\">" print "[<a href=\""+script+"?"+list_number+":"+by_what+":" if by_what == "iis" : print by_what_value+":0\">by date</a>]" elif by_what == "dds" : print "0:"+by_what_value+"\">by thread</a>]" print "</div></td></tr>" def navi_message(script, list_number, message, message_date, previous_message, next_message, message_hash, author_hash) : print "<td colspan=\"3\"><table border=\"0\" width=\"100%\"><tr>" print "<td><div align=\"left\">" print "[<a href=\""+script+"?"+list_number+":dds:" print message+":"+message_date+"\">all threads this month</a>]" print "</div></td><td><div align=\"center\">" print "<a href=\""+script+"?"+list_number+":iis:" print message+":"+message_date+"\">message</a>: " print "[<a href=\""+script+"?"+list_number+":mss:" print previous_message+":"+message_date+"\">previous</a>|<a" print "href=\""+script+"?"+list_number+":mss:" print next_message+":"+message_date+"\">next</a>]" print "</div></td><td><div align=\"center\">" print "<a href=\""+script+"?"+list_number+":sss:" print message+":"+message_date+":"+message_hash+"\">thread</a>: " print "[<a href=\""+script+"?"+list_number+":msp:" print message+":"+message_date+":"+message_hash+"\">previous</a>|<a" print "href=\""+script+"?"+list_number+":msn:" print message+":"+message_date+":"+message_hash+"\">next</a>]" print "</div></td><td><div align=\"right\">" print "<a href=\""+script+"?"+list_number+":aas:" print message+":"+message_date+":"+author_hash+"\">author</a>: " print "[<a href=\""+script+"?"+list_number+":map:" print message+":"+message_date+":"+author_hash+"\">previous</a>|<a" print "href=\""+script+"?"+list_number+":man:" print message+":"+message_date+":"+author_hash+"\">next</a>]" print "</div></td></tr></table></td></tr>" def body(row_count, date_human, sort_by_human): separator(" ", "3") print "<tr><td width=\"121\" valign=\"top\" rowspan=\""+row_count+"\">" print "<p>"+date_human+"<br>"+form.encH(sort_by_human)+"</p></td>" def thread_list(message_number, message_hash, thread_count, subject, list_number, date, script): print "<td width=\"35\"><p>" print "[<a href=\""+script+"?"+list_number+":sss:"+message_number+":" print date+":"+message_hash+"\">"+thread_count[1:-1]+"</a>]</p></td>" print "<td width=\"420\">" print "<a href=\""+script+"?"+list_number+":mss:"+message_number+":" print date+":"+message_hash+"\">"+form.encH(subject)+"</a></td></tr><tr>" def subject_list(script, list_number, message_number, message_date, author_hash, author_name): print "<td colspan=\"2\">" print "<p><a href=\""+script+"?"+list_number+":mss:"+message_number+":" print message_date+":"+author_hash+"\">"+form.encH(author_name) print "</a></td></tr><tr>" def date_list_open(): print "<td colspan=\"2\"><table>" def date_list_close(): print "</table></tr><tr>" def date_list(script, list_number, message_number, date, message_hash, subject, author_hash, author_name): print "<tr>" print "<td width=\"35\">"+message_number+"</td>" print "<td width=\"265\">" print "<a href=\""+script+"?"+list_number+":mss:"+message_number+":" print date+":"+message_hash+"\">"+form.encH(subject)+"</a></td>" print "<td>" print "<a href=\""+script+"?"+list_number+":aas:"+message_number+":" print date+":"+author_hash+"\">"+form.encH(author_name)+"</a></td>" print "</tr>" def message_headers(header_left, header_right) : print "<td width=\"55\">" print "<p>"+header_left+":</p>" print "</td>" print "<td width=\"400\">" print header_right print "</td></tr><tr>" def message_display(message_body) : print "<td width=\"15\" colspan=\"3\">" print "<pre>" print message_body print "</pre>" print "</td></tr><tr>" def dol(list_s, script, list_number): print "<td colspan=\"3\" bgcolor=\"#FFFFF9\">" print "<div align=\"center\">" print " " print "</div></td></tr>" print "<tr>" print "<td width=\"121\">© "+copyrights+" </td>" print "<td colspan=\"2\" align=\"right\">[<a href=" print "\"mailto:"+list_s[0]+"-subscribe@"+list_s[1]+"\">subscribe</a> or " print "<a href=\"mailto:"+list_s[0]+"-unsubscribe@"+list_s[1]+"\"" print ">unsubscribe</a> by mail] " print "[<a href=\""+script+"?"+str(list_number)+":faq:\">faq</a>]" print "[<a href=\""+script+"?"+str(list_number)+":help:\">help</a>]" print " | " print "[<a href=\""+script+"\">all lists</a>]" print "</td></table>" print "</body></html>" def dol_index(): print "<td colspan=\"3\" bgcolor=\"#FFFFF9\">" print "<div align=\"center\">" print " " print "</div></td></tr>" print "<tr>" print "<td colspan=\"2\">© "+copyrights+" </td>" print "<td>" print "</td>" print "</table>" print "</body></html>" # the end. # vi:syntax=python:tw=78:ts=6:sw=2 --- NEW FILE: ezmlm-cgi.py --- #!/usr/bin/python # Sergiusz Pawlowicz 2002 - all rights reserved # GPL v. 2 # debug! should be commented during normal run #import cgitb; cgitb.enable() # required python modules import os, string, sys, ConfigParser, cgi, time, email, form # set variables from config file config_parse = ConfigParser.ConfigParser() config_parse.read('config.py') ezcgirc = config_parse.get('basic', 'ezcgirc') ezmlm_list = config_parse.get('basic', 'ezmlm_list') # get html layout from wwwlayout import * # split web query params = string.split(os.environ['QUERY_STRING'], ':') script_list = string.split(os.environ['SCRIPT_NAME'], ':') script = script_list[0] # --------- definitions -------------- # count subscribers for given katalog_listy def count_all(katalog_listy) : global counter_subscribers, counter_messages i = os.popen(ezmlm_list+ " " +katalog_listy) subscriber_address = i.readline() counter_subscribers = 0 while subscriber_address != '' : counter_subscribers = counter_subscribers + 1 subscriber_address = i.readline() counter_subscribers = str(counter_subscribers) f=open(katalog_listy+"/num") num_line = f.readline() num_line_splitted = string.split(num_line, ':') f.close() counter_messages = num_line_splitted[0] def print_lists(ezcgirc) : htmlhead("index", "iso-8859-2") gora("index") separator(" ", "3") f=open(ezcgirc, 'r') ezcgirc_line = f.readline() while ezcgirc_line != '' : ezcgirc_line_splitted = string.split(ezcgirc_line, ';') list_number = ezcgirc_line_splitted[0] katalog_listy = ezcgirc_line_splitted[2] katalog_listy_thread = katalog_listy+"/archive/threads/" try: directory = os.listdir(katalog_listy_thread) counter_months = len(directory) date = directory[counter_months - 1] list_name = ezcgirc_line_splitted[3] list_description = ezcgirc_line_splitted[7] # check "-" sign in ezcgirc, we do not use it if list_name[0] == "-" : list_name = list_name[1:] count_all(katalog_listy) list_index(script, list_number, date, list_name, list_description, counter_subscribers, counter_messages, str(counter_months)) except OSError, e: pass ezcgirc_line = f.readline() f.close() dol_index() def sort_by_month(file) : # required external modules import internet_functions global months f=open(file, 'r') line = f.readline() line = f.readline() months = [''] while line != '' : months = months + [string.split(line, ':', 2)[1]] line = f.readline() months = internet_functions.qs(internet_functions.unique(months[1:])) f.close # generate navi bar def navi_gen_thread() : global date_real, date_tuple, date_human, thread # get & transcript date from URL date = params[3] date_tuple = time.strptime(date, "%Y%m") date_human = string.lower(time.strftime("%B %Y", date_tuple)) if sort_by == "dds" : # test of existance thread file if os.path.isfile(katalog_listy+"/archive/threads/"+date) == 1 : date_real = date else : # find the first month directory = os.listdir(katalog_listy+"/archive/threads/") date_real = directory[0] thread = katalog_listy+"/archive/threads/"+date_real elif sort_by == "ddn" : if date_tuple[1]+1 == 13 : next = str(date_tuple[0]+1)+str(1) else : next = str(date_tuple[0])+str(date_tuple[1]+1) date = time.strftime("%Y%m", time.strptime(next, "%Y%m")) # test of existance thread file if os.path.isfile(katalog_listy+"/archive/threads/"+date) == 1 : date_real = date else : # find the last month directory = os.listdir(katalog_listy+"/archive/threads/") date_real = directory[len(directory)-1] thread = katalog_listy+"/archive/threads/"+date_real elif sort_by == "ddp" : if date_tuple[1]-1 == 0 : previous = str(date_tuple[0]-1)+str(12) else : previous = str(date_tuple[0])+str(date_tuple[1]-1) date = time.strftime("%Y%m", time.strptime(previous, "%Y%m")) if os.path.isfile(katalog_listy+"/archive/threads/"+date) == 1 : date_real = date else : # find the first month directory = os.listdir(katalog_listy+"/archive/threads/") date_real = directory[0] thread = katalog_listy+"/archive/threads/"+date_real date_tuple = time.strptime(date_real, "%Y%m") date_human = string.lower(time.strftime("%B %Y", date_tuple)) def navi_gen_date() : global previous_msg, next_msg, index_file if sort_by == "iis": if os.path.isfile(katalog_listy+"/archive/"+str(int(message)/100)+"/index") == 1 : index_file = katalog_listy+"/archive/"+str(int(message)/100)+"/index" if index_file != katalog_listy+"/archive/0/index" : previous_msg = str(int(message)-100) next_msg = str(int(previous_msg)+200) else : previous_msg = "0" next_msg = str(int(previous_msg)+100) else : index_file = katalog_listy+"/archive/0/index" previous_msg = "0" next_msg = str(int(previous_msg)+100) def navi_gen_message() : global previous_msg, next_msg, by_date, by_author, by_subject # prapare data for navigation if int(message)-1 != 0 : previous_msg = str(int(message)-1) else : previous_msg = message # here should be conditional checking for the last message in archive next_msg = str(int(message)+1) if len(next_msg) == 1 : next_msg = "0"+next_msg if len(previous_msg) == 1 : previous_msg = "0"+previous_msg by_date = "by_date" by_author = "by_author" by_subject = "by_subject" def txt_view(what) : htmlhead(list_name, charset) gora(list_name) separator(what, "3") f=open(katalog_listy+"/text/"+what, 'r') what_file = f.read() message_display(form.encH(what_file)) f.close() dol(list_s, script, list_number) # thread view def thread_view() : # get date, rewrite it and count next and previous screens navi_gen_thread() # start display htmlhead(list_name, charset) gora(list_name) # for testing purposes - use the next first line in normal work separator(" ", "3") #separator(date_human, "3") # count rows for display row_count = 0 f=open(thread, 'r') threads_line = f.readline() while threads_line != '' : row_count = row_count+1 #threads_line = f.readline() x = string.split(threads_line, ':', 2)[0] if x != '' : by_value = x #else : # by_value = "1" threads_line = f.readline() f.close() # navigation navi_left_date(date_real, script, list_number, sort_by) navi_right("iis", by_value, script, list_number) # body(str(row_count), date_human, "by thread") # all threads in given month listing f=open(thread, 'r') threads_line = f.readline() while threads_line != '' : threads_line_splitted = string.split(threads_line, ' ', 2) hash_local = string.split(threads_line_splitted[0], ':') message_number = hash_local[0] message_hash = hash_local[1] thread_count = threads_line_splitted[1] subject = threads_line_splitted[2] thread_list(message_number, message_hash, thread_count, subject, list_number, date_real, script) threads_line = f.readline() f.close() dol(list_s, script, list_number) def date_view() : # get date, rewrite it and count next and previous screens navi_gen_date() # start display htmlhead(list_name, charset) gora(list_name) # for testing purposes - use the first line in normal work separator(" ", "3") #separator(index_file, "3") # take parameters for thread index f=open(index_file, 'r') index_line = f.readline() while index_line != '' : index_line = f.readline() x = string.split(string.lstrip(index_line), ';', 2)[0] if x != '' : by_what_value_tmp = x f.close() y = email.Utils.parsedate(by_what_value_tmp) by_what_value = string.lower(time.strftime("%Y%m", y)) # navigation navi_left(previous_msg, next_msg, script, list_number, sort_by) navi_right("dds", by_what_value, script, list_number) body(str(1), "messages from ", str(int(message)/100)+"00 to "+str(int(message)/100)+"99") # all messages in given month listing f=open(index_file, 'r') index_line = f.readline() date_list_open() while index_line != '' : index_line_splitted = string.split(index_line, ' ', 2) message_number = index_line_splitted[0][:-1] if len(message_number) == 1 : message_number = "0"+message_number message_hash = index_line_splitted[1] subject = index_line_splitted[2] index_line = f.readline() index_line = string.lstrip(index_line) index_line_splitted = string.split(index_line, ';', 1) message_date = index_line_splitted[0] hash_split = string.split(index_line_splitted[1], ' ', 1) author_hash = hash_split[0] author_name = hash_split[1] date_list(script, list_number, message_number, by_what_value, message_hash, subject, author_hash, author_name) index_line = f.readline() date_list_close() f.close() dol(list_s, script, list_number) def author_view() : # hash from URL hash = params[4] # author file author_file = katalog_listy+"/archive/authors/"+hash[0:2]+"/"+hash[2:] # start display htmlhead(list_name, charset) gora(list_name) separator(" ", "3") # count rows for display & get subject f=open(author_file, 'r') author_line = f.readline() row_count = 0 author_line_splitted = string.split(author_line, ' ', 1) author = author_line_splitted[1] author_line = f.readline() while author_line != '' : row_count = row_count+1 if author_line != '' : author_line_splitted = string.split(author_line, ":") message_number = author_line_splitted[0] by_what_value = message_number author_line = f.readline() f.close() sort_by_month(author_file) by_what = "iis" navi_left_thread_by_subject_list() navi_right(by_what, by_what_value, script, list_number) body(str(row_count+2*len(months)), "messages posted by:", author) # for every month for month in months : # print month namea month_tuple = time.strptime(month, "%Y%m") month_human = string.lower(time.strftime("%B %Y", month_tuple)) separator(month_human, "2") # messages by given author listing f=open(author_file, 'r') author_line = f.readline() author_line = f.readline() while author_line != '' : subject_line_splitted = string.split(author_line, ' ', 1) subject = subject_line_splitted[1] author_line_splitted = string.split(subject_line_splitted[0], ":") message_number = author_line_splitted[0] message_date = author_line_splitted[1] subject_hash = author_line_splitted[2] if message_date == month : subject_list(script, list_number, message_number, message_date, subject_hash, subject) author_line = f.readline() f.close() dol(list_s, script, list_number) def subject_view() : # hash from URL hash = params[4] # subject file subject_file = katalog_listy+"/archive/subjects/"+hash[0:2]+"/"+hash[2:] # start display htmlhead(list_name, charset) gora(list_name) separator(" ", "3") # extracting list of months sort_by_month(subject_file) # count rows for display & get subject f=open(subject_file, 'r') subject_line = f.readline() row_count = 0 subject_line_splitted = string.split(subject_line, ' ', 2) subject = subject_line_splitted[1] while subject_line != '' : row_count = row_count+1 subject_line = f.readline() if len(subject_line_splitted) >= 2 : subject_line_splitted = string.split(subject_line, ' ', 1) subject_line_splitted_x = string.split(subject_line_splitted[0], ':') if subject_line_splitted_x != [''] : x = subject_line_splitted_x[0] by_date = x f.close() navi_left_thread_by_subject_list() navi_right("iis", by_date, script, list_number) body(str(row_count+2*len(months)), "thread by subject:", subject) # for every month for month in months : # print month name month_tuple = time.strptime(month, "%Y%m") month_human = string.lower(time.strftime("%B %Y", month_tuple)) separator(month_human, "2") # thread by given subject listing f=open(subject_file, 'r') subject_line = f.readline() subject_line_splitted = string.split(subject_line, ' ', 1) subject_hash = subject_line_splitted[0] subject_line = f.readline() while subject_line != '' : subject_line_splitted = string.split(subject_line, ' ', 1) subject_line_splitted_x = string.split(subject_line_splitted[0], ':') message_number = subject_line_splitted_x[0] message_date = subject_line_splitted_x[1] author_hash = subject_line_splitted_x[2] author_name = subject_line_splitted[1] if message_date == month : subject_list(script, list_number, message_number, message_date, author_hash, author_name) subject_line = f.readline() f.close() dol(list_s, script, list_number) def message_view() : global message if sort_by == "map" or sort_by == "man": # author_hash from URL author_hash = params[4] # parse author file f = open(katalog_listy+"/archive/authors/"+author_hash[0:2]+"/"+author_hash[2:], 'r') author_line = f.readlines() for x in range(len(author_line)) : subject_line_splitted = string.split(author_line[x], ' ', 1) author_line_splitted = string.split(subject_line_splitted[0], ":") message_number = author_line_splitted[0] if message_number == message : if sort_by == "map" : if x-1 > 0 : subject_line_splitted = string.split(author_line[x-1], ' ', 1) else : subject_line_splitted = string.split(author_line[x], ' ', 1) if sort_by == "man" : if x+1 < len(author_line) : subject_line_splitted = string.split(author_line[x+1], ' ', 1) else : subject_line_splitted = string.split(author_line[x], ' ', 1) author_line_splitted = string.split(subject_line_splitted[0], ":") message = author_line_splitted[0] break if sort_by == "msp" or sort_by == "msn": # thread_hash from URL subject_hash = params[4] ## parse subject file f = open(katalog_listy+"/archive/subjects/"+subject_hash[0:2]+"/"+subject_hash[2:], 'r') subject_line = f.readlines() for x in range(len(subject_line)) : subject_line_splitted = string.split(subject_line[x], ' ', 1) subject_line_splitted_x = string.split(subject_line_splitted[0], ':') message_number = subject_line_splitted_x[0] if message_number == message : if sort_by == "msp" : if x-1 > 0 : subject_line_splitted = string.split(subject_line[x-1], ' ', 1) else : subject_line_splitted = string.split(subject_line[x], ' ', 1) if sort_by == "msn" : if x+1 < len(subject_line) : subject_line_splitted = string.split(subject_line[x+1], ' ', 1) else : subject_line_splitted = string.split(subject_line[x], ' ', 1) subject_line_splitted_x = string.split(subject_line_splitted[0], ':') message = subject_line_splitted_x[0] break # message file message_file = katalog_listy+"/archive/"+str(int(message)/100) index_file = message_file+"/index" if len(message) == 1 : message_file = message_file+"/0"+message[len(message)-2:] else : message_file = message_file+"/"+message[len(message)-2:] navi_gen_message() message = str(int(message)) # start display htmlhead(list_name, charset) gora(list_name) f = open(index_file, 'r') index_line = f.readline() while index_line != '' : index_line_splitted = string.split(index_line, ' ', 2) message_number = index_line_splitted[0][:-1] if message_number != message : index_line = f.readline() index_line = f.readline() else : message_hash = index_line_splitted[1] index_line = f.readline() index_line = string.lstrip(index_line) index_line_splitted = string.split(index_line, ';', 1) message_date_email = index_line_splitted[0] hash_split = string.split(index_line_splitted[1], ' ', 1) author_hash = hash_split[0] index_line = f.readline() f.close() message_date_tuple = email.Utils.parsedate(message_date_email) message_date = time.strftime("%Y%m", message_date_tuple) separator(" ", "3") navi_message(script, list_number, message, message_date, previous_msg, next_msg, message_hash, author_hash) # read the whole message file f=open(message_file, 'r') message_full = email.message_from_file(f) f.close() # parse it with email module message_body = message_full.get_payload() # body (rowspan, message number, kind of display) body("4", "message", "no "+message) headers_to_display = ['From', 'Subject', 'X-Mailer', 'Date'] for header_left in headers_to_display : if message_full.has_key(header_left) == 1 : header_right = message_full.get(header_left) message_headers(header_left, email.Utils.decode(header_right).encode('iso-8859-2')) else: message_headers(header_left, "unknown") separator(" ", "3") message_display(message_body) dol(list_s, script, list_number) # ---------------- main part --------------------- # do same tests if len(params) >= 3 : # standard behaviour list_number = params[0] sort_by = params[1] message = params[2] # get list parameters f=open(ezcgirc, 'r') ezcgirc_line = f.readline() while ezcgirc_line != '' : ezcgirc_line_splitted = string.split(ezcgirc_line, ';') if ezcgirc_line_splitted[0] == list_number : katalog_listy = ezcgirc_line_splitted[2] list_name = ezcgirc_line_splitted[3] charset = ezcgirc_line_splitted[5] if charset == '' : charset = "iso-8859-1" ezcgirc_line = f.readline() f.close() list_s = string.split(list_name, "@") # check "-" sign in ezcgirc, we do not use it if list_name[0] == "-" : list_name = list_name[1:] # choose display type and go! if sort_by == "dds" or sort_by == "ddn" or sort_by == "ddp": thread_view() elif sort_by == "sss" : subject_view() elif sort_by == "iis" : date_view() elif sort_by == "aas" : author_view() elif sort_by == "mss" or sort_by == "map" or sort_by == "man" or sort_by == "msp" or sort_by == "msn": message_view() elif sort_by == "faq" or sort_by == "help" : txt_view(sort_by) else : sort_by = "mss" message = "1" message_view() elif len(params) == 1 : # there is no parameters in URL print_lists(ezcgirc) # the end. # vi:syntax=python:tw=78:ts=6:sw=2 Index: README =================================================================== RCS file: /cvsroot/ezmlm-cgi-py/ezmlm-cgi-py/README,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- README 15 Mar 2002 02:16:27 -0000 1.7 +++ README 16 Mar 2002 21:49:18 -0000 1.8 @@ -34,10 +34,10 @@ Installation: 0. Unpack sources [ # tar zxvf <filename.tgz>], - 1. Put ezmlm-cgi.py, wwwlayout.py, index.c, - internet_functions.py, form.py, lists.css + 1. Put ezmlm-cgi.py, wwwlayout.py, index.cgi.c, + internet_functions.py, form.py, lists.css, config.py into your newly created <ScriptAlias>/ezmlm/ directory, - 2. # cc index.c + 2. # cc index.c -o index.cgi 3. # chown <listowner>.<listgroup> index.cgi 4. # chmod +s index.cgi 5. Customize config.py file, |