/[pub]/suikawiki/script/misc/plugins/UserAgent.wps
Suika

Contents of /suikawiki/script/misc/plugins/UserAgent.wps

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Sat May 10 05:14:31 2003 UTC (22 years, 8 months ago) by wakaba
Branch: MAIN
Branch point for: branch-suikawiki-1
New

1 wakaba 1.1 Name:
2     UserAgent
3     FullName:
4     User-agent specified behaviors and user-agent name logging
5     URI:
6     IW:SuikaWiki:"Wiki//UserAgentList"
7    
8     MODULE:
9     our $LoggingName;
10     sub add ($) {
11     my $s = shift;
12     return unless length $s;
13     $s =~ s/([^\x20-\x24\x26-\x7E])/sprintf '%%%02X', unpack 'C', $1/ge;
14     my %ua;
15     for (split /\n/, $main::database{$main::PageName{UserAgentList}}) {
16     if (/^-\[(\d+)\] (.+)$/) {
17     my ($t, $n) = ($1, $2);
18     $n =~ tr/\x0A\x0D//d;
19     $ua{$n} = $t;
20     }
21     }
22     $ua{$s}++;
23     my $s = qq(#?SuikaWiki/0.9\n);
24     for (sort {$ua{$a} <=> $ua{$b}} keys %ua) {
25     $s .= sprintf qq(-[%d] %s\n), $ua{$_}, $_;
26     }
27     SuikaWiki::Plugin->_database->STORE ($main::PageName{UserAgentList} => $s, -touch => 0);
28     }
29    
30     if ($LoggingName) {
31     push @{$SuikaWiki::Plugin::On{WikiDatabaseLoaded}}, sub {
32     add ($main::ENV{HTTP_USER_AGENT})
33     if ($main::form{mycmd} eq 'read' || $main::form{mycmd} eq 'default');
34     };
35     };
36    
37     POD:TO DO:
38     - better storing format
39    
40     - Logging method should be more customizable (what mode? what's except?...)
41     POD:LICENSE:
42     Copyright 2003 Wakaba <w@suika.fam.cx>
43    
44     %%GNUGPL2%%

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24