/[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 - (show 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 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