Merge branch 'upstream-tmp' into upstream
* upstream-tmp: Update documentation to 4.12. Add correct timestamp to mbox when processing. Don't remove empty mailbox files/maildirs. Fix UVreadmail.pm Add option to compare ballot to sample ballot. Documentation: Add votename to UVmenu. Add "bdsg_confirm" to UVconf.pm
This commit is contained in:
commit
c1cc3954b4
26
CHANGES
26
CHANGES
|
@ -1,18 +1,30 @@
|
|||
UseVoteGer Versionshistorie (aktuelle Version: 4.11, released 25.09.2012)
|
||||
UseVoteGer Versionshistorie (aktuelle Version: 4.12, released 19.01.2014)
|
||||
=========================================================================
|
||||
|
||||
TODO:
|
||||
- aussortieren von Bounces aus Stimmenliste
|
||||
- [Zugschlus] ich fänd es klasse, wenn man eine Kopie des Wahlscheines ins
|
||||
Abstimmungsverzeichnis legt und Usevote einem dann auf Abruf ein diff
|
||||
oder wdiff zwischen Sollwahlschein und wirklich eingreichtem
|
||||
Wahlschein macht. Auf diese Weise erwischt man auch kleine Änderungen
|
||||
am Datenschutzhinweis (da bin ich eben in eine Falle von th-h getappt).
|
||||
|
||||
Version 4.12 (19.01.2014):
|
||||
- uvbounce.pl und uvballot.pl benutzen jetzt wieder den uebergebenen
|
||||
Dateinamen statt irrtuemlich das Mailboxfile aus usevote.cfg
|
||||
(Bugfix in UVreadmail.pm)
|
||||
- UVreadmail.pm setzt beim Schreiben eines Mailarchivs nun einen
|
||||
Timestamp in der mbox-Fromline, der aus der Mail stammt
|
||||
(timestamp()-Funktion von Mail::Box) statt dem aktuellen Datum
|
||||
- UVreadmail.pm laesst nun Mailboxdateien bzw. -ordner bestehen,
|
||||
auch wenn sie leer sind, um Kompatibiliaetsprobleme mit anderen
|
||||
Programmen zu vermeiden
|
||||
- neue Config-Optionen "diff" und "sampleballotfile"
|
||||
- im Fehlermenue bei der Wahlscheinverarbeitung ist es nun moeglich,
|
||||
mit der Option "0" einen Dateivergleich (diff) zwischen dem gemailten
|
||||
Wahlschein und einem Musterwahlschein (wie im CfV geposted) zu starten.
|
||||
Dazu muss die Config-Option "sampleballotfile" gesetzt und die Datei
|
||||
vorhanden sein (Standard-Dateiname: ballot.sample)
|
||||
|
||||
Version 4.11 (25.09.2012):
|
||||
- Regular Expression fuer Pruefung des Abstimmungsnamens verbessert.
|
||||
Es kam zu vielen False Positives
|
||||
- Einlesen der Mailbox auf Perlmodule Mail::Box umgestellt, damit
|
||||
- Einlesen der Mailbox auf Perlmodul Mail::Box umgestellt, damit
|
||||
auch Maildir moeglich (neue Option "mailboxtype" in usevote.cfg).
|
||||
Archivierung erfolgt aber vorerst weiterhin immer als mbox
|
||||
|
||||
|
|
21
README
21
README
|
@ -1,4 +1,4 @@
|
|||
UseVoteGer 4.11 (c) 2001-2012 Marc Langer
|
||||
UseVoteGer 4.12 (c) 2001-2014 Marc Langer
|
||||
|
||||
UseVoteGer is a voting software for usenet votes.
|
||||
|
||||
|
@ -18,7 +18,7 @@ written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
|
|||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
UseVoteGer 4.11 - Usenet-Abstimmungssoftware
|
||||
UseVoteGer 4.12 - Usenet-Abstimmungssoftware
|
||||
===========================================
|
||||
|
||||
von Marc Langer <uv@marclanger.de>
|
||||
|
@ -324,6 +324,7 @@ ohne die .pl und .pm Dateien jedesmal mitzukopieren. Folgende Dateien
|
|||
sollten im Abstimmungsverzeichnis vorhanden sein (notwendig ist nur
|
||||
usevote.cfg, darin können alle anderen Pfade angepasst werden):
|
||||
|
||||
ballot.sample
|
||||
bdsgtext.cfg
|
||||
mailpatterns.cfg
|
||||
messages.cfg
|
||||
|
@ -404,6 +405,7 @@ mit einzelnen Stimmen wirst Du interaktiv durch Menues gefuehrt.
|
|||
Meistens gibt es folgende Moeglichkeiten, die durch die
|
||||
eingeklammerten Buchstaben und Zahlen aufgerufen werden koennen:
|
||||
|
||||
(0) Wahlschein mit Original vergleichen (diff)
|
||||
(1) Anzeigen der Wahlmail
|
||||
|
||||
Bestaetigen oder Aendern von Wahlschein-Eigenschaften:
|
||||
|
@ -412,6 +414,7 @@ Bestaetigen oder Aendern von Wahlschein-Eigenschaften:
|
|||
(4) Stimmen
|
||||
(5) Scheinkennung
|
||||
(6) Datenschutzklausel
|
||||
(7) Abstimmung
|
||||
|
||||
(i) Diese Stimme ignorieren (ohne Benachrichtigung verwerfen)
|
||||
(w) Weiter
|
||||
|
@ -426,8 +429,11 @@ Teilweise gibt es Unteroptionen:
|
|||
Nun solltest Du zunaechst mit (1) die Mail ansehen und anhand
|
||||
der bemaengelten Punkte entscheiden, ob der Wahlschein gueltig
|
||||
oder ungueltig ist bzw. welche Maengel tatsaechlich zutreffen.
|
||||
Mit (0) kannst Du einen Dateivergleich zu einem vorher hinterlegten
|
||||
Musterwahlschein ausführen ("diff"), um Aenderungen/Fehler schneller
|
||||
zu sehen.
|
||||
|
||||
Mit den Optionen (2) bis (6) kannst Du einzelne Eigenschaften
|
||||
Mit den Optionen (2) bis (7) kannst Du einzelne Eigenschaften
|
||||
des Wahlscheins nachbessern (wenn Usevote z.B. einen Namen oder
|
||||
eine Stimme nicht korrekt erkannt hat) oder auch einfach die
|
||||
Korrektheit bestaetigen.
|
||||
|
@ -685,6 +691,10 @@ uvbounce.pl
|
|||
eingeschaltet und die Option -f (siehe unten) nicht benutzt wurde,
|
||||
werden die uebergebenen Dateinamen ignoriert.
|
||||
|
||||
Die Mails werden aus den uebergebenen Mailboxdateien geloescht
|
||||
und statt dessen in einer neuen Datei mit der Erweiterung ".processed"
|
||||
gespeichert.
|
||||
|
||||
Die Vorlage fuer die ausgegebene Liste ist im templates-
|
||||
Unterverzeichnis konfigurierbar (Datei "bouncelist").
|
||||
|
||||
|
@ -957,6 +967,7 @@ Hier eine Auflistung der immer anzupassenden Optionen
|
|||
votename Name der Abstimmung
|
||||
group1 Erster Abstimmungsgegenstand
|
||||
group2 Zweiter (und so weiter durchnummerieren)
|
||||
sampleballotfile Datei mit Musterwahlschein aus dem CfV fuer Dateivergleich (diff)
|
||||
votefile Mailbox mit eingehenden Stimmen (falls POP3 ausgeschaltet)
|
||||
mailboxtype Typ der Mailbox (mbox, maildir)
|
||||
personal Personalisierte Wahlscheine verwenden? [BOOL]
|
||||
|
@ -1025,6 +1036,10 @@ clearcmd Shellbefehl zum Loeschen des Bildschirms (Standard: clear),
|
|||
oder Betriebssystem keinen solchen Befehl bereitstellen,
|
||||
sollte ein Kommando verwendet werden, welches eine Trennlinie
|
||||
oder aehnliches auf dem Bildschirm ausgibt, z.B. mit "echo"
|
||||
diff Shellbefehl zum Dateivergleich (diff); es koennen auch
|
||||
Parameter angegeben werden, z.B. "diff -u". Das verwendete
|
||||
Programm muss das Lesen einer Datei von STDIN erlauben
|
||||
("-" statt Dateinamen fuer Einlesen von Standardeingabekanal)
|
||||
pager Shellbefehl zum seitenweisen Darstellen von Mails auf dem
|
||||
Bildschirm (normalerweise "less"). Unter Windows muss "more"
|
||||
benutzt werden, unter Unix hingegen gibt es moeglicherweise
|
||||
|
|
|
@ -18,7 +18,7 @@ require Exporter;
|
|||
$VERSION = "0.18";
|
||||
|
||||
# Usevote version
|
||||
$usevote_version = "UseVoteGer 4.11";
|
||||
$usevote_version = "UseVoteGer 4.12";
|
||||
|
||||
sub read_config {
|
||||
|
||||
|
@ -27,6 +27,7 @@ sub read_config {
|
|||
# Default configuration options (overwritten in usevote.cfg)
|
||||
%config = (votefile => "votes",
|
||||
votename => "unkonfiguriertes Usevote",
|
||||
sampleballotfile => "ballot.sample",
|
||||
resultfile => "ergebnis.alle",
|
||||
rulefile => "usevote.rul",
|
||||
badaddrfile => "mailpatterns.cfg",
|
||||
|
@ -57,6 +58,7 @@ sub read_config {
|
|||
mailcc => "",
|
||||
sleepcmd => "sleep 1",
|
||||
clearcmd => "clear",
|
||||
diff => "diff",
|
||||
pager => "less",
|
||||
pop3 => 0,
|
||||
pop3server => "localhost",
|
||||
|
@ -90,6 +92,7 @@ sub read_config {
|
|||
nein_stimme => '(N\s*E\s*I\s*N|N|(D\s*A\s*)?G\s*E\s*G\s*E\s*N)',
|
||||
enth_stimme => '(E|E\s*N\s*T\s*H\s*A\s*L\s*T\s*U\s*N\s*G)',
|
||||
ann_stimme => 'A\s*N\s*N\s*U\s*L\s*L\s*I\s*E\s*R\s*U\s*N\s*G',
|
||||
bdsg_confirm => 'JA',
|
||||
condition1 => '$yes>=2*$no', # twice as many yes as no
|
||||
condition2 => '$yes>=60', # min 60 yes votes
|
||||
prop_formula => '$yes/$no',
|
||||
|
|
15
UVmenu.pm
15
UVmenu.pm
|
@ -69,6 +69,12 @@ sub menu {
|
|||
my $menucaption = UVmessage::get("MENU_CAPTION");
|
||||
print "\n\n$menucaption\n";
|
||||
print "=" x length($menucaption), "\n\n";
|
||||
|
||||
# don't print this option if called from uvcfv.pl
|
||||
unless ($mailonly) {
|
||||
print "(0) ", UVmessage::get("MENU_DIFF_BALLOT"), "\n";
|
||||
}
|
||||
|
||||
print "(1) ", UVmessage::get("MENU_SHOW_MAIL"), "\n\n",
|
||||
UVmessage::get("MENU_CHANGE_PROPERTIES"), "\n",
|
||||
"(2) ", UVmessage::get("MENU_ADDRESS"), " [$voter_addr]\n";
|
||||
|
@ -95,7 +101,14 @@ sub menu {
|
|||
# only accept 1, 2, i and w if called from uvcfv.pl
|
||||
next if ($mailonly && $input !~ /^[12iw]$/i);
|
||||
|
||||
if ($input eq '1') {
|
||||
if ($input eq '0') {
|
||||
# ignore SIGPIPE (Bug in more and less)
|
||||
$SIG{PIPE} = 'IGNORE';
|
||||
open (DIFF, "|$config{diff} - $config{sampleballotfile} | $config{pager}");
|
||||
print DIFF $$body, "\n";
|
||||
close (DIFF);
|
||||
|
||||
} elsif ($input eq '1') {
|
||||
system($config{clearcmd});
|
||||
# ignore SIGPIPE (Bug in more and less)
|
||||
$SIG{PIPE} = 'IGNORE';
|
||||
|
|
|
@ -124,18 +124,31 @@ sub process {
|
|||
# Mailbox / Maildir
|
||||
} else {
|
||||
|
||||
my $readfilename;
|
||||
|
||||
if ($caller==0) {
|
||||
# called from uvvote.pl: use configured mailbox file
|
||||
$readfilename = $config{votefile};
|
||||
} else {
|
||||
# else use filename provided in function call
|
||||
$readfilename = $filename;
|
||||
# and create backup archive filename
|
||||
$filename .= '.processed';
|
||||
}
|
||||
|
||||
my $mgr = Mail::Box::Manager->new;
|
||||
my $folder;
|
||||
|
||||
eval{
|
||||
$folder = $mgr->open( folder => $config{votefile},
|
||||
$folder = $mgr->open( folder => $readfilename,
|
||||
create => 0,
|
||||
access => 'rw',
|
||||
type => $config{mailboxtype},
|
||||
expand => 'LAZY',
|
||||
remove_when_empty => 0,
|
||||
);
|
||||
};
|
||||
die UVmessage::get("READMAIL_NOMAILFILE", (FILE => $config{votefile})) . "\n\n" if $@;
|
||||
die UVmessage::get("READMAIL_NOMAILFILE", (FILE => $readfilename)) . "\n\n" if $@;
|
||||
|
||||
# Iterate over the messages.
|
||||
foreach (@$folder) {
|
||||
|
@ -149,7 +162,7 @@ sub process {
|
|||
} else {
|
||||
$fromline .= 'foo@bar.invalid';
|
||||
}
|
||||
$fromline .= ' ' . localtime() . "\n"; #strftime ('%a %b %d %H:%M:%S %Y', localtime) . "\n";
|
||||
$fromline .= ' ' . localtime($_->timestamp()) . "\n";
|
||||
push (@mails, $fromline . $mail);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ MENU_UNRECOGNIZED_LIST = Stimme
|
|||
MENU_VIOLATEDRULE = Regel ${RULE} verletzt.
|
||||
MENU_PROBLEMS = Die folgenden Probleme muessen beseitigt werden:
|
||||
MENU_CAPTION = Auswahlmenue:
|
||||
MENU_DIFF_BALLOT = Wahlschein mit Original vergleichen (diff)
|
||||
MENU_SHOW_MAIL = Anzeigen der Wahlmail
|
||||
MENU_CHANGE_PROPERTIES = Bestaetigen oder Aendern von Wahlschein-Eigenschaften:
|
||||
MENU_ADDRESS = Mailadresse
|
||||
|
|
|
@ -77,6 +77,10 @@ multigroup = 1
|
|||
condition1 = $yes>=2*$no
|
||||
condition2 = $yes>=50
|
||||
|
||||
# Datei mit Musterwahlschein, wie er im CfV geposted wurde. Wird fuer
|
||||
# Vergleich mit ankommenden Wahlscheinen per "diff" genutzt.
|
||||
sampleballotfile = ballot.sample
|
||||
|
||||
# Ergebnisdatei, in der alle Einzelergebniss zusammengeschrieben werden
|
||||
# (wird bei jedem Programmlauf neu erstellt!)
|
||||
resultfile = ergebnis.alle
|
||||
|
@ -208,6 +212,9 @@ clearcmd = clear
|
|||
# Windows-Verzeichnis kopieren (URL siehe README-Datei)
|
||||
pager = less
|
||||
|
||||
# Shellbefehl fuer Dateivergleich
|
||||
diff = diff
|
||||
|
||||
# Datei mit diversen Meldungen und Textfragmenten (Resourcendatei)
|
||||
messagefile = messages.cfg
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.11 Wahlscheingenerierung
|
||||
# (c) 2001-2012 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.12 Wahlscheingenerierung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.11 Bounce-Verarbeitung
|
||||
# (c) 2001-2012 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.12 Bounce-Verarbeitung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
4
uvcfv.pl
4
uvcfv.pl
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.11 Personalisierte Wahlscheine
|
||||
# (c) 2001-2012 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.12 Personalisierte Wahlscheine
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.11 Stimmauswertung
|
||||
# (c) 2001-2012 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.12 Stimmauswertung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.11 Wahldurchfuehrung
|
||||
# (c) 2001-2012 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.12 Wahldurchfuehrung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
Loading…
Reference in a new issue