Mercurial > hg > elinux-vote
changeset 6:80df109584f7
Se agrega validacion de remitente versus direccion de miembro
author | "German Poo-Caaman~o <gpoo@gnome.org>" |
---|---|
date | Thu, 14 Dec 2006 23:16:24 -0300 |
parents | 58e4b36d5e74 |
children | 308cdc35c99d |
files | vote-counter.py |
diffstat | 1 files changed, 17 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/vote-counter.py Thu Dec 14 10:22:46 2006 -0300 +++ b/vote-counter.py Thu Dec 14 23:16:24 2006 -0300 @@ -68,17 +68,19 @@ ballots = [] current_ballot = 0 - from_line_re = re.compile ("^From: *(.*)") - member_name_re = re.compile (">? *Member: *(.*)") - member_address_re = re.compile (">? *Member Address: *([^ ]*)") - auth_token_re = re.compile (">? *Validation Token: *(.*)") - vote_re = re.compile (">? *([A-Z ]+) *\(ID# *([0-9]+)\)") + from_line_re = re.compile("^From: *(.*) *\(.*\)") + from_restore_re = re.compile(" (at|en) ") + member_name_re = re.compile(">? *Member: *(.*)") + member_address_re = re.compile(">? *Member Address: *([^ ]*)") + auth_token_re = re.compile(">? *Validation Token: *(.*)") + vote_re = re.compile(">? *([A-Z ]+) *\(ID# *([0-9]+)\)") fp = open(filename) for line in fp.readlines(): match = from_line_re.match(line) if match: email = string.strip(match.group(1)) + email = '<%s>' % from_restore_re.sub('@', email) if current_ballot: ballots.append(current_ballot) current_ballot = Ballot() @@ -192,6 +194,9 @@ error = "bad authentication token" elif not valid_addresses.valid_voter(b.member): error = "ballot from someone not in the list of valid voters" + elif not valid_addresses.valid_voter(b.email): + error = "ballot from a not valid address in the list of "\ + "valid voters" else: if valid_ballots.has_key(b.token): old = valid_ballots[b.token] @@ -214,9 +219,9 @@ for (b, i) in valids: print "Ballot %d:" % i - print " From: " + b.email + print " From: " + munge_email(b.email) print " Member: " + b.member_name - print " Member Address: " + b.member + print " Member Address: " + munge_email(b.member) print " Token: " + b.token print " Voted for %d candidates:" % len(b.votes) @@ -236,7 +241,7 @@ print "\nThe following members did not vote:" for addr in valid_addresses.keys (): if not valid_addresses[addr]: - print addr + print munge_email(addr) def print_summary(valid_ballots, valid_addresses, candidates): candidate_list = candidates.values() @@ -250,6 +255,10 @@ for candidate in candidate_list: print " %s (%d votes)" % (candidate.name, candidate.count) +def munge_email(addr): + email = addr.split('@') + munged = '@no_spam.'.join(email) + return munged if __name__ == '__main__': candidates = {}