2 use CGI::Fast qw/:cgi/;
5 use POSIX qw/strftime/;
8 my $baseurl = Blerg::Database::constant('BASEURL');
19 print header(-type => 'text/html',
20 -status => '404 Not Found');
23 <h1>404 Not Found</h1>
29 my ($name, @items) = @_;
32 <?xml version="1.0" encoding="utf-8" ?>
35 <title>${name}'s blërg</title>
36 <link>${baseurl}#$name</link>
37 <description>Textual vomit</description>
41 my $data = xml_escape($i->{data});
42 my $post_time = strftime("%a, %d %b %Y %H:%M:%S %Z", gmtime($i->{timestamp}));
45 <pubDate>$post_time</pubDate>
46 <guid>${baseurl}get/$name/$i->{record}</guid>
47 <description>$data</description>
59 while (my $q = new CGI::Fast) {
60 my @path = split('/', $ENV{PATH_INFO});
64 # Assume this is a username; redirect to /user/<username>
65 my $username = $path[0];
66 my $b = Blerg::Database->open_existing($username);
71 print header(-type => 'application/rss+xml',
73 -status => '301 Moved Permanently',
74 -location => "${baseurl}rss/user/$username");
75 # And present the content in case their client is broken
76 my $n = $b->record_count - 1;
77 my @list = reverse map {
80 data => $b->fetch($_),
81 timestamp => $b->timestamp($_),
83 } ($n > 50 ? $n - 50 : 0)..$n;
85 print_rss($username, @list);
86 } elsif ($path[0] eq 'user') {
87 my $username = $path[1];
88 my $b = Blerg::Database->open_existing($username);
93 print header(-type => 'application/rss+xml');
94 my $n = $b->record_count - 1;
95 my @list = reverse map {
98 data => $b->fetch($_),
99 timestamp => $b->timestamp($_),
101 } ($n > 50 ? $n - 50 : 0)..$n;
103 print_rss($username, @list);
104 } elsif ($path[0] eq 'tag') {
105 } elsif ($path[0] eq 'ref') {
106 } elsif ($path[0] eq 'feed') {