]> git.donarmstrong.com Git - infobot.git/blob - src/UserFile.pl
- add 'days' to created_time output.
[infobot.git] / src / UserFile.pl
1 #
2 # UserFile.pl: Dynamic userfile loader
3 #      Author: dms
4 #     Version: v0.1 (20000822)
5 #     Created: 20000822
6 #      Status: NOT WORKING YET
7 #
8 #####
9 # TODO: major overhaul to support dynamic userfile.
10 #       support ignore in this file aswell.
11 #####
12
13 if (&IsParam("useStrict")) { use strict; }
14
15 # File: User List.
16 sub NEWloadUsers {
17     my ($file) = @_;
18     %userList = ();     # clear it.
19
20     if (!open(FILE, $file)) {
21         &ERROR("FAILED loadUsers ($file): $!");
22         exit 0;
23     }
24
25     my $userName;
26
27     while (<FILE>) {
28         next if /^\s*$/;
29         next if /^#/;
30
31         if (/^UserEntry\s+(.+?)\s/) {
32             $userName = $1;
33             if (/\s*\{\s*/) {
34                 while (<FILE>) {
35                     if (/^\s*(\w+)\s+(.+);$/) {
36                         my ($opt,$val) = ($1,$2);
37
38                         $opt =~ tr/A-Z/a-z/;
39                         $val =~ s/\"//g;
40                         $val =~ s/\+// if ($opt =~ /^flags$/i);
41
42                         if ($opt =~ /^mask$/i) {
43                             $userList{$userName}{$opt}{$val} = 1;
44                         } else {
45                             $userList{$userName}{$opt} = $val;
46                         }
47                     } elsif (/^\s*\}\s*$/) {
48                         last;
49                     }
50                 }
51             } else {
52                 &status("parse error: User Entry $userName without right brace");
53             }
54         }
55     }
56     close FILE;
57
58     return unless (&IsParam("VERBOSITY"));
59
60     $file =~ s/^.*\///;
61     &status("Loaded userlist $file (". scalar(keys %userList) ." users)");
62     foreach $userName (keys %userList) {
63         &status("  $userName:");
64         &status("    flags: +$userList{$userName}{'flags'}");
65
66         foreach (keys %{$userList{$userName}{'mask'}}) {
67             &status("    hostmask: $_");
68         }
69     }
70 }
71
72 1;